Claude Code, no need to worry about sunk costs anymore

schwabenschwabe1 pts0 comments

schwabe - npm

npm

Search<br>Sign UpSign In

schwabe<br>1.0.1 • Public • Published 5 hours ago<br>Readme<br>Code Beta<br>0 Dependencies<br>0 Dependents<br>2 Versions<br>🔥 schwabe

Your token limit just reset, and it expires before you'll ever use it honestly.<br>The only responsible thing to do is not to waste them.

schwabe is a token burner: it spins up a fleet of real AI agents that burn<br>through every token you paid for — and logs every one. It runs entirely in your<br>terminal. Full utilization is the deliverable: nothing left on the table.

Quick start

npm i -g schwabe # install — puts `schwabe` on your PATH (alias: tokenburner)<br>schwabe # the menu

schwabe opens a small arrow-key menu — pick what to do, pick a model, go.<br>Everything runs right there in your terminal (↑/↓ move · enter select · ← back · q quit).<br>Prefer flags? node burn.js takes them directly.

What it burns on

🔥 Burn — each agent gets one magnificently over-the-top task (a sonnet about a<br>runaway semicolon, an argument over whether water is wet, release notes for the<br>heat death of the universe…) and commits fully.

🌲 Offset your consumption (--forest) — each agent "plants" an ASCII tree<br>into a growing FOREST.txt, and we tally the virtual CO₂ savings (using real<br>per-species sequestration rates) against the very real CO₂ we just emitted<br>burning the tokens. Certified carbon-negative™. (It is not.)

node burn.js — the flags

node burn.js # burn, default tier (rich/opus) — spends real money<br>node burn.js --forest --schwabe --count 25 # 5×5 forest on haiku (cheap)<br>node burn.js --dry # mock backend — same UI, ZERO spend (safe preview)<br>node burn.js --plain # headless line output (no full-screen TUI)

flag<br>meaning<br>default

--forest<br>plant a virtual forest instead of burning text<br>off

--schwabe / --student / --rich

budget tier → haiku / sonnet / opus<br>--rich

--mode · --model

same, long form · override the model<br>from tier

--count N (alias --fleet)<br>how many agents in total<br>∞ (endless)

--concurrency N (alias --parallel)<br>how many run at once (~1 GB RAM each)

--unlimited<br>open the floodgates (as many as your RAM survives)<br>off

--backend

claude · gemini · codex · mock

claude

--dry<br>mock backend, no spend<br>off

--plain<br>headless renderer<br>auto (non-TTY)

--no-retry<br>give up instead of waiting out rate limits<br>off

--share<br>print a brag link after the receipt<br>off

⚠️ node burn.js with no flags spends real tokens on opus. Watch it free<br>first with node burn.js --dry.

The live dashboard is btop-style — heat-graded progress, per-agent spinners, a<br>tokens/sec graph, and a running LEDGER with lifetime totals. Colors auto-adapt to<br>a light or dark terminal. Press q to bail.

It logs everything, and survives running dry

Every agent is recorded to burns.csv (metrics) and ashes.jsonl (the<br>output), with lifetime totals carried across runs. Hit a rate / budget limit<br>mid-burn and the fleet waits and keeps retrying until it clears, then resumes<br>— --no-retry opts out.

Brag (optional, off by default)

node share.js x # prints a prefilled tweet link from your last burn

share.js reconstructs your most recent run from the ledger and hands you a<br>prefilled share link — it never opens a browser, you press the button —<br>behind a quick "heads up before you post" confirmation. --yes skips it.

Bonus: the Claude Code fleet

Inside Claude Code, /burn [N] runs a parallel swarm of agents and forges the<br>funniest wreckage into HALL_OF_FLAME.md.

How it's built

Clean, dependency-free, ESM. Add a burn engine or a share platform by dropping one<br>spec file into lib/backends/ or lib/integrations/ — both share one tiny<br>lib/core/registry.js. Every module is unit-tested with Node's built-in runner and<br>zero test dependencies : npm test.

burn.js entry: fleet → live dashboard → receipt<br>launcher.js the `schwabe` menu (alias: tokenburner)<br>lib/core/ util · config (flags + MODES tiers) · registry (name→spec)<br>lib/backends/ claude · gemini · codex · mock (registry + factory)<br>lib/engine/ fleet · retry · metrics · tasks · prompts · ledger<br>lib/forest/ the ASCII forest + real per-species CO₂ data<br>lib/ui/ tui.js (btop) · plain.js (headless) · widgets.js<br>lib/integrations/ brag/share platforms (prints links; never opens a browser)<br>test/ node:test unit suite (npm test) — no test deps

Every lib/ entry is a domain directory — no loose files — and every module<br>is unit-tested.

Why this repo exists — die schwäbische Doktrin 🪙

This whole thing is built for the Schwabe.

If you've never met one: a Schwabe is from Baden-Württemberg , the part of<br>Germany known for not spending money.* He doesn't throw out food, doesn't leave<br>the lights on, and will circle the block for twenty minutes to dodge a parking<br>fee. Sunk cost isn't a fallacy to him, it's just not a concept he accepts.<br>Paid for it? Then you use all of it, bis auf den letzten Tropfen.

Now think about your token limit. You paid for it, it resets on a timer, and any<br>tokens you didn't use are simply gone when the window closes. Most people don't<br>notice. A Schwabe can't think about...

burn schwabe node forest share claude

Related Articles