Usage and cost
What is left of each agent's quota and what the day's tokens would cost, read from files on this Mac.
⌥⌘U, or the gauge at the right of the tab strip, opens the usage pane: what is left of Claude’s windows and of Codex’s, when each one resets, and what the tokens in the agents’ own logs would cost at list API prices.
Nothing here is asked over the network by Overterm, and no API key is involved. Both agents write their own numbers down on this Mac, and the pane reads those files.
The gauge in the strip
A small gauge at the right of the strip shows the tightest limit any agent reports — the fullest session window, else the fullest window of any kind — as a percentage, dim while there is room, orange from 80%, red from 95%. Its tooltip names the provider, the window, the reading and when it resets.
Settings ▸ General ▸ Show the quota gauge in the tab strip
(general.usageChip, on by default) hides it.
Where the numbers come from
Claude
~/.claude.json (or $CLAUDE_CONFIG_DIR/.claude.json), from the block
Claude Code caches the service’s answer in. Overterm reads the percentage,
the reset time and, where the plan has them, the dollar figures, for each
window the file lists — the five-hour session window, the seven-day window,
and whatever other allowance is live beside them. The newer list form wins
when it is present.
Two things follow from that file being a cache. It carries the time it was fetched, which the pane shows as an age; and Claude Code only refreshes it while it is running, so between sessions it can be hours old. The pane says so rather than pretending otherwise:
Every window above ended after Claude wrote these down 8 h ago. It only writes them when it asks — /usage in Claude Code refreshes them.
The figures are account-wide — the same file’s breakdown counts chat and the desktop app — which is why the pane says “Claude”, not “Claude Code”.
Codex
The newest rollout-*.jsonl under ~/.codex/sessions (or
$CODEX_HOME/sessions), from its last token-count line: each rate limit’s
used percentage, its window length in minutes and its reset time, plus the
plan name. Which window is which is read off the minutes, not the name,
because the names swap around early in a session.
Window names are derived from the length: hourly, an n-hour window, daily, weekly, monthly.
What the pane shows
One card per provider: its name, its plan as a capsule, how old the figures are, then a row per window with its name, the reading, a bar, the dollar pair where the plan has one, and “resets in 2 h 14 m” — or “rolled over”.
Providers that keep their usage on their own servers are listed too, with nothing to read: “Keeps its usage on its own servers — nothing to read on this Mac.”
A ↻ button asks the agents again; an ✕ closes the pane.
The optional refresh
Reading ~/.claude.json alone can be reading yesterday’s paper. So, with
Settings ▸ General ▸ Ask the agents for fresh numbers
(general.usageAsk, on by default), Overterm runs Claude Code’s own usage
command:
claude -p "/usage"
at most every ten minutes, and only while Overterm is the front application. The ↻ button runs it immediately. Off, the pane shows the last figures the agent wrote down and how old they are.
This is the agent’s own command doing its own talking. Overterm reads no
credentials and calls no endpoint of its own. claude is looked for in the
usual places and, failing that, through your login shell. There is no Codex
equivalent, because Codex writes its limits as it works.
The cost estimate
Settings ▸ General ▸ Work out what it would have cost
(general.usageCost, on by default) prices the tokens in the agents’ own
logs:
- Claude — the assistant lines of
~/.claude/projects/**/*.jsonl, plus each session’ssubagents/*.jsonl, because a Task agent’s tokens are nowhere else. - Codex — the per-turn token counts in the rollouts.
The scope picker chooses Today, 7 days or 30 days. The row gives the money, the token count, and the models involved.
It is an estimate of what the work would have cost on the API at list prices — not your bill, and not what a subscription charges. Three things make it honest rather than approximately right:
- the two cache write tiers are priced apart from cache reads;
- a model with no price in the table is not treated as free: its tokens are counted separately and shown as “n tokens of a model with no price here”;
- the known ways of counting the same tokens twice are each avoided — Claude repeats a reply once per content block (deduplicated by message id), subagent tokens live only in their own files, and Codex’s session total is cumulative with the cached part inside the input count, so the per-turn figure is what counts and the cached part is charged at the cache rate.
The pane’s own footnote says the same thing:
The percentages are the providers’ own. The money is this Mac’s logs at list API prices — an estimate, not your bill.
What it costs to read
Two tiers, so the pane is not expensive to leave closed:
- the meters — one small file each — are re-read every two minutes, and only while Overterm is the active application;
- the walk over the logs for the cost estimate runs only while the pane is showing.
The walk reads each log backwards in 256 KB steps and stops at the first usage line older than the window, so a day costs about 0.1 MB a file where reading forwards would mean hundreds of megabytes. Each scan is cached against the file’s size and modification date.
Nothing leaves the Mac
To be explicit, because this is a page about quotas and money:
- Overterm makes no network request to produce any figure on this page.
- There is no API key anywhere in the app, and none is needed.
- The only command that talks to anything is Claude Code’s own
/usage, which you can switch off.
See Privacy.