Product update · 30 August 2026

The docs are up, and every fact in them came out of the code.

Termdeck has had a documentation site since the start of the month. As of yesterday it has a second half: twelve engine guides that answer the questions people actually type about Claude Code, Codex and Grok. Nineteen pages of product docs, twelve pages of engine behaviour, and one rule that applies to both, which is that a sentence in the documentation has to be traceable to a file in the repository.

01 · /docs

Nineteen pages, in the order you need them

For a long time the answer to "how does this work" was a FAQ section on the homepage and a README, which is fine right up until somebody asks a question that deserves a paragraph. The documentation is nineteen pages behind a three column shell: the page tree on the left, the prose in the middle, the headings of the page you are on down the right.

It runs in four groups. Get started is quickstart, installing the agent, and installing a coding CLI. Core concepts is how Termdeck works, the interface, chats and sessions, machines and fleet. Features is approvals and permissions, reviewing changes, mobile and notifications, accounts and rate limits, usage and cost, MCP and project context. Reference is troubleshooting, security and privacy, plans and limits, a settings reference, and the FAQ.

Quickstart is about five minutes, most of which is you logging into a CLI. Troubleshooting is the longest page and I expect it to be the most read one, so it is organised by symptom rather than by subsystem. Machine offline. Empty model picker. A turn that will not start. Notifications that never arrive. You arrive at that page knowing what you can see, not what is broken, and it is written for that.

Start at termdeck.io/docs. Nothing there is behind a login, and you can read the whole thing before you sign up for anything.

02 · Provenance

Written from the source, not from the marketing copy

Product documentation goes wrong in a boring way. Somebody writes it from the feature description, which was itself written before the feature shipped, so it describes the product as hoped rather than the product as built. Then the code moves and the page does not, and a year later the docs are a museum.

So the pages were derived from the thing they describe. The permission mode table came out of logic/permission-modes.js. The list of commands the agent refuses outright, whatever mode you are in, came out of lib/hard-deny.js. The risk bands you see on an approval card are approval-risk.js. The diagnostics section is lib/doctor.js. The install page is install.sh and install.ps1 read end to end, so what the page says the script writes is what the script writes.

The page tree itself is one partial copied into all nineteen files at build time. That is the cheap fix for the oldest documentation bug there is, which is two pages disagreeing about what exists.

03 · Reading it

Six things the page does so you do not have to

Ctrl K, anywhere in the docs

Opens the filter over the page tree, so you can get to plans and limits from the middle of the security page without going back to an index first.

On this page, lit as you scroll

Built from the headings actually present in the prose, and the entry it lights is the one under the header rather than the one merely on screen. A section taller than your window makes those two different answers.

Platform tabs that stay in step

Commands are shown for macOS and Linux, then Windows PowerShell. Pick Windows once on the install page and you are still on Windows two pages later.

Copy buttons, and a link on every heading

One click copies any command, and every h2 and h3 carries its own anchor, so you can send a colleague the paragraph instead of the page plus a scroll instruction.

Previous and next that cannot lie

Derived from the order of the page tree rather than written by hand, so the foot of a page can never disagree with the sidebar next to it.

Plan markers, inline

A feature that needs a paid plan carries a small badge where it is described. Everything without one works on Free, and the full table lives on plans and limits.

All six are additive. With JavaScript off, every docs page is still a complete document with a working tree, working links and working code blocks, because nothing in that list is allowed to be the only route to content. The search box is a convenience. The tree is the navigation.

04 · /guides

Twelve pages about three CLIs, shipped yesterday

The second half went up on 29 August. Engine guides is four questions asked of all three engines, one page per pair, twelve pages and an index: where a session is written on disk, what each permission mode actually allows, what happens when you resume a conversation, and how models and reasoning effort are chosen.

They exist because answering one of those properly means running all three CLIs and reading what they leave behind. Each vendor documents its own engine, and nobody outside has much reason to line the three up in one vocabulary. Termdeck drives all three, so I had to work it out anyway.

