Add .windsurf/skills/caveman SKILL.md and update the sync workflow to copy and commit the new file. Expand README install docs with agent-specific install instructions and standalone hook usage; update AGENTS.md and GEMINI.md to use the new caveman-compress path. Add Windows PowerShell installers (hooks/install.ps1 and hooks/uninstall.ps1) and enhance shell installers (hooks/install.sh, hooks/uninstall.sh) to support --force, plugin detection, clearer statusline wiring messages, and idempotent JSON merging/removal of hook entries. Provides uninstall guidance for other agents and improves overall install/uninstall robustness.
caveman
why use many token when few do trick
Before/After • Install • Levels • Skills • Benchmarks • Evals
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.
Pick your level of grunt:
🪶 Lite
|
🪨 Full
|
🔥 Ultra
|
📜 文言文
|
Same answer. You pick how many word.
┌─────────────────────────────────────┐
│ 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
Install
Pick your agent. One command. Done.
| Agent | Install |
|---|---|
| Claude Code | claude plugin marketplace add JuliusBrussee/caveman && claude plugin install caveman@caveman |
| Codex | Clone repo → /plugins → Search "Caveman" → Install |
| Gemini CLI | gemini extensions install https://github.com/JuliusBrussee/caveman |
| Cursor | npx skills add JuliusBrussee/caveman -a cursor |
| Windsurf | npx skills add JuliusBrussee/caveman -a windsurf |
| Copilot | npx skills add JuliusBrussee/caveman -a github-copilot |
| Cline | npx skills add JuliusBrussee/caveman -a cline |
| Any other | npx skills add JuliusBrussee/caveman |
Install once. Use in all sessions after that. One rock. That it.
What You Get
Not all install paths are equal. Claude Code plugin is the richest experience:
| Feature | Claude Code (plugin) | Codex | Gemini CLI | npx skills |
|---|---|---|---|---|
| Caveman mode | Y | Y | Y | Y |
| Auto-activate every session | Y | — | Y | — |
Statusline badge [CAVEMAN:ULTRA] |
Y | — | — | — |
Mode tracking (/caveman ultra) |
Y | — | — | — |
| caveman-commit | Y | Y | Y | Y |
| caveman-review | Y | Y | Y | Y |
| caveman-compress | Y | Y | Y | Y |
Claude Code — full details
The plugin install gives you everything: skills + auto-loading hooks + statusline badge.
claude plugin marketplace add JuliusBrussee/caveman
claude plugin install caveman@caveman
Standalone hooks (without plugin): If you prefer not to use the plugin system:
# macOS / Linux / WSL
bash <(curl -s https://raw.githubusercontent.com/JuliusBrussee/caveman/main/hooks/install.sh)
# Windows (PowerShell)
irm https://raw.githubusercontent.com/JuliusBrussee/caveman/main/hooks/install.ps1 | iex
Or from a local clone: bash hooks/install.sh / powershell -File hooks\install.ps1
Uninstall: bash hooks/uninstall.sh or powershell -File hooks\uninstall.ps1
Statusline badge: The plugin ships a statusline script that shows [CAVEMAN], [CAVEMAN:ULTRA], etc. in your Claude Code status bar.
- Plugin install: Claude offers to configure it on first session (auto-detected)
- Standalone install: Configured automatically by
install.sh/install.ps1 - Custom statusline: See
hooks/README.mdfor the snippet to add to your existing script
Codex — full details
macOS / Linux:
- Clone repo → Open Codex in the repo directory →
/plugins→ Search "Caveman" → Install
Windows:
- Enable symlinks first:
git config --global core.symlinks true(requires Developer Mode or admin) - Clone repo → Open VS Code → Codex Settings → Plugins → find "Caveman" under local marketplace → Install → Reload Window
Gemini CLI — full details
gemini extensions install https://github.com/JuliusBrussee/caveman
Update: gemini extensions update caveman · Uninstall: gemini extensions uninstall caveman
Gemini loads the skill via GEMINI.md + gemini-extension.json. Auto-activates every session through the context file.
Cursor / Windsurf / Cline / Copilot / others
All use npx skills (supports 40+ agents):
npx skills add JuliusBrussee/caveman -a cursor
npx skills add JuliusBrussee/caveman -a windsurf
npx skills add JuliusBrussee/caveman -a cline
npx skills add JuliusBrussee/caveman -a github-copilot
npx skills add JuliusBrussee/caveman # auto-detect agent
Uninstall: npx skills remove caveman
Note:
npx skillsinstalls skills only (no hooks or auto-activation). You'll trigger caveman manually with/cavemanor "talk like caveman" each session.
Windows note:
npx skillsuses symlinks by default. If symlinks fail, add--copy:npx skills add JuliusBrussee/caveman --copy
Usage
Trigger with:
/cavemanor Codex$caveman- "talk like caveman"
- "caveman mode"
- "less tokens please"
Stop with: "stop caveman" or "normal mode"
Intensity Levels
| Level | Trigger | What it do |
|---|---|---|
| Lite | /caveman lite |
Drop filler, keep grammar. Professional but no fluff |
| Full | /caveman full |
Default caveman. Drop articles, fragments, full grunt |
| Ultra | /caveman ultra |
Maximum compression. Telegraphic. Abbreviate everything |
文言文 (Wenyan) Mode
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 |
Level stick until you change it or session end.
Caveman Skills
| Skill | What it do | Trigger |
|---|---|---|
| caveman-commit | Terse commit messages. Conventional Commits. ≤50 char subject. Why over what. | /caveman-commit |
| caveman-review | One-line PR comments: L42: 🔴 bug: user null. Add guard. No throat-clearing. |
/caveman-review |
caveman-compress
Caveman make Claude speak with fewer tokens. Compress make Claude read fewer tokens.
Your CLAUDE.md loads on every session start. Caveman Compress rewrites memory 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)
| 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% |
Code blocks, URLs, file paths, commands, headings, dates, version numbers — anything technical passes through untouched. Only prose gets compressed. See the full caveman-compress README for details. Security note: Snyk flags this as High Risk due to subprocess/file patterns — it's a false positive.
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.
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.
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.
Star This Repo
If caveman save you mass token, mass money — leave mass star. ⭐
Also by Julius Brussee
- Cavekit — specification-driven development for Claude Code. Caveman language → specs → 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.
