by phuryn
A local dashboard for tracking your Claude Code token usage, costs, and session history. Pro and Max subscribers get a progress bar. This gives you the full picture.
# Add to your Claude Code skills
git clone https://github.com/phuryn/claude-usageLast scanned: 4/29/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-04-29T06:23:27.227Z",
"semgrepRan": false,
"npmAuditRan": true,
"pipAuditRan": true
}claude-usage is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by phuryn. A local dashboard for tracking your Claude Code token usage, costs, and session history. Pro and Max subscribers get a progress bar. This gives you the full picture. It has 1,963 GitHub stars.
Yes. claude-usage passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/phuryn/claude-usage" and add it to your Claude Code skills directory (see the Installation section above).
claude-usage is primarily written in Python. It is open-source under phuryn on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh claude-usage against similar tools.
No comments yet. Be the first to share your thoughts!
Pro and Max subscribers get a progress bar. This gives you the full picture.
Claude Code writes detailed usage logs locally — token counts, models, sessions, projects — regardless of your plan. This dashboard reads those logs and turns them into charts and cost estimates. Works on API, Pro, and Max plans.

Available as a web app (python cli.py dashboard) and as a VS Code extension.
Created by: The Product Compass Newsletter
Works on API, Pro, and Max plans — Claude Code writes local usage logs regardless of subscription type. This tool reads those logs and gives you visibility that Anthropic's UI doesn't provide.
Captures usage from:
claude command in terminal)Not captured:
sqlite3, http.server, json, pathlib)Anyone running Claude Code already has Python installed.
No pip install, no virtual environment, no build step.
brew tap phuryn/claude-usage https://github.com/phuryn/claude-usage
brew install phuryn/claude-usage/claude-usage
claude-usage dashboard
Homebrew has disabled installing a formula from an arbitrary raw URL, so tap the repo first (thanks @adrianlungu for the working incantation in #46).
After install, the claude-usage command is on your PATH and accepts the same subcommands as python cli.py (scan, today, stats, dashboard).
uv tool install git+https://github.com/phuryn/claude-usage
claude-usage dashboard
Installs the claude-usage command without a clone (works with pipx too: pipx install git+https://github.com/phuryn/claude-usage). The tool stays dependency-free — this only adds packaging metadata, no third-party runtime deps (#144).
git clone https://github.com/phuryn/claude-usage
cd claude-usage
python3 cli.py dashboard
git clone https://github.com/phuryn/claude-usage
cd claude-usage
python cli.py dashboard
git clone https://github.com/phuryn/claude-usage
cd claude-usage
bash scripts/run-docker.sh
Opens the dashboard at http://localhost:9898.
The script builds the image, then runs the container with:
~/.claude mounted read-only — the container can read your transcripts but cannot modify themclaude-usage-data) for the SQLite database — persisted across restarts, isolated from your home directoryOn macOS/Linux, use
python3instead ofpythonin all commands below. If you installed via Homebrew, replacepython cli.pywithclaude-usage.
# Scan JSONL files and populate the database (~/.claude/usage.db)
python cli.py scan
# Show today's usage summary by model (in terminal)
python cli.py today
# Show the last 7 days (per-day breakdown + by-model totals)
python cli.py week
# Show all-time statistics (in terminal)
python cli.py stats
# Scan + open browser dashboard at http://localhost:8080
python cli.py dashboard
# Custom host and port via environment variables
HOST=0.0.0.0 PORT=9000 python cli.py dashboard
# Scan a custom projects directory
python cli.py scan --projects-dir /path/to/transcripts
The scanner is incremental — it tracks each file's path and modification time, so re-running scan is fast and only processes new or changed files.
By default, the scanner checks both ~/.claude/projects/ and the Xcode Claude integration directory (~/Library/Developer/Xcode/CodingAssistant/ClaudeAgentConfig/projects/), skipping any that don't exist. Use --projects-dir to scan a custom location instead.
Claude Code writes one JSONL file per session to ~/.claude/projects/. Each line is a JSON record; assistant-type records contain:
message.usage.input_tokens — raw prompt tokensmessage.usage.output_tokens — generated tokensmessage.usage.cache_creation_input_tokens — tokens written to prompt cachemessage.usage.cache_read_input_tokens — tokens served from prompt cachemessage.model — the model used (e.g. claude-sonnet-4-6)scanner.py parses those files and stores the data in a SQLite database at ~/.claude/usage.db.
dashboard.py serves a single-page dashboard on localhost:8080 with Chart.js charts (loaded from CDN). It auto-refreshes every 30 seconds and supports model filtering and a date-range dropdown with bookmarkable URLs. A sticky section nav jumps between sections, and every chart/table can be collapsed (remembered across reloads). The bind address and port can be overridden with HOST and PORT environment variables (defaults: localhost, 8080).
Costs are calculated using Anthropic API pricing as of June 2026 (claude.com/pricing#api).
Only models whose name contains fable, mythos, opus, sonnet, or haiku are included in cost calculations. Local models, unknown models, and any other model names are excluded (shown as n/a).
| Model | Input | Output | Cache Write | Cache Read |
|---|---|---|---|---|
| claude-fable-5 | $10.00/MTok | $50.00/MTok | $12.50/MTok | $1.00/MTok |
| claude-mythos-5 | $10.00/MTok | $50.00/MTok | $12.50/MTok | $1.00/MTok |
| claude-opus-4-8 | $5.00/MTok | $25.00/MTok | $6.25/MTok | $0.50/MTok |
| claude-opus-4-7 | $5.00/MTok | $25.00/MTok | $6.25/MTok | $0.50/MTok |
| claude-opus-4-6 | $5.00/MTok | $25.00/MTok | $6.25/MTok | $0.50/MTok |
| claude-sonnet-4-6 | $3.00/MTok | $15.00/MTok | $3.75/MTok | $0.30/MTok |
| claude-haiku-4-5 | $1.00/MTok | $5.00/MTok | $1.25/MTok | $0.10/MTok |
Note: These are API prices. If you use Claude Code via a Max or Pro subscription, your actual cost structure is different (subscription-based, not per-token).
If you'd rather see the dashboard inside your editor, the same UI is available as a VS Code extension. Same data, same charts, embedded as an activity-bar sidebar.
Install from the VS Code Marketplace →

The Python sources are bundled inside the .vsix, so the only end-user requirement is Python 3.8+ on your PATH. After install, click the gauge icon in the activity bar — the server spawns automatically and the dashboard renders in the sidebar.
See vscode-extension/README.md for settings, commands, discovery order, and local-install instructions.
| File | Purpose |
|---|---|
scanner.py |
Parses JSONL transcripts, writes to ~/.claude/usage.db |
dashboard.py |
HTTP server + single-page HTML/JS dashboard |
cli.py |
scan, today, stats, dashboard commands |
Formula/claude-usage.rb |
Homebrew formula — install with brew tap phuryn/claude-usage then brew install phuryn/claude-usage/claude-usage |
vscode-extension/ |
VS Code extension — embeds the dashboard inside VS Code |
Dockerfile |
Container image definition |
scripts/run-docker.sh |
Build and run the dashboard in Docker with a read-only ~/.claude mount |