Usage
~96% of the headline is cache reads (free replay of context the model already saw). The honest "did real work" number is 1.15B in input + output + cache writes. Both numbers are accurate, the second is the one I think about. Claude Code rotates raw transcripts after about a month, so each refresh merges the live window into a day-level archive; headline numbers are all-time. Model, tool, and category splits cover the recent window only.
What all this actually built
Tokens are the cost, not the point. The point:
- This site: ~4,600 lines of server.js, every post, every feature.
- The personal agent fleet: seven agents and 48 crons on a Mac Mini in my living room.
- Voltade work: customer demos, eval harnesses, ops tooling. The Voltade and AI products slices below.
- The automation that lets The Bon Pet run mostly without me.
Where it goes
Token share by project category, recent window. A few private folders count towards the totals but are not broken out.
- π€ AI products1.9%
- π Personal site6.2%
- β‘ Voltade47.8%
- πΎ BonPet20.6%
- π§ͺ Side projects23.6%
Daily activity
Last 60 days. Each cell is one day, intensity is messages sent.
Models
Share of input + output + cache writes by model, recent window.
- Claude opus 4.742.7%
- Claude opus 4.840.2%
- Claude haiku 4.514.2%
- Claude fable-52.4%
- Claude sonnet 4.60.5%
Tools
How Claude actually spends its turns. 46,823 tool calls across 73 distinct tools. More reads than edits usually means I'm in exploration mode.
- Bash49.7%
- Read16.7%
- Edit12.0%
- Write3.8%
- WebSearch3.5%
- TaskUpdate3.2%
- TaskCreate1.8%
- mcp__plugin_playwright_playwright__browser_navigate1.3%
- WebFetch1.2%
- mcp__plugin_playwright_playwright__browser_evaluate0.9%
- other (63)5.8%
Meta
Aggregated locally by scripts/aggregate-claude-usage.mjs from ~/.claude/projects/**/*.jsonl. No prompt content is read or shipped. Categories are curated in content/claude-categories.json.