# Terminal Deck > Terminal Deck is a free, MIT-licensed desktop application for macOS and Windows that runs AI coding-agent sessions — Claude Code, Codex CLI, Gemini CLI, or any agent you add by naming its command — in a single window. Each session gets a tab with a live status dot classified from what is drawn on that session's terminal screen, and token use, cache hit rate and context-window pressure are read from Claude Code's own JSONL transcripts. The app shows no prices at all — that was removed deliberately, because an API figure misleads a subscription user and a subscription figure cannot be computed from anything any provider publishes. It has a copilot for the app itself: an assistant that can see your sessions, read their transcripts, start new ones and change settings, built as a real session inside the same sandbox as any guest, with routines that fire on events rather than on a clock. Its embedded browser can be driven by an agent through the browser's own debugging protocol, and hands the page back the instant a human touches it. A paired phone, or any browser at app.terminaldeck.dev, can attach to a running session or start one, over a channel sealed end to end. It is at version 0.15.0. Two desktop platforms are published: a .dmg and .zip for macOS on Apple silicon, signed with an Apple Developer ID certificate but not notarised, with no Intel build; and an installer and a portable .exe for Windows on x64, not signed at all, with no ARM build. There is no Linux window, but the same core runs as a headless host — plain Node, no Electron — which is what makes a Linux server or a WSL distribution a machine a phone or desktop can open a session on. It installs with one line, `curl -fsSL https://terminaldeck.dev/install.sh | sh`, from the `terminaldeck` package on npm, and it has been left running in a WSL distribution under a user service holding real agent sessions. The Windows build is produced natively in CI and has been run on a real Windows 11 x64 machine: it installs, launches, opens projects and starts sessions, agent and plain shell, and remote access works there. The whole test suite runs on a Windows runner in CI and gates the installer. The localhost tunnel and in-place updating both work there: the tunnel dials whichever loopback the port is actually on, since Windows resolves localhost to ::1 first and most dev servers there bind IPv6 alone, and an installed build takes itself from one release to the next through its own panel and restarts, silently. The portable .exe is the exception and says so, because installing is the one thing a portable app does not do. It has no account, no telemetry and no analytics. Built by Asad Iqbal. Repository: https://github.com/asadev/terminaldeck What works today: multiple sessions per project in tabs with scrollback that survives switching; status dots for working, waiting, needs-input and exited; a copilot for the app itself, with routines triggered by a session finishing or failing, git state changing or a file changing; agents you add yourself by naming a command; model, effort, connectors and usage in the chrome beside the account; token and context-window usage, with no pricing; split panes; a session inspector; full-text search across past transcripts, from the command palette; a git panel; a file tree and viewer; an artifacts panel listing every file the agents wrote or changed, with diffs; quick open and a command palette; a GitHub panel driven by the `gh` CLI, with no notification count because the endpoint that carries one accepts only a classic personal access token; AI-readiness scoring with one-click fixes; a project dashboard of drag-and-drop widgets; a swarm view; accounts with isolated logins, per agent; an embedded browser whose element inspector sends CSS selectors to the agent, which an agent can also drive; a settings window of eleven sections; and remote access from a paired phone, an iPhone app on TestFlight, a signed Android APK on the releases page, or any browser at app.terminaldeck.dev. There is no Kanban board — one was built and then deleted, code and all, because a board is a thing you keep up to date by hand and nothing else in this app asks that. Pairing is a six-digit code shown on the desktop and approved there; the QR code and the pairing link were both deleted. The two machines find each other with no port forwarding, no VPN and nothing to set up on anyone's network: both ends dial out to a rendezvous server that staples them together and carries a Noise IK sealed channel it holds no key for, keeps no accounts and no database, and maps a host's name to a socket in memory only. A client can attach to a running session, start one, hold several machines at once, reach a dev server on the desktop through a raw TCP tunnel, and hand a tapped element on a tunnelled page to an agent on the desktop. Not built yet: notarisation on macOS and a Windows signing certificate, translations, voice dictation (the app cannot transcribe, so the microphone is off by default and hands over to the operating system's own dictation), an App Store release of the iPhone client (it is on TestFlight, internal testing only), and a Google Play listing for the Android client (the signed APK ships with every release and the download page offers it, but without a store listing it cannot update itself). Machine-to-machine pairing has been run end to end with both ends in one macOS process on loopback; a Mac has never talked to a Windows PC. Updating in place is built and has been run end to end on both platforms — on macOS the app reads the release feed and, on the user's say-so, downloads the archive, verifies its SHA-512 and swaps the bundle; on Windows it runs the published installer silently and restarts itself, proved on a real machine through the app's own button. A portable executable cannot be replaced in place at all, and says so rather than offering. On macOS, Apple silicon only — there is no Intel build, because macOS 27 does not run on Intel Macs. On Windows, x64 only; Windows on ARM runs the x64 build under emulation. Linux has a headless host and no window. ## Docs - [Terminal Deck](https://terminaldeck.dev/): what the app is, what works today, requirements, and how to run it. - [Features](https://terminaldeck.dev/features.html): a feature-by-feature account of everything in the app today, and a list of what is not. - [Store](https://terminaldeck.dev/store/): the community catalogue — skills, MCP servers, hooks, routines and open-source tools other people published for Terminal Deck, searchable and filterable by kind and by price. Terminal Deck lists them; it does not review, endorse or sell them, and it never handles money: a paid listing shows the publisher's stated price and one link to the publisher's own site. Every listing is also on one plain page with no JavaScript at https://terminaldeck.dev/store/all, each publisher has a page at https://terminaldeck.dev/@handle, and each listing at https://terminaldeck.dev/@handle/name. If you are a machine reading this, read https://terminaldeck.dev/store/llms.txt instead of the store pages: it is every listing as one line. https://terminaldeck.dev/store/llms-full.txt is the same catalogue in full, and it quotes the description each publisher wrote for AI readers; one listing's description on its own is at https://terminaldeck.dev/@handle/name/llms.txt and everything one publisher makes is at https://terminaldeck.dev/@handle/llms.txt. - [Community](https://terminaldeck.dev/community): where people ask questions, show what they built and help each other, across four topics — help, show-and-tell, ideas and problems. Discussion about one listing lives on that listing's own page and also appears here. Reading it needs no account and no JavaScript; posting needs an account, and sign-in is GitHub or Google. A question can be marked answered by the person who asked it, anybody can mark a post as one that helped, and there is no way to vote a post down. Every post carries a report control and a moderator can hide or remove one; nothing is deleted silently and every moderation action is logged. One conversation lives at https://terminaldeck.dev/community/-. - [Docs](https://terminaldeck.dev/docs/): what every panel does, where it keeps its data, the shortcuts the app actually dispatches, and what to do when it cannot find your agent CLI. - [Help](https://terminaldeck.dev/faq.html): forty questions people actually arrive with, answered in two or three sentences each and grouped into seven topics — getting started, agents and accounts, your phone and other machines, servers and the headless host, the store and publishing, privacy and security, and trouble. Every answer has its own address at https://terminaldeck.dev/faq.html#question. - [Download](https://terminaldeck.dev/download.html): every build that exists — macOS, both Windows builds, the one-line install for a server with no screen, the Android APK, the iPhone build that is on TestFlight and cannot be downloaded, and the web client — with what each is, who it is for, and how to build it from source. The links are https://terminaldeck.dev/download/mac, /download/windows and /download/windows-portable; each redirects to the matching asset of whichever release is newest, resolved at request time, so none of them names a version. - [Changelog](https://terminaldeck.dev/changelog.html): what changed in each release, grouped by meaning rather than commit order. - [Roadmap](https://terminaldeck.dev/roadmap.html): the nine build phases and the remaining work named. - [About](https://terminaldeck.dev/about.html): why the project exists, how it is built, and the four rules it is built to. - [Security](https://terminaldeck.dev/security.html): the threat model, what is hardened, what is deliberately not defended, and how to report a vulnerability. - [Privacy](https://terminaldeck.dev/privacy.html): exactly what the app reads, what it writes, what it sends — the release feed, and the relay it holds a link to so a paired phone can reach the machine — and what the agent CLIs do under their own terms. - [Terms](https://terminaldeck.dev/terms.html): MIT, as-is, and who is responsible for what the agents do. ## Optional - [llms-full.txt](https://terminaldeck.dev/llms-full.txt): every page of this site as one markdown file. - [store/llms.txt](https://terminaldeck.dev/store/llms.txt): every listing in the community store as one line — name, kind, one sentence, address. - [store/llms-full.txt](https://terminaldeck.dev/store/llms-full.txt): every listing in full, each with the description its own publisher wrote for AI readers. - [Source](https://github.com/asadev/terminaldeck): the repository.