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 Saggar phone app 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.

Only in the app

Remote control runs in the native Saggar phone app and nowhere else. It used to run in a browser too.

A web page fetches its code on every visit, so the code that seals your traffic is only as trustworthy as the latest deploy and every network between you and it, and a browser keeps its keys where extensions and injected scripts can reach them. An app is signed code you chose to install.

Updating Saggar on the Mac revokes grants that browsers held, and the relay refuses requests a web page makes.

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
OnA 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.
OffThe 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 Saggar iPhone app is in beta on TestFlight. It is built for one-handed use away from the Mac, so a few things behave differently there than at a desk.

Reading a session

  • Agent sessions can read like conversations. The app 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 app 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, the app names how old the state on screen is — out of the house, an unreachable Mac is an ordinary state rather than an error.
  • 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. It is still a terminal spoken into the room you are in.

Answering a session

  • 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 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.
  • You can speak a prompt instead of typing it. Dictation 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 send it. There is no auto-send, deliberately, because a misheard command that ran itself would carry your own authorization with it.

Sessions, projects, and files

  • Session housekeeping travels too. A drive-paired 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 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 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.
  • Referenced files stay bounded by the transcript. The app 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.

The Simulator and local websites

  • Run the iOS Simulator from your phone. The app 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. The app 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.

Getting a device on

Install the app, sign in with the account your Mac uses, 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 Mac asks you to approve the phone.

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.

What the relay can and cannot do

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 phone and Mac seal their contents end to end with the public key in the pairing QR.

The relay cannotThe relay still
Read or replace terminal traffic or pairing secrets.Sees routing and timing metadata, including which of your Macs are online and when, and can interrupt availability.

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