Repo cost
Walks sessions to their Git root, so apps, packages, and scripts roll up into the project you recognize.
RepoSpend is a local first dashboard for tracking Codex and Claude Code token usage, repo by repo. It reads files already on your disk. No login, no telemetry, no prompt uploads.
npx repospendYour local AI coding activity at a glance
One screen for every signal that matters: spend, top repos, cache reuse, command issue rate, and file edits. All grouped by Git root, all running on localhost.

No vanity metrics. Just the things that tell you, repo by repo and session by session, where tokens and cost went.
Walks sessions to their Git root, so apps, packages, and scripts roll up into the project you recognize.
The shape of every run: cost, model, file edits, commands, highlights, warnings, and what made that session expensive.
Separates blocking command failures from harmless shell exits, so high-token troubleshooting loops are easier to triage.
Input, output, cached input, and reasoning tokens are shown separately, with cache reuse treated as a core metric.
Compare Codex and Claude Code locally. Slice by model, day, hour, source, app, repo, and session outcome.
JSON and CSV exports keep the data useful outside the dashboard: spreadsheets, notebooks, shell scripts, or your own tools.
Click through the real product views. Expand a screenshot when you want to inspect the details without opening the app.
No login, no API keys, no setup wizard. The hardest part is finding your terminal.
One command, and your dashboard opens at localhost:2005.
$ npx repospendScans ~/.codex and ~/.claude in read only mode, then walks sessions to Git roots.
reads ~/.codex and ~/.claudeFind the repo using the most tokens and inspect why.
localhost:2005RepoSpend binds to localhost. There is no hosted analytics service and no account to create. It is Apache 2.0 and auditable.
No account because there is nothing to store.
The dashboard does not report usage back.
Prompt and tool output stay local.
Codex and Claude files are read only.
RepoSpend was built first for Codex. Claude Code support is newer and depends on what your local files include. RTK appears when local RTK data exists.
Tokens, models, sessions, repo grouping, command friction, file edits, and cost. Reads ~/.codex/state_5.sqlite and ~/.codex/sessions.
Sessions, projects, models, timestamps, and tokens when available. Unknown token/cost fields stay unknown instead of guessed.
Surfaces RTK token savings analytics only when local RTK data exists. Otherwise it stays out of the way.
Power users get terminal friendly commands and source filters. The full help is one --help away.
$repospendOpen the dashboard at localhost:2005
$repospend scanScan local Codex and Claude Code files again
$repospend by-repoAggregate tokens and cost by Git root
$repospend by-dayDaily timeline of token use and spend
$repospend by-hourHourly distribution for spotting unusual bursts
$repospend by-modelSplit usage across model names
$repospend by-appGroup by app or surface where detectable
$repospend export --format jsonDump the local usage data as JSON
$repospend export --format csvExport CSV for a spreadsheet
$repospend by-repo --source codexFilter aggregates to one source
$REPOSPEND_NO_OPEN=1 repospendPrint the URL without opening a browser
Trust the dashboard before you install it. These are the things people ask first.
No. RepoSpend binds to localhost and reads files already on your machine. There is no login, no telemetry, and no prompt upload path in the dashboard.
No. RepoSpend shows API equivalent cost estimates from local token counts and pricing rules. It is useful for comparing repos and sessions, but it is not an invoice.
No. Codex, Claude Code, and RTK data are read only. RepoSpend settings live under ~/.repospend and can be reset from the Settings page.
Yes. Install once with npm install -g repospend, then run repospend. Node.js 20 or newer is required.
One command. No account, no upload, no surprise. The dashboard is already on your machine; RepoSpend just turns it into a map.
npx repospend