why use many token when few do trick
Fork of caveman by Julius Brussee (MIT). See NOTICE.
Before/After • Install • What You Get • Benchmarks • Full install guide
A Claude Code skill/plugin (also Codex, Gemini, Cursor, Windsurf, Cline, Copilot, 30+ more) that makes agent talk like cavernaman — cuts ~75% of output tokens, keeps full technical accuracy. Brain still big. Mouth small.
|
|
|
|
Same fix. 75% less word. Brain still big.
┌─────────────────────────────────────┐
│ TOKENS SAVED ████████ 75% │
│ TECHNICAL ACCURACY ████████ 100%│
│ SPEED INCREASE ████████ ~3x │
│ VIBES ████████ OOG │
└─────────────────────────────────────┘
Pick your level of grunt — lite (drop filler), full (default cavernaman), ultra (telegraphic), or wenyan (classical Chinese, even shorter). One command switch. Cost go down forever.
|
This skill shrink what agent say. caveman-code shrink everything — full terminal coding agent, caveman top to bottom. ~2× fewer tokens than Codex on identical tasks. 20+ providers · plan mode · autopilot goal loop · MIT. npm install -g @juliusbrussee/caveman-code▶ Try caveman-code now → — why use many token when whole agent save |
One line. Find every agent. Install for each.
# macOS / Linux / WSL / Git Bash
curl -fsSL https://raw.githubusercontent.com/jagoff/cavernaman/main/install.sh | bash
# Windows (PowerShell 5.1+)
irm https://raw.githubusercontent.com/jagoff/cavernaman/main/install.ps1 | iex~30 seconds. Needs Node ≥18. Skip agent you no have. Safe to re-run.
Trigger: type /cavernaman or say "talk like cavernaman". Stop with "normal mode".
One agent only, manual command, or any of 30+ other agents → INSTALL.md. Install break? Open agent, say "Read CLAUDE.md and INSTALL.md, install cavernaman for me." Agent fix own brain.
| Skill | What |
|---|---|
/cavernaman [lite|full|ultra|wenyan] |
Compress every reply. Levels stick until session end. |
/cavernaman-commit |
Conventional Commit messages, ≤50 char subject. Why over what. |
/cavernaman-review |
One-line PR comments: L42: 🔴 bug: user null. Add guard. |
/cavernaman-stats |
Real session token usage + lifetime savings + USD. Tweetable line via --share. |
/cavernaman-compress <file> |
Rewrite memory file (e.g. CLAUDE.md) into caveman-speak. Cuts ~46% input tokens every session. Code/URLs/paths byte-preserved. |
caveman-shrink |
MCP middleware. Wraps any MCP server, compresses tool descriptions. npm. |
cavecrew-* |
Cavernaman subagents (investigator/builder/reviewer). ~60% fewer tokens than vanilla, main context lasts longer. |
Statusline badge — Claude Code shows [CAVERNAMAN] ⛏ 12.4k (lifetime tokens saved). Updates every /cavernaman-stats run. Set CAVEMAN_STATUSLINE_SAVINGS=0 to silence.
Auto-activate every session: Claude Code, Codex, Gemini (built-in). Cursor / Windsurf / Cline / Copilot get always-on rule files via --with-init. Other agents trigger with /cavernaman per session. Full feature matrix in INSTALL.md.
Real token counts from the Claude API. Average 65% output reduction across 10 prompts (range 22-87%).
| Task | Normal | Cavernaman | Saved |
|---|---|---|---|
| Explain React re-render bug | 1180 | 159 | 87% |
| Fix auth middleware token expiry | 704 | 121 | 83% |
| Set up PostgreSQL connection pool | 2347 | 380 | 84% |
| Explain git rebase vs merge | 702 | 292 | 58% |
| Refactor callback to async/await | 387 | 301 | 22% |
| Architecture: microservices vs monolith | 446 | 310 | 30% |
| Review PR for security issues | 678 | 398 | 41% |
| Docker multi-stage build | 1042 | 290 | 72% |
| Debug PostgreSQL race condition | 1200 | 232 | 81% |
| Implement React error boundary | 3454 | 456 | 87% |
| Average | 1214 | 294 | 65% |
Raw data and reproduction script: benchmarks/. Three-arm eval harness (baseline / terse / skill) lives in evals/ — cavernaman compared against Answer concisely. not against verbose default, so the delta is honest.
caveman-compress receipts (real memory files):
| File | Original | Compressed | Saved |
|---|---|---|---|
claude-md-preferences.md |
706 | 285 | 59.6% |
project-notes.md |
1145 | 535 | 53.3% |
claude-md-project.md |
1122 | 636 | 43.3% |
todo-list.md |
627 | 388 | 38.1% |
mixed-with-code.md |
888 | 560 | 36.9% |
| Average | 898 | 481 | 46% |
Important
Cavernaman only affects output tokens — thinking/reasoning tokens untouched. Cavernaman no make brain smaller. Cavernaman make mouth smaller. Biggest win is readability and speed, cost savings a bonus.
A March 2026 paper "Brevity Constraints Reverse Performance Hierarchies in Language Models" found that constraining large models to brief responses improved accuracy by 26 points on certain benchmarks. Verbose not always better. Sometimes less word = more correct.
cavernaman a fork of caveman by Julius Brussee (MIT). caveman invent whole thing — the voice, the levels, the install matrix, the hook that make Claude talk terse from message one. Big thanks. cavernaman stand on caveman shoulder. Go star caveman. 🙏
cavernaman add a "token-savings v2" pass on top — every number a real run:
ultrav2 — response-shape templates, markdown-strip, symbol swaps, single-word answers. +23% tighter output vs caveman shipped ultra (median +19%).caveman-shrinkv2 — compress prose in tool-call results that used to pass through untouched. +14% on prose; structured data (JSON/tables/code) stay byte-identical.- Injected-ruleset trim — per-session ruleset cost drop 2–8% per level, no behavior change.
- Three-axis measurement harness — savings checkable, floor cases shown not hidden.
cavernaman cut tokens on three independent levers, each measured separately:
Full breakdown, repro commands, honest caveats → docs/cavernaman-vs-caveman.md.
- Install drop skill file in agent.
- Skill tell agent: drop filler, keep substance, use fragments.
- For Claude Code, hook also write tiny flag file each session — agent see flag, talk cavernaman from message one. No need say
/cavernaman. - Stats command read Claude Code session log, count tokens saved, write number to statusline.
- Cavernaman-compress sub-skill rewrite memory files (CLAUDE.md, project notes) so each session start with smaller context. Save tokens forever, not just one reply.
Maintainer detail (hook architecture, file ownership, CI sync) live in CLAUDE.md.
OpenClaw the self-host gateway. One box, many agent inside (Claude Code, Codex, Pi, OpenCode), wired to your Slack / Discord / iMessage / Telegram / whatever. Tagline: "The lobster way." Lobster strong. Lobster smart. Lobster also talk a lot.
Cavernaman teach lobster brevity — same canonical installer, scoped to one agent:
# macOS / Linux / WSL
curl -fsSL https://raw.githubusercontent.com/jagoff/cavernaman/main/install.sh | bash -s -- --only openclaw
# Windows (PowerShell): no Node? install Node ≥18 first, then
npx -y github:jagoff/cavernaman -- --only openclawTwo thing happen, no more:
- Skill drop at
~/.openclaw/workspace/skills/caveman/SKILL.md— spec-correct frontmatter (version,always: true), discoverable byopenclaw skills list. Skill not auto-inject (OpenClaw load skill on demand) — that why we also do step 2. - SOUL.md nudge. Tiny marker-fenced block appended to
~/.openclaw/workspace/SOUL.md. OpenClaw inject SOUL.md into every turn under "Project Context" (12K-per-file, 60K total — block well under). Lobster terse from message one. No/cavernamanper session. No nag.
~/.openclaw/workspace/
├── skills/caveman/SKILL.md ← full ruleset, on-demand load
└── SOUL.md ← <!-- caveman-begin --> ... <!-- caveman-end -->
↑ auto-inject every turn
Custom workspace path? OPENCLAW_WORKSPACE=/your/path before the command. Uninstall: same one-liner with --uninstall — skill folder gone, SOUL.md block ripped out cleanly, your other workspace content stay untouched. Idempotent re-runs (frontmatter not double-prepended, marker block not duplicated).
Lobster claw still sharp. Lobster mouth now small. Brain still big.
Five tools. One philosophy: agent do more with less.
| Repo | What |
|---|---|
| cavernaman (you here) | Output compression — why use many token when few do trick |
| caveman-code | Whole terminal coding agent — why use many token when whole agent can save |
| cavemem | Cross-agent memory — why agent forget when agent can remember |
| cavekit | Spec-driven build loop — why agent guess when agent can know |
| cavegemma | Gemma 4 31B fine-tuned on cavernaman pairs — why prompt every turn when weight remember |
Compose: cavekit drive build, cavernaman compress what agent say, cavemem compress what agent remember, cavegemma bake compression into weight, caveman-code ship it all as one terminal agent. One rock. Two rock. Three rock. Four rock. Five rock. That it.
- INSTALL.md — full install matrix, all flags, per-agent detail
- CONTRIBUTING.md — how to send patch
- CLAUDE.md — maintainer guide (file ownership, hook architecture, CI)
- docs/ — extra guides (Windows install, etc.)
- Issues — bug, feature, weird behavior
Cavernaman save you token, save you money. Star cost zero. Fair trade. ⭐
- Revu — local-first macOS study app with FSRS spaced repetition. revu.cards
MIT — free like mass mammoth on open plain.


