Your code never leaves your Mac
The agent is a plain CLI in a local shell. No cloud IDE, no upload, no server-side copy — your repo and history never move.
Early-bird founding rate — Pro $35/yr, locked in for life (reg. $10/mo)
Grab the dealYou’re about to hand a squad of agents your codebase — so this page is precise. Most “AI in the cloud” tools ship your code to a server to work. Termary doesn’t. Your code, your agents, and your keys stay on your machine — we carry the ping, never the code.
What crosses the wire — and what never does
Local-first, not air-gapped. Exactly two things ever leave your Mac — both minimal, both token-gated:
When an agent needs you, its status + which Mac go Mac → termary.com → Apple Push. State only — never your code or output.
Away from Wi-Fi, your phone reaches your Mac over a one-tap tunnel — but the terminal itself is sealed end-to-end, so the relay forwards ciphertext it can’t read, straight to the loopback bridge. Still token-gated.
The agent is a plain CLI in a local shell. No cloud IDE, no upload, no server-side copy — your repo and history never move.
Fan-out gives each agent its own git worktree on its own branch. Nothing lands until you review the diff and merge — and cleanup never force-deletes unmerged work.
The live terminal — plus diffs, files, and uploads — is sealed with a key only your Mac and phone derive. The relay forwards ciphertext it can’t read. A fresh key every session (X25519) keeps past sessions private even if a key is later lost.
The MCP server binds to 127.0.0.1 on a random port, behind a per-session token, and stays off until you flip it on. Nothing on the network can reach it.
A phone that isn’t the Controller only reaches an explicit read-only allowlist — anything that types, opens, or executes is refused on the Mac itself.
The mirror is real control, so it’s locked: one Controller types, the rest watch read-only. The Mac enforces it — no lock, no keystrokes. Take it back with a tap.
Your phone pairs straight to your Mac by QR. The Mac keeps only a hash of each token; on your network they talk with nothing in the middle.
Saved hosts are AES-GCM-sealed under a device-only Keychain key that never iCloud-syncs. Private keys stay in ~/.ssh; passwords are never asked for.
Dictation is transcribed on-device. We get the same text a keyboard would send — never the audio, never a recording.
termary.com is sign-in and plan, nothing more. It has no path to your machine, your terminals, or your agents — entitlement is just a signed token.
Not a setting you trust us to leave off — things the architecture puts out of our reach. No toggle exposes them, no support ticket reveals them, a subpoena wouldn’t find them on our servers, because they were never there.
~/.ssh; passwords are never collected in the first place.
Don’t take our word for it — verify it: run lsof -iTCP -sTCP:LISTEN and the agent bridge shows up bound to 127.0.0.1 only. Point a network monitor at Termary and watch your code stay put. The one thing you’ll see leave is a “needs you” ping.
Every claim above maps to a mechanism, not a promise in a document. The load-bearing ones:
ChaCha20-Poly1305. Each connection derives a fresh key from an ephemeral X25519 exchange bound to your per-device key — forward secrecy, so recorded traffic stays unreadable even if a key later leaks. The relay only ever sees ciphertext./pair is rate-limited. Every other remote route requires the device token.127.0.0.1 on an OS-random port with a per-session token in an owner-only (0600) file. Off until you turn it on.git branch -d — unmerged work is never force-deleted.Read the privacy policy for exactly what we store when you sign in, and how to delete it.