How it works
What this app actually does with your machine, said plainly, because it is the reason to trust it with a folder full of your work.
It runs the CLIs, it does not reimplement them
Every session runs the same claude, codex or
gemini program you would run yourself, started the way your own
terminal starts it, so it finds the same tools your terminal finds. Nothing sits
in front of it and nothing is wrapped around it. Whatever your agent does in
your terminal, it does here.
Only one part of the app is allowed to start programs or open your files, and the window you look at cannot reach either of them directly — everything it asks for goes through one narrow door that is the only way through. That is what keeps a page you open in the browser tab from ever touching your machine.
It never handles your credentials
There is no account, no sign-in and no API key field anywhere in this app. The agent signs you in itself, inside the terminal, exactly as it would if you had run it yourself — and its credentials stay wherever it puts them, which on macOS is the Keychain.
One deliberate exception, stated plainly: if you ask it to, the browser tab can import cookies from an installed Chrome so a dev server behind a login does not need signing into twice. That is user-initiated, macOS prompts for keychain access by name, and cookie values are never sent to the interface.
Your data stays where it already is
Usage, context and search all read files the agent already wrote on your machine. There is no telemetry, no analytics and no account service. Two connections leave your machine on the app’s own account, and both are named here: a fetch of the public release feed, carrying no identifier, and an outbound link to the relay, held open from launch so a phone you have already paired has something to attach to. The second is a switch in the Remote panel, what travels along it is scrambled and the relay has no key to unscramble it, and switching it off is remembered (what is stored, and what leaves). Beyond those it is whatever pages you type into the browser tab, and whatever your agent does on its own.
What is not built yet
Translations are not built. Neither phone client is in an app store: iPhone is on TestFlight, internal testing only, and Android is a signed APK you download yourself. Notarisation on macOS and a Windows signing certificate are still to come, which is what puts one warning in front of each first launch.
Updating in place works on macOS and on Windows, through to the relaunch, on
real machines. The portable .exe is the exception, and the app says
so rather than offering an update it cannot install: installing is the one thing
a portable app does not do.
On macOS, Apple silicon only: there is no Intel build, because macOS 27 does not run on an Intel Mac at all. The Windows build is built on a real Windows machine, and the whole test suite is run there too, so a test that fails on Windows stops the release instead of being waved through.
There is no Linux window, and Linux is not left out. The same app runs on a Linux machine with no window at all — it just sits there holding sessions, and your phone or your desktop opens them from somewhere else. It installs with one line, everything you can do to it is eight commands typed in the terminal you installed it from, and it has been left running for days on a Linux machine inside Windows, holding real agent sessions. The only thing it does not have there is a screen.
How it updates itself
Settings → Help asks whether there is a newer release, shows you what it
found, and — only if you say so — downloads it, checks it is the file we
published, and swaps the app over. Nothing downloads and nothing installs on
its own. The whole of it, through to the app restarting, has been run on both a
Mac and a real Windows PC, one release finding and installing the next. The one
exception is the portable Windows .exe, which cannot replace a copy
of itself and says so instead of pretending.
What you need
- Operating system
- macOS 12 or newer on Apple silicon, or Windows 10 or newer on x64. The macOS build is signed but not notarised and the Windows build is unsigned, so each warns once on first launch. There is no Intel Mac build; Windows on ARM runs the x64 build under emulation rather than natively.
- An agent
- At least one of Claude Code, Codex CLI or Gemini CLI, installed and already signed in. Terminal Deck does not install or authenticate them for you.
- Optional
-
gitfor the git panel, theghCLI for the GitHub panel. Both are only needed by their own panel. - To build from source
- Node 22 or newer.