01 / AGENTS DIAL OUT
Your computers call us. We never call them.
The Termdeck agent on each Mac, Linux box or Windows PC opens one outbound secure WebSocket to termdeck.io and proves itself with a machine token. The server keeps only a hash of that token. Nothing listens for inbound connections, so there is no port to open, no VPN and nothing for a scanner to find.
- Outbound only
- TLS encrypted
- Token stored as a hash
- Revoke a machine any time
02 / YOU SIGN IN
Your browser sees your machines, and only yours.
Open termdeck.io and sign in. Over HTTPS the page asks for your machines and chats, and every request and live update is scoped to your account and to one named machine. Another account's machine is never in the list and never in the stream.
- Sign-in required
- Scoped to your account
- Routed per machine
03 / YOUR PROMPT TRAVELS
Straight through, in memory, to one machine.
Pick a computer, a project and an engine, then send. The prompt crosses termdeck.io in server memory and goes down that machine's own connection. It is not written to our disk on the way. Watch the meters: frames go up, stored transcripts stay at zero.
- Passes through memory
- 0 B transcripts stored
- One machine, one route
04 / THE WORK HAPPENS AT HOME
Your CLI, your login, your files.
Claude Code, Codex or Grok starts on that computer as your user, with your tools, MCP servers and configuration. It talks to its AI provider directly with the subscription you already have; Termdeck never holds that login. Every step is written to the CLI's own session file on your disk, line by line.
- Runs as your user
- Your subscription, direct
- Session file on your disk
05 / IT APPEARS IN YOUR BROWSER
A live view of the real session.
Words, tool calls and edits stream back up the same connection and render in your browser as they happen. History comes from the session file on your machine; the stream only adds what is still arriving. Open a file or a diff and it is fetched from your machine on request.
- Rendered from your disk
- Files only when you open them
- Encrypted both ways
06 / IT ASKS BEFORE ACTING
The command waits until you say so.
In a mode that asks for approval, anything your rules do not already allow stops on your machine and waits. The browser shows exactly which tool and command it wants to run. Allow it once, deny it, or add a rule so you are not asked again. Full access modes do not stop at every step, so choose them on purpose.
- Permission modes
- Your allow rules
- Nothing runs while it waits
07 / YOUR PHONE BUZZES
Walk away. It will find you.
Turn on push in Settings, grant permission on each device you want, and pick which alerts you care about: approvals, questions, finished turns, errors. The alert goes through your browser vendor's push service to your lock screen. On iPhone and iPad, add Termdeck to your Home Screen first.
- Opt in per device
- You pick the alert types
- Delivered by your browser's push service
08 / ANSWER FROM ANYWHERE
One tap, one answer, one use.
Tap Allow or Deny on the notification, or open the chat on any signed-in device. A notification's buttons carry a single use token that answers exactly one pending request and expires after 5 minutes, the same moment an unanswered request is denied anyway. Your answer goes back down to the machine and the run continues.
- Single use token
- Expires in 5 minutes
- Unanswered means denied
09 / SAVED ON YOUR DISK, NOT OURS
Close the tab. The history stays home.
When the turn ends, the conversation already lives in the CLI's own session file on your computer. Close the tab, come back from another device, and Termdeck reads it from your machine again. Or skip us and resume in your terminal. If a chat is open in another process, Termdeck shows it view-only so two writers never fork it.
- Disk is the source of truth
- Resume in your terminal
- View-only when in use elsewhere