Expand README with new features and docs: add TOC links for Skills and Evals, update intro to mention Wenyan mode/terse commits/reviews and compression tool, and consolidate Windows Codex install/symlink notes into a short note. Add a new Wenyan (文言文) section with levels and example, introduce Caveman Skills (caveman-commit and caveman-review) with usage examples and severity prefixes, and add an Evals section describing the eval harness and commands. Minor wording/ordering tweaks to installation text.
caveman
why use many token when few do trick
Install • Benchmarks • Before/After • Intensity Levels • Skills • Compress • Evals • Why
A Claude Code skill/plugin and Codex plugin that makes agent talk like caveman — cutting ~75% of output tokens while keeping full technical accuracy. Now with 文言文 mode, terse commits, one-line code reviews, and a compression tool that cuts ~45% of input tokens every session.
Based on the viral observation that caveman-speak dramatically reduces LLM token usage without losing technical substance. So we made it a one-line install.
Before / After
🗣️ Normal Claude (69 tokens)
|
🪨 Caveman Claude (19 tokens)
|
🗣️ Normal Claude
|
🪨 Caveman Claude
|
Same fix. 75% less word. Brain still big.
Sometimes too much caveman. Sometimes not enough:
🪶 Lite
|
🪨 Full
|
🔥 Ultra
|
📜 Wenyan-Full
|
Same answer. You pick how many word.
Benchmarks
Real token counts from the Claude API (reproduce it yourself):
| Task | Normal (tokens) | Caveman (tokens) | 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% |
Range: 22%–87% savings across prompts.
Important
Caveman only affects output tokens — thinking/reasoning tokens are untouched. Caveman no make brain smaller. Caveman make mouth smaller. Biggest win is readability and speed, cost savings are a bonus.
Science back caveman up
A March 2026 paper "Brevity Constraints Reverse Performance Hierarchies in Language Models" found that constraining large models to brief responses improved accuracy by 26 percentage points on certain benchmarks and completely reversed performance hierarchies. Verbose not always better. Sometimes less word = more correct.
Install
npx skills add JuliusBrussee/caveman
npx skills supports 40+ agents — Claude Code, GitHub Copilot, Cursor, Windsurf, Cline, and more. To install for a specific agent:
npx skills add JuliusBrussee/caveman -a cursor
npx skills add JuliusBrussee/caveman -a github-copilot
npx skills add JuliusBrussee/caveman -a cline
npx skills add JuliusBrussee/caveman -a windsurf
npx skills add JuliusBrussee/caveman -a codex
Or with Claude Code plugin system:
claude plugin marketplace add JuliusBrussee/caveman
claude plugin install caveman@caveman
Codex:
- Clone repo
- Open Codex in repo
- Run
/plugins - Search
Caveman - Install plugin
Note
Windows Codex users: Clone repo → VS Code → Codex Settings → Plugins → find
Cavemanunder local marketplace → Install → Reload Window. Also enablegit config core.symlinks truebefore cloning (requires developer mode or admin).
Install once. Use in all sessions after that. One rock. That it.
Usage
Trigger with:
/cavemanor Codex$caveman- "talk like caveman"
- "caveman mode"
- "less tokens please"
Stop with: "stop caveman" or "normal mode"
Intensity Levels
Sometimes full caveman too much. Sometimes not enough. Now you pick:
| Level | Trigger | What it do |
|---|---|---|
| Lite | /caveman lite or $caveman lite |
Drop filler, keep grammar. Professional but no fluff |
| Full | /caveman full or $caveman full |
Default caveman. Drop articles, fragments, full grunt |
| Ultra | /caveman ultra or $caveman ultra |
Maximum compression. Telegraphic. Abbreviate everything |
Level stick until you change it or session end.
文言文 (Wenyan) Mode
Caveman go ancient. Classical Chinese literary compression — same technical accuracy, but in the most token-efficient written language humans ever invented.
| Level | Trigger | What it do |
|---|---|---|
| Wenyan-Lite | /caveman wenyan-lite |
Semi-classical. Grammar intact, filler gone |
| Wenyan-Full | /caveman wenyan |
Full 文言文. Maximum classical terseness |
| Wenyan-Ultra | /caveman wenyan-ultra |
Extreme. Ancient scholar on a budget |
English: "Your component re-renders because you create a new object reference each render."
Caveman: "New object ref each render. Wrap in useMemo."
Wenyan: "物出新參照,致重繪。useMemo Wrap之。"
Same answer. Different era. Fewer token.
What Caveman Do
| Thing | Caveman Do? |
|---|---|
| English explanation | 🪨 Caveman smash filler words |
| Code blocks | ✍️ Write normal (caveman not stupid) |
| Technical terms | 🧠 Keep exact (polymorphism stay polymorphism) |
| Error messages | 📋 Quote exact |
| Git commits & PRs | ✍️ Write normal |
| Articles (a, an, the) | 💀 Gone |
| Pleasantries | 💀 "Sure I'd be happy to" is dead |
| Hedging | 💀 "It might be worth considering" extinct |
Caveman Skills
Caveman not just talk different. Caveman have tools:
caveman-commit
Terse commit messages. Conventional Commits format. Subject ≤50 chars. Body only when "why" not obvious.
❌ "feat: add a new endpoint to get user profile information from the database"
✅ feat(api): add GET /users/:id/profile
Trigger: /caveman-commit or just ask for a commit message.
caveman-review
One-line code review comments. Location, problem, fix. No throat-clearing.
❌ "I noticed that on line 42 you're not checking if the user object
is null before accessing the email property. This could potentially
cause a crash if the user is not found in the database."
✅ L42: 🔴 bug: user can be null after .find(). Add guard before .email.
Severity prefix tell you what matter:
🔴 bug:— broken, will cause incident🟡 risk:— works but fragile🔵 nit:— style, author can ignore❓ q:— genuine question
Trigger: /caveman-review or ask for a code review.
Evals
Caveman not just claim 75%. Caveman prove it.
The evals/ directory has a three-arm eval harness that measures real token compression against a proper control — not just "verbose vs skill" but "terse vs skill". Because comparing caveman to verbose Claude conflate the skill with generic terseness. That cheating. Caveman not cheat.
# Run the eval (needs claude CLI)
uv run python evals/llm_run.py
# Read results (no API key, runs offline)
uv run --with tiktoken python evals/measure.py
Snapshots committed to git. CI runs free. Every number change reviewable as diff. Add a skill, add a prompt — harness pick it up automatically.
Why
┌─────────────────────────────────────┐
│ TOKENS SAVED ████████ 75% │
│ TECHNICAL ACCURACY ████████ 100%│
│ SPEED INCREASE ████████ ~3x │
│ VIBES ████████ OOG │
└─────────────────────────────────────┘
- Faster response — less token to generate = speed go brrr
- Easier to read — no wall of text, just the answer
- Same accuracy — all technical info kept, only fluff removed (science say so)
- Save money — ~71% less output token = less cost
- Fun — every code review become comedy
How It Work
Caveman not dumb. Caveman efficient.
Normal LLM waste token on:
- "I'd be happy to help you with that" (8 wasted tokens)
- "The reason this is happening is because" (7 wasted tokens)
- "I would recommend that you consider" (7 wasted tokens)
- "Sure, let me take a look at that for you" (10 wasted tokens)
Caveman say what need saying. Then stop.
Caveman Compress
Caveman makes Claude speak with fewer tokens. Caveman Compress makes Claude read fewer tokens.
Your CLAUDE.md loads on every session start. A 1000-token project memory file costs you tokens every single time you open a project. Caveman Compress rewrites those files into caveman-speak so Claude reads less — without you losing the human-readable original.
/caveman:compress CLAUDE.md
CLAUDE.md ← compressed (Claude reads this every session — fewer tokens)
CLAUDE.original.md ← human-readable backup (you read and edit this)
How it works
A Python pipeline that shells out to claude --print for the actual compression, then validates the result locally — no tokens wasted on checking.
detect file type (local) → compress with Claude (1 call) → validate (local)
↓
if errors: targeted fix (1 call, cherry-pick only)
↓
retry up to 2×, restore original on failure
What's preserved exactly
Code blocks, inline code, URLs, file paths, commands, headings, table structure, dates, version numbers — anything technical passes through untouched. Only natural language prose gets compressed.
Compress benchmarks
| File | Original | Compressed | Saved |
|---|---|---|---|
claude-md-preferences.md |
706 | 285 | 59.6% |
project-notes.md |
1145 | 535 | 53.3% |
claude-md-project.md |
1122 | 687 | 38.8% |
todo-list.md |
627 | 388 | 38.1% |
mixed-with-code.md |
888 | 574 | 35.4% |
| Average | 898 | 494 | 45% |
Full-circle token savings
| Tool | What it cuts | Savings |
|---|---|---|
| caveman | Output tokens (Claude's responses) | ~65% |
| compress (/caveman:compress) | Input tokens (memory files loaded per session) | ~45% |
| Both together | The whole conversation | Output + input both shrunk |
Compress is built in with the caveman plugin — no separate install needed.
- Use
/cavemanfor caveman mode - Use
/caveman:compress <filepath>for memory-file compression
Security
caveman-compress is flagged as Snyk High Risk due to subprocess and file I/O patterns detected by static analysis. This is a false positive — see SECURITY.md for a full explanation of what the skill does and does not do.
See the full caveman-compress README for install, usage, and validation details.
Star This Repo
If caveman save you mass token, mass money — leave mass star. ⭐
Also by Julius Brussee
- Blueprint — specification-driven development for Claude Code. Natural language → blueprints → parallel builds → working software.
- Revu — local-first macOS study app with FSRS spaced repetition, decks, exams, and study guides. revu.cards
License
MIT — free like mass mammoth on open plain.
