Your Mac terminal, from your iPhone.
The source-available iOS companion can view terminal state, send input and handle supported approvals through a configured relay.
Availability and setup
Download links serve stable v0.5.1 for macOS. The Rust/GPUI 0.6.0-rc.1 candidate is unreleased. Release status and migration plan.
The companion is available in the iOS source tree. This page does not offer an App Store release. Building and provisioning require the appropriate Apple tooling and signing. Remote control must be enabled, credentials provisioned and devices paired; it is not active merely because the terminal is installed.
Paired control
The implementation includes tab lists, terminal streaming, keyboard input, protected action approval and connection recovery. Live Activities and notifications depend on app capabilities, permissions, relay configuration and the iOS environment. Remote access also requires the Mac app and helper to remain available.
The companion is a remote terminal client, not a complete mirror of every macOS settings window. Network delay and reconnection affect responsiveness.
What is encrypted
Paired terminal frame payloads use Curve25519 key agreement, HKDF-SHA256 key derivation and ChaCha20-Poly1305 authenticated encryption. Headers and routing metadata are distinct from the encrypted payload. Frame type, tab identifier, sequence and traffic characteristics must not be described as invisible.
What the relay processes
The Cloudflare relay routes authenticated connections and handles more than encrypted terminal traffic: device and connection metadata, push registrations, notification title/body payloads and pending approval/prompt snapshots. Its source includes persistent storage and expiry logic. Push and pending-state HTTP paths must not be represented as end-to-end encrypted terminal frames.
Consequently, “the relay sees nothing” and “the relay never stores data” are not accurate descriptions. Consider command and project context sensitive when enabling remote notifications.
Next and release readiness
The Rust/GPUI candidate uses a separate profile and identity during side-by-side testing. Follow its release and migration instructions rather than reusing stable remote configuration blindly. Rust transition.
Questions and answers
Does Remote work without a network?
Local terminal work continues independently. Remote viewing and control require connectivity between the devices and configured relay.
Can the relay read encrypted terminal payloads?
The paired terminal payload encryption keeps those payloads opaque to the relay. Connection metadata, frame headers, push notifications and pending-state data have different handling and are not covered by that blanket claim.