Name
agent-wrapped
A wrapped card for how you actually work with Claude Code β
read from your own logs, rendered on your machine, sent nowhere.
Synopsis
npx @lfgcampos/agent-wrapped
Node 22+. No install, no account, no config.
Output
CLAUDE CODE Β· 33 ACTIVE DAYS 2026-07-16 β 2026-08-25 394 : 1 tokens read for every token written 4-day streak Β· longest 18 Β· you work most at 3pm ββββ β ββββββββββββββββ βββ 19% of your writing is weekend work 00 23 98% of what it read was cache β the same context, re-sent 42% of your calls were subagentsβ¦ 6% β¦but they wrote only that share of the words 58% of your writing went to 3 of your 19 repos WHAT YOU REACH FOR (% of 49,566 tool calls) ββββββββββββββ 62% Bash ββββββββββββββ 14% Read ββββββββββββββ 13% Edit ββββββββββββββ 4% Write 15.2 agent turns for every message you send Β· 733 sessions BATTLE SCARS 4 times you hit the usage limit, across 3 weeks 14 times the server was overloaded on you
Privacy
Everything happens on your machine. There is no server to send anything to.
- No network calls. No account, no analytics, no version check.
- Zero runtime dependencies. No third-party code to audit but this.
- About a thousand lines. Read it and confirm both claims yourself.
It reads two paths, both read-only: ~/.claude/projects and
~/.claude/settings.json. Your repository names are never rendered,
never logged, and never written to --json β they are grouping keys,
discarded before display. A screenshot is safe to post.
What the numbers mean
Every percentage names its denominator, because the same figure can be honest two different ways.
- 394 : 1
- Context tokens read per token written. Rate-free and comparable between people, however heavily they use Claude Code.
- 98% cache
- Cache reads over all context read β not over all tokens.
- 42% / 6% subagents
- Share of calls, then share of words written. Reported as a pair on purpose: subagents read heavily and write little.
- Skill and tool shares
- Weighted by tokens written, never by total tokens. Totals are dominated by cache reads, which would flatten everything to the same value.
There are no costs anywhere, deliberately. Pricing local usage at API rates values a behaviour that only exists because it is not billed that way, so the number would be fiction rather than a saving.
Options
- --since 30d
- Limit to a window:
30d,12w,6m, or a date. Faster than a full run β older transcripts are never opened. - --html
- Write a self-contained page and print its path.
- --json
- Raw stats, for your own charts.
Each full run saves a ~1 KB snapshot and compares against the last one, so you can keep a year of history without keeping a year of transcripts.
See also
- github.com/lfgcampos/agent-wrapped β source, issues
- npmjs.com/package/@lfgcampos/agent-wrapped
- whatkindof.dev β asks how you think you work; this reads what your logs say
Author
Lucas Campos Β· Substack Β· LinkedIn Β· GitHub