Where did my Codex / Claude Code quota go?

QuotaTrace reads the session logs already on your machine and lines up your plan's quota percentage with the tokens behind every call. You see which quota jumps were out of line with your work, and what actually burned your tokens.

Free Open source Runs locally, nothing uploaded

Run it

Node 18+, no dependencies
In a terminal
$ npx github:lowkey-studio/quotatrace --since 30d
Run it in your browser No terminal? Pick your .codex/sessions or .claude/projects folder and the analysis runs inside the page.

Writes quotatrace-report.md with counts only (hashed session ids, no prompts, paths or file names), so you can attach it to an issue or a support ticket.

Quota used vs tokens, weekly window
Example result, synthetic logs
12% → 27%quota used, pro plan
16.69Mtokens behind it
0.90% per 1M tokens
+9%one jump with 123,300 tokens behind it
Quota jumps out of line
Time (UTC)Quota jumpTokens since last stepExpected
2026-10-10 15:20+9%123,300+0.1%
  • Waiting and polling: 40 calls (22.2%) followed a sleep / wait poll, costing 4.77M tokens (28.6%).
  • One 60,000-token command output was re-sent 109 times: 6.54M input tokens.

What the report shows

Quota points per million tokens, per window

Codex logs used_percent with each call. Comparable work should cost comparable points per million tokens; a sudden multiple on the same plan and model points to metering, not you.

Quota jumps out of line with the tokens behind them

With UTC timestamps. Jumps with zero local calls point to another device, a cloud task or background use.

Where the tokens went

Context replay, big-context calls that produced almost nothing, sleep and wait polling, and the tool outputs that were re-sent on every later call (size × times re-sent).

Claude Code

Cache writes vs reads, cache rebuilt after a pause, subagent share, and the tool results that were re-read the most.

Claude Code keeps your plan's usage percentage out of its transcripts, so quotatrace meter install adds a status line hook that records it (your existing status line keeps working). After that you get quota points per 1M tokens for Claude Code too.

Live speedometer

Tokens per minute and cache hit rate per running session, quota points per hour, and time until each window is empty.

In a terminal
$ npx github:lowkey-studio/quotatrace live

Can you trust it with your logs?

No network requests

The CLI has no fetch, http or net imports: check it. The browser version keeps working after you disconnect.

Small and read-only

Under 800 readable lines with zero dependencies. It only reads your logs and writes one report. Source: github.com/lowkey-studio/quotatrace

Contribute to the public quota dataset

See submissions

This prints a link to a prefilled GitHub issue holding only per-window aggregates (date, window, plan, points used, thousands of tokens). You review it before posting. Pooled, these show what a quota point buys per plan and model, and when that changed.

In a terminal
$ npx github:lowkey-studio/quotatrace --share

Caveats

  • Only calls logged on the machine you run it on are counted.
  • Codex reports quota in whole points, so short windows are noisy.
  • Tool-output sizes are estimated at 4 characters per token.
  • Claude Code does not log your plan's usage percentage, so its section reports tokens.