Intro
token-roi / bossify-with-claude: treat Claude Code (and Codex, Cursor, Aider) token spend as capital allocation. Point it at ~/.claude/projects/, get a boss dashboard on 127.0.0.1:8787. MIT, bilingual, local-first. Author @chinaharry.
The joke in the README is the spec: vibe-coding still has a unit cost. Nested lab copies of this repo are gone; this is the GitHub tree.
Method
Append-only JSONL under data/raw_events, rebuildable SQLite roi.db, derived MEMORY.md. Import from Claude Code, Codex, Cursor’s state.vscdb (token fields there are often zero), Aider, or OpenAI JSONL. Live capture via Claude Code hooks or an InstrumentedClient wrapper.
ROI is a documented formula: durable / reuse / outcome over cost, with optional LLM weights. Classes HIGH_VALUE, TRANSIENT_VALUE, LOW_VALUE, WASTED. A local judge (LM Studio or Ollama) returns constrained JSON — meaningful value, code produced, wasteful patterns — and can override the math. Retrieval mixes cosine and a BM25-ish term score. Dashboard is FastAPI + Jinja + ECharts, no CDN.
Demo
pip install -e '.[dashboard,embeddings]', then token-roi init → import claude-code → score → judge → dashboard. Tabs: Overview, People, Projects, Technical detail. Locale switch EN / 中文. Click a row for USD and wasteful_patterns. The 47-minute / 1.8M-token story in the README is illustrative copy, not a checked-in session.
Conclusion
A working local auditor with importers, a classifier you can explain, and a dashboard that names sessions. It does not upload prompts to a cloud judge. Garbage in if the source IDE did not record usage.