Skip to main content

Remote control

Remote control exists for one situation: you are out, away from your Mac, and one of your sessions needs you. Turn it on and pair your phone before you leave the Mac, then the Companion can show which session needs you, stream its output, approve prompts, and type into it from anywhere.

Nothing listens on your network

Your Mac does not open a port. It dials out and holds a connection to a relay, which introduces devices only to Macs on the same account. So there is no port to forward, no certificate to accept, no VPN to run, and nothing on your network for anyone to find — and the address works the same on cellular from another country as it does from the next room.

Same-network use is not a fallback, it is out of scope. If the relay is unreachable, remote control is unavailable, even from the sofa. That trade is deliberate: the local path is what made the feature need certificates, trusted origins, and a second QR code, none of which ever served the one situation above.

Your account is the trust model

A device pairs with your Mac because it holds a live session on the same Marginal Utility account — the one Kiln and Saggar share. That is a claim a glimpsed code cannot fake, and unlike a code, it still means something when you are a hundred miles away.

It also revokes properly. Sign out on the Mac and every paired device stops working on its next request, instantly, rather than lapsing on a 30-day timer that would have expired precisely when you needed it. Grants themselves never expire on idle, for the same reason.

One setting, two answers

SettingWhat it does
On

A device on your account pairs — after someone at the Mac confirms it — and gets to watch a session, answer its prompts, and type into it.

Off

The default. The Mac does not dial out. This is the one setting that matters: holding that connection is what carries your credential off this Mac, so off genuinely stops it.

There is no setting that skips the confirmation, and none that skips the account check. Both run on every pairing, in that order.

Saggar → Settings → Remote control holds all of it, and onboarding offers the choice in plain words rather than burying it.

From a phone

The web client is built for one-handed use away from the Mac, so a few things behave differently there than at a desk. There is also a native iPhone app in beta on TestFlight; it uses the same account, pairing, grants, live terminal stream, and recovery rules. The controls below apply to both clients where the platform offers them:

  • Agent sessions can read like conversations. Native iOS can render a Claude Code transcript as reflowing messages instead of a terminal grid. Choose Automatic, Conversation, or Terminal in Settings, or switch the open session from its header. The Mac prepares the structured conversation, and older Macs fall back to the terminal.

  • Waking up reconnects. A phone suspends the live stream when it locks, and often hands back a connection that is dead without saying so. Bringing the client to the front rebuilds it and refetches the fleet, rather than waiting out a retry backoff.

  • Stale state says so. When no heartbeat has arrived, a banner names how old the state on screen is and offers a reconnect — out of the house, an unreachable Mac is an ordinary state rather than an error.

  • The terminal has the keys a touch keyboard hasn't. At drive, a row under the live terminal sends escape, tab, Ctrl-C, Ctrl-D and the arrows — enough to answer an agent's prompt, interrupt a runaway, or walk the history. Type size shrinks to fit the Mac's column count, since the pane wears the Mac's geometry rather than reflowing the shell you left open.

  • Reply from the lock screen. A drive-paired native phone can answer a session notification without opening the app. The target, grant, and typed reply are sealed to the Mac; the account relay holds the opaque request for up to two minutes if that Mac is briefly disconnected, and deduplicates retries before typing it once.

  • Session housekeeping travels too. A drive-paired native phone can start a session in any saved project, rename it, close it after a destructive confirmation, and launch one-shot or persistent monitor commands beside it. The Mac validates the project and audits each action like other remote input.

  • Start a project while you are away. A drive-paired native phone can create a local Git repository in a folder you choose on the Mac, optionally create its public or private GitHub repository, and seed it with an agent task. The Mac validates the request, performs the filesystem and Git work, and audits the result.

  • Choose the real working directory. Project browsing stays confined to saved roots at approve. A drive-paired phone can also browse or search accessible Mac folders, using Spotlight plus a bounded live home-folder scan. The Mac validates the selected folder again before launch and reports when search coverage was incomplete.

  • Review the working tree without leaving the terminal. An approve- or drive-paired native phone can browse the checkout's fresh changed-file list and open a file-level unified diff. The Mac resolves the checkout from the session, refuses paths absent from Git's current status, caps large replies, and audits every read.

  • Run the iOS Simulator from your phone. Native mobile can watch a booted Simulator, tap and drag in its live display, type text, and operate Home, Lock, the app switcher, volume, and Siri. Viewing requires approve; every input still requires drive and is audited by the Mac.

  • Browse a website running on your Mac. Native iOS can open a localhost address in a real web view, or another machine on your private network when the phone holds the drive tier. The phone exposes only an unguessable loopback URL to that view, then carries each request through the existing encrypted relay connection. The Mac never opens a port, the relay cannot read the page, and the tunnel cannot leave the origin you opened. Reading requires approve; form submissions, WebSocket messages, and other mutating requests require drive. WebSockets use the same tunnel, so development-server live reload keeps working without publishing a port.

  • Referenced files stay bounded by the transcript. Native mobile can optionally show a referenced path after its file is removed. Missing paths come only from that terminal's bounded transcript and are never authorized for download.

  • You can speak a prompt instead of typing it. The mic beside the send row — and in the live terminal's key bar — turns a spoken sentence into a line, straightening the smart quotes and em dashes dictation insists on so a shell can read it. It always lands as a draft: nothing is sent until you press Send, or Return in the terminal. There is no auto-send, deliberately, because a misheard command that ran itself would carry your own authorization with it.

  • And you can hear what a session is asking. Read aloud on the focused session speaks its name, its status, and the question at the end of its transcript, with the box borders and spinners stripped out. Useful when your hands are busy and a session has gone amber.

  • Install it to the home screen. On iOS that is what makes web push available at all, and it gives the client the whole screen. More on alerts.

Both use the browser's own speech engine — the companion has no backend to send audio to, and this feature did not give it one. Where that engine runs is the browser's choice, not Saggar's, and it differs: Safari on Apple devices dictates on-device, while Chrome sends the audio to Google for transcription. If that matters for what you are about to say, use Safari, or type it. Reading aloud is local everywhere, but it is still a terminal spoken into the room you are in.

Getting a device on

Sign in on this site, then scan the QR in Settings → Remote control. That is the whole ceremony: the code is filled in for you, your account is checked, and the phone lands on the client. It is one scan, one time — see pairing for what happens underneath and what each refusal means.

What this costs

Remote control costs £1.99 or $2.50 a month after a free first month, and you subscribe on the Saggar site's pricing page with your account. The Mac terminal manager remains free. TestFlight testers receive remote access while the native app is in beta.

Two things, better said here than discovered later. There is no offline path: no internet, or a relay outage, means no remote control at all. The relay routes encrypted envelopes, but your browser and Mac seal their contents end to end with the public key in the pairing QR. The relay cannot read or replace terminal traffic or pairing secrets. It still sees routing and timing metadata, including which of your Macs are online and when, and it can interrupt availability.

What has not changed is what a paired device is allowed to do, or the record it leaves. See security.