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 paysPer-developer numbersWhat they cover
Claude for TeamsSpend report in org analytics, with CSVToken usage and estimated spend per user and model for usage-credit spend. Usage inside the seat allowance is not metered in dollars.
Claude for EnterpriseEnterprise Analytics APIPer-user usage and cost reports across Claude surfaces, Claude Code included.
Claude Console (API keys)Console Claude Code dashboard; Claude Code Analytics APIDaily spend and accepted lines per member, with an Admin API key.
Bedrock, Agent Platform, FoundryOpenTelemetry, or a gatewayPer-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 N
Synthetic history: the real output of npx seatledger demo on generated transcripts, not anyone's usage (as of 2026-10-07).

Every 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 seatledger

Free 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