seatledger guide · checked
How to see Claude Code usage per developer
Inside Claude Code, each developer sees only their own machine: /usage is computed from the local session history, so usage from other devices is not in it. Per-developer numbers for a team live in the admin tools of whichever way the team pays (the table below, from Anthropic's cost docs as of 7 October 2026). On Team seats the spend report covers usage-credit spend, and usage inside the seat allowance is not metered in dollars. To see every developer's tokens either way, read them where Claude Code writes them: the transcripts on each developer's machine, which npx seatledger reads locally and a team ledger collects as daily counts.
Where per-developer numbers live today
| How the team pays | Per-developer numbers | What they cover |
|---|---|---|
| Claude for Teams | Spend report in org analytics, with CSV | Token usage and estimated spend per user and model for usage-credit spend. Usage inside the seat allowance is not metered in dollars. |
| Claude for Enterprise | Enterprise Analytics API | Per-user usage and cost reports across Claude surfaces, Claude Code included. |
| Claude Console (API keys) | Console Claude Code dashboard; Claude Code Analytics API | Daily spend and accepted lines per member, with an Admin API key. |
| Bedrock, Agent Platform, Foundry | OpenTelemetry, or a gateway | Per-user tokens and cost exported from each developer's machine to your own stack. |
OpenTelemetry export works on every setup and is the option Anthropic describes for streaming per-user token and cost metrics into your own observability stack. If you already run one, start there.
The method: read the transcripts each machine keeps
Claude Code writes every response to ~/.claude/projects/**/*.jsonl with its usage: input tokens, output tokens, cache reads, and cache writes split into the 5-minute and 1-hour lifetimes, plus the model, the client version and a timestamp. Codex writes its own token counts to ~/.codex/sessions. seatledger reads those counts and nothing else, merges a response Claude Code wrote over several lines, counts a response that appears in two files once, and prices the tokens at the vendor's API list prices. That dollar figure is API-equivalent: what the seat's usage would cost on the API, not the seat's price, and the number to compare developers, models and months by. It keeps its counts after Claude Code deletes transcripts older than 30 days.
$ npx seatledger
seatledger — what your coding-agent seats and tokens bought, from this machine
Today, Wed 7 Oct
requests input output cache write cache read tokens API-equiv $
Claude Code · claude-opus-5-5 122 1.1K 115K 5.29M 5.37M 10.8M $29.81
Codex · gpt-5.6-sol 28 98K 23K 46K 882K 1.05M $1.43
Claude Code · claude-haiku-4-5-20251001 9 8.1K 360 0 0 8.5K $0.01
total 159 107K 138K 5.33M 6.25M 11.8M $31.25
Last 7 days, Thu 1 Oct – Wed 7 Oct
requests input output cache write cache read tokens API-equiv $
Thu 1 Oct 100 119K 83K 2.17M 3.66M 6.03M $13.88
Fri 2 Oct 118 109K 113K 2.57M 5.53M 8.32M $16.80
Sat 3 Oct 48 3.1K 44K 1.54M 2.52M 4.10M $9.07
Sun 4 Oct 39 3.0K 33K 1.37M 1.35M 2.75M $7.75
Mon 5 Oct 110 188K 96K 2.58M 4.11M 6.98M $16.70
Tue 6 Oct 140 107K 127K 3.60M 5.48M 9.32M $22.21
Wed 7 Oct 159 107K 138K 5.33M 6.25M 11.8M $31.25
total 714 637K 634K 19.1M 28.9M 49.3M $117.65
Limits: none set. `seatledger limits set --window 5h --tokens N` records your own;
seatledger does not guess a vendor's plan limits.
Vendor readings, as the client last wrote them to disk
Codex 5-hour window: 26% used, resets 18:00, plan plus (read 13:43)
Codex weekly window: 7% used, resets Sun 11 Oct 18:00, plan plus (read 13:43)
API-equiv $ = what these tokens would cost at the vendor's API list prices. Not what you were
billed; a seat is a flat fee with an allowance.
Read 180 Claude Code transcripts and 32 Codex transcripts, on this machine only. Nothing was sent
anywhere.
More: seatledger report --by project · seatledger rates · seatledger limits set --window 5h --tokens NEvery developer on one page
The team lead runs npx seatledger team create. It creates a free team, keeps the owner key on that machine (readable only by its user, never printed) and prints an invite link. Each developer runs npx seatledger team join <link> --as <name> once, then npx seatledger push, by hand or from a cron or session-end hook. A push sends daily counts per day, client, client version and model, and never prompts, responses, file paths or (unless a developer opts in) folder names; npx seatledger push --dry-run prints exactly what would be sent.
Free covers 3 developers and 30 days of history. Team is $49 a month for up to 10 developers, 13 months of history and an email when a step change in token use shows up on anyone's machine. The owner sees every developer; a developer sees the team's totals and their own row.
Per-person usage is information about people. Tell the developers what is collected before they push; they can each read it with --dry-run.
Run it
On your own machine first, to see what your seat bought; then npx seatledger team create when you want the team on one page.
$ npx seatledgerFree and MIT. It reads the transcripts on this machine, makes no network request and sends nothing unless you create or join a team ledger.
Sources
- Claude Code docs: Manage costs effectively — read 7 October 2026: /usage, per-user reporting by setup, the Teams spend report
- anthropics/claude-code#16157 — “Instantly hitting usage limits with Max subscription”, opened 3 January 2026; 726 reactions and 1,499 comments on 7 October 2026
- anthropics/claude-code#38335 — Max plan session limits exhausted abnormally fast since 23 March 2026; 545 reactions and 875 comments on 7 October 2026