kroszwatch
v0.1.0
Published
Your Claude Code stats — every machine, one dashboard. Gorgeous local usage stats and shareable Wrapped-style cards.
Downloads
147
Maintainers
Readme
◆ kroszwatch
Your Claude Code stats. Every machine, one dashboard.
Gorgeous local usage stats in your terminal, plus Spotify-Wrapped-style share cards. Tracks Claude Code, Codex, and OpenCode. Free, MIT, no telemetry, everything stays on your machine.
Quick start
npx kroszwatch # your last 30 days, beautifully
npx kroszwatch wrapped # generate your share card (PNG)That's it. No config, no account, no network.
What you get
kroszwatch scan — your local stats at a glance: total tokens, daily rhythm
sparkline, model split, top projects, streaks, active time, and whether you're a
night owl or a daylight coder.
◆ kroszwatch · your claude code stats
1.73B tokens · last 30 days
▃▃▄▃▅█▁▁▄█▃▁▁▁▇▁▄▁▁▁▁▁▁▅▅▂▁▂▄▂
MODELS
Opus 4.8 ███████████░░░░░░░ 63% 1.08B
...Options: --days <n>, --all, --json, --tool claude|codex|opencode.
kroszwatch wrapped — a dark, premium 1200×1500 PNG stat card built for
posting. Periods: --period week | month | year | all. December "Claude Code
Wrapped" energy, available all year.
kroszwatch sync — push your stats to your own self-hosted dashboard and see
every machine in one place:
kroszwatch sync --url https://your-dashboard.vercel.app --token <your-token>
kroszwatch sync # url + token are remembered after the first run
kroszwatch sync --anonymize # hash project names before they leave the machineDashboard
A self-hosted Next.js app in dashboard/: every machine's tokens,
timeline, models, projects, streaks — one dark, token-gated page. You own the
deployment and the data.
- Create a free SQLite database at turso.tech and copy its URL + auth token.
- Click the button and set three env vars:
KROSZWATCH_TOKEN(any secret you invent — it's your owner password),TURSO_DATABASE_URL,TURSO_AUTH_TOKEN. - Open the deployed URL, enter your token, then
kroszwatch syncfrom each machine.
Run it locally instead with zero external services (uses a local SQLite file):
cd dashboard && npm install
KROSZWATCH_TOKEN=my-secret npm run devDesktop app
A native desktop app (Tauri, desktop/) with the same stats plus a Wrapped tab:
pick week, month, year, or all time, preview your card live, and save the PNG with
one click. Logs are parsed natively in Rust, so it opens fast.
cd desktop && npm install
npm run tauri dev # run it
npm run tauri build # build the installerHow it works
Claude Code writes session logs to ~/.claude/projects/**/*.jsonl. kroszwatch
stream-parses them read-only, dedupes retried messages by API message id, and
aggregates locally. Log formats are undocumented, so parsing is defensive:
malformed lines are skipped, never fatal.
Privacy
- Local by default:
scanandwrappedmake zero network calls. - Read-only: your logs are never modified.
syncsends only daily aggregates (token counts per day/project/model) to a dashboard you host, authenticated with your token. Never message content.--anonymizehashes project names before anything leaves the machine.
Requirements
Node 20+. Works on Windows, macOS, and Linux.
License
MIT © kroszborg. Bricolage Grotesque font bundled under the SIL OFL.