A sample of what falls out. Claude Code writes each session as a JSONL file under its projects directory, and a slug rule decides which directory it lands in. Codex writes rollout files into a dated tree and compresses the cold ones, which is why its paths resolve by id. Grok never resumes in the Claude sense at all: it re-reads session state every turn, which is why an edit you made in the terminal is always visible to it. Codex advertises a context window larger than the one you can actually use. Grok denies rather than asks in read only mode and has no plan mode of its own, which matters if you assumed the word meant the same thing in all three products.

Each row names the file its fact was read from, so the next person can re-verify instead of trusting me. That is also the reason to check: these three CLIs move fast, and a page that cites its source can be audited when they do.

Browse them at termdeck.io/guides. If you read one, make it what Claude Code permission modes actually allow, then the Codex and Grok pages beside it.

05 · Guards

What keeps them from going stale

Writing documentation is easy. Keeping it true through hundreds of deploys is the actual job, so both families are checked by the build rather than by my memory.

The docs checker builds its worklist from the directory, so a new page is covered the moment it is written rather than when I remember to register it. It fails on a page missing from the tree, because unreachable and absent are the same thing to a reader. It fails on a tree entry pointing at nothing. It fails on a broken internal link. And it fails on a cross page anchor naming a heading id that has since moved, which is the half of link rot nobody catches by hand: the link still works, it just drops you at the top of the page and leaves you to hunt.

The guides are generated from one dataset, and the generator refuses to write a broken family. It checks title and description lengths, duplicate slugs, duplicate titles, stray dashes and non-ASCII characters before it writes a byte. One test exists purely because of how generated page families die, which is that the three pages of a concept must not share a detail block. Thin content is the failure mode there, not a malformed tag.

Then the ordinary discipline: a documentation change rides in the same commit as the product change. Four pages caught up with already shipped behaviour on 20 August, and that is the pattern I want. Docs land late once, never twice.

06 · On GitHub

The half that runs on your machine is public

Documentation asks you to take my word for what the software does. The agent does not, because it is published on GitHub under MIT: the agent source, the install and uninstall scripts, the service unit templates, an architecture document and a curated changelog. The hosted control plane at termdeck.io stays proprietary, and the licence says so in its first paragraph.

That split is the point. The piece with access to your files, your repositories and your CLIs is the piece you can read. If a docs page and the source ever disagree, the source is right and I have a bug to fix.

Honest limits

What the docs still do not do

Search is a page filter, not full text. Ctrl K matches page names and groups, so if the word you want sits in the middle of the troubleshooting page, your browser find is still the better tool. Full text search is the obvious next thing.

There is one version, the live one. Termdeck deploys most days and the docs describe what is running now. There is no archive of what a page said in July and no version picker.

They assume a machine. Most feature pages are written for someone who has already connected one, because that takes five minutes and everything downstream is easier to describe once it is true. Reading before you sign up, the pages that make sense cold are how it works, security and privacy, and plans.

FAQ

The documentation, answered

Where is the Termdeck documentation?

At termdeck.io/docs. Nineteen pages covering install, how the master and the agent fit together, every feature, security, plans and a symptom first troubleshooting page. The engine guides are a separate family at termdeck.io/guides.

Do I need an account to read them?

No. The docs and the guides are public pages with no login, no gate and no email capture. You can read every word before you decide whether to connect a machine.

Where does Claude Code store its sessions?

Claude Code writes one JSONL file per session into a per project directory inside its own projects folder, and a slug rule derived from the working directory decides which folder a chat lands in. The exact path, the slug rule and the way to find a chat again are on the session storage guide, next to the equivalent pages for Codex and Grok.

Is the Termdeck agent open source?

Yes. The agent that runs on your machines is MIT licensed and published on GitHub with the install scripts, the service templates and the changelog. The hosted control plane at termdeck.io is a separate proprietary codebase and is not covered by that licence.

How are the engine guides different from the vendor docs?

They put Claude Code, Codex and Grok side by side in one vocabulary, and every fact names the file it was read from rather than citing a vendor blog post. That makes the disagreements between the three visible, which is the whole reason to read them.

Get started

Five minutes, most of it a CLI login.

Connect a machine, open any browser, and drive the Claude Code, Codex and Grok you already have. 14 days of Pro, no card, then a free plan that never expires.