Features
Usage and cost
Where the tokens went, by project, by model, by day, with a number attached. Starter
Where the numbers come from
Neither Claude nor Codex stores a cost figure after a turn is done, so there is nothing to look up. Termdeck re derives spend by scanning the transcripts already on your machines and counting the tokens each turn recorded.
The scan returns tokens only. Prices are applied in your browser from a pricing table Termdeck keeps up to date, which is why a rate change shows up immediately rather than waiting for a release.
Two things the scan gets right that a naive count does not
- Sub agent work is included. Sub agents write their own transcripts, and on real projects they account for a meaningful slice of total spend. Leaving them out would quietly undercount every number on the page.
- Duplicated history is counted once. Forking or resuming a chat copies earlier turns into a new file, and a streaming turn is written as a progressive snapshot rather than a single final record. Both are deduplicated, so a forked chat does not double your bill on paper.
Reading the page
Open Usage from the sidebar. The top row is the summary for the selected range:
| Metric | Meaning |
|---|---|
| API equivalent cost | What these tokens would have cost at published API rates. See the note below. |
| Input tokens | Everything sent to the model, with the share served from cache called out separately. |
| Output tokens | What the models generated, alongside the number of agent turns. |
| Active sessions | How many chats contributed, how many are live, and across how many machines. |
Below that: cost per day as a bar chart, and the model mix showing which models are actually consuming your budget. Under those, a table by project, drilling down to individual runs.
API equivalent cost is not your invoice. If you run on a Claude or ChatGPT subscription, the tokens are already covered by that plan and this figure is what the same work would have cost through the API. It is the right number for comparing projects, models, and engines against each other, and the wrong number to reconcile against a receipt.
Date ranges
Presets cover the common questions, and the two date fields take an explicit range for anything else. The range lives in the URL, so a link to "last month for this project" is a link you can send to someone.
This page refetches only when you ask it to, on a preset click, a committed date, or first load. It deliberately does not update live, because a range you are halfway through typing should not be replaced by an event arriving from a machine.
Why cache read matters
Cached input tokens cost a fraction of fresh ones. A high cache read percentage means your chats are reusing context efficiently, which is usually a sign that the work is well scoped. A low one on a long chat often means the context is churning, and compacting or starting a fresh chat will cost less than continuing.
Questions this page answers well
- Which project is consuming the budget, when three are running at once.
- Whether routing routine work to a cheaper engine is actually saving anything.
- Which day the spend spiked, and which run did it.
- Whether a premium model is being used for work a smaller one would have handled.
Scope and limits
- Covers Claude and Codex transcripts. Grok usage appears in the live limits panel rather than here.
- Covers every connected machine, so the totals are your fleet rather than one box.
- Scanning a large history takes a moment the first time. Nothing is uploaded: the scan runs on each machine and only the totals cross the wire.