Usage
~96% of the headline is cache reads (free replay of context the model already saw). The honest "did real work" number is 1.38B 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.3%
- π Volty0.5%
- π Personal site5.3%
- β‘ Voltade27.8%
- πΎ BonPet37.2%
- π§ͺ Side projects27.8%
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.862.1%
- Claude haiku 4.517.9%
- Claude opus 4.710.4%
- Claude fable-59.1%
- Claude sonnet 4.60.5%
Tools
How Claude actually spends its turns. 44,605 tool calls across 78 distinct tools. More reads than edits usually means I'm in exploration mode.
- Bash48.1%
- Read20.4%
- Edit10.3%
- WebSearch4.6%
- Write3.1%
- WebFetch2.6%
- StructuredOutput1.9%
- TaskUpdate1.4%
- ToolSearch1.1%
- mcp__plugin_playwright_playwright__browser_navigate0.9%
- other (68)5.4%
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.