The panels beside a session
Everything you would otherwise leave the window to go and check, in a strip beside the session — and one assistant that works the app itself.
The strip beside a session
-
Git
Branch, and the four lists that matter — staged, unstaged, untracked, conflicted — with per-file insertions and deletions, a unified diff for any file, and a watcher that keeps it current while the agent works.
-
Files
A tree that loads a level at a time, a viewer that refuses files over 2 MB rather than freezing on them, and symlinks that leave the project refused outright.
.deckignoreis honoured by the tree, layered over.gitignoreso it can re-include a file git hides. -
Quick open
⌘P finds a file by name, ⌘K finds a command, and both match on the letters you remember rather than the ones in order. Quick open lists the files git knows about, so it does not offer you anything that was never committed.
-
Artifacts
Every file your agents wrote or changed in this project, with the diff of each change. It answers the question you actually have after leaving four sessions running — not what did they say, but what did they touch.
-
Session search
Full-text search across past Claude Code transcripts — this project or all of them — with ranked, highlighted snippets. It reads the lines the usage reader throws away, which is where your prompts and the tool results actually are. It lives in the command palette under ? rather than on a page of its own: a palette is where people look for search, and it is one keystroke from wherever you are.
-
GitHub
Open pull requests and issues through your own
ghCLI. Every failure is a distinct state with the command that fixes it — “you are not signed in” never looks like “this folder has no GitHub remote”. There is no notification count: the endpoint that carries one accepts only a classic personal access token, which a GitHub App cannot issue, so the bell was removed rather than left showing a number it could not fetch. -
MCP servers
It reads the MCP configuration you already have, at user, project and local scope, instead of keeping a second list that would drift. Connect to a stdio server, browse its tools, and call one through a form generated from its schema.
-
Hooks
Installs callbacks into Claude, Codex and Gemini’s real settings files, every entry tagged
terminaldeck-hookso it is only ever ours that get removed. Writes are atomic and the file is backed up before it is first touched. -
AI readiness
Ten weighted checks on whether a project is set up for an agent — CLAUDE.md, a README, test, typecheck and lint scripts, gitignore, a lockfile, a clean tree — and fixes you can apply one at a time, after reading what each will touch. Committed secrets cap the score outright rather than costing it a few points.
-
Alerts
Context bloat, a session blocked on a question, an unusually expensive session, a missing CLI, a tree left dirty. Every rule needs positive evidence, so a brand-new project is silent — an alerts panel that cries wolf on day one is ignored by day two.
-
Overview
A live board of the sessions running right now — what each agent is doing, how long it has been at it, and which one is waiting on you — plus a per-project grid of drag-and-drop widgets (sessions, usage, git, AI readiness, GitHub). No progress bars: an agent does not report progress, and an invented number is worse than none. There is no task board. One was built and then deleted, code and all: a board is a thing you keep up to date by hand, and nothing else in this app asks that of you.
An assistant that works the app itself
An assistant pinned above the session list that can see your sessions, read their transcripts, start new ones and change settings — a developer’s assistant, not a general one. No inbox, no calendar.
It is a real session, and you can read everything it reads
It is not a hidden service with a chat box in front of it. Its folder, its instructions, its memory and its transcript are ordinary files, and Settings → Copilot shows you exactly what it is handed before it starts.
It runs inside the same sandbox as any session started from another device —
including from us. That was measured against sandbox-exec rather
than asserted: it cannot read your home directory, your SSH keys, your keychain
or another account’s login. One consequence is worth stating rather than
hiding, and the app states it on the copilot’s first screen: because the
keychain is closed to it, it starts signed out.
Its routines and its action log live outside the one folder it can write to. A routine it could write for itself without asking is not gated, and an audit log the audited party can edit is not an audit log.
Routines run when something happens, not when a clock says so
Saved instructions with a trigger: a session finishing, a session failing, git state changing, a file changing. A schedule is one trigger among several rather than the foundation.
A routine that fires while nobody is at the machine and then needs consent for something is refused immediately, and says so, rather than hanging on a dialog no one is there to answer.