guilt-max
v0.1.1
Published
Feel bad about your Claude Code token spend, beautifully, in your terminal.
Downloads
45
Maintainers
Readme
Guilt Max 😇🔥
Feel bad about your Claude Code token spend — beautifully, in your terminal.
Guilt Max reads your local Claude Code usage logs and shows you exactly how many trees you've torched, litres you've boiled, dollars you've evaporated, and how much of a 2am gremlin you really are. Then it lets an AI roast you.
Usage
npx guilt-max # launch the interactive TUI
guilt-max --no-ai # skip the claude-CLI roast (use local fallback)
guilt-max --json # dump computed facts + stats as JSON
guilt-max --data-dir <path> # read logs from a specific directoryNavigate with 1–4 / ← →, regenerate the roast with r, quit with q.
usage — day-wise token & cost breakdown
Prints a ccusage-style table (date · input · output · cache · total · cost) with a
grand total, then exits — no TUI:
guilt-max usage # daily breakdown + total (table)
guilt-max usage --json # same data as JSON (daily[], totals, machines[])Across all your machines
guilt-max reads local Claude Code logs (~/.claude/projects), so a single machine
only sees its own usage. To get your combined usage, copy each machine's
~/.claude/projects into its own folder and point --data-dir at each (repeatable,
or comma-separated). Records are merged and de-duplicated by message id, and each is
tagged with its folder for the per-machine summary:
guilt-max usage --data-dir ~/claude-logs/laptop --data-dir ~/claude-logs/desktopCost is estimated from a bundled price snapshot. On a Pro/Max subscription you pay a flat fee, so the dollar figure is the notional API-equivalent value, not what you were billed. (There is no Anthropic API that reports aggregate subscription usage, so merging local logs is the only way to see all machines together.)
How it works
- Reads
~/.claude/projects/**/*.jsonl(dedupes by message+request id). - Computes cost from a bundled model-price snapshot.
- Derives playful "guilt" facts and behavioral stats.
- The Roast tab shells out to your installed
claudeCLI (no API key). If it's unavailable, a local rule-based roast steps in.
Disclaimer
The environmental and money numbers are deliberately rough, playful
approximations — tunable in src/factors.ts. This is a fun project, not a
carbon audit.
Development
npm install
npm test
npm run dev # tsx src/cli.ts
npm run build # bundle to dist/ with tsup