caveman README

The project's README from github.com/JuliusBrussee/caveman. As one markdown file: README.md.

Caveman

why many token when few do trick

Caveman make your AI agent say less and read less. Code stay exact. Brain still big.

GitHub stars npm downloads 30+ agents License

33.2% fewer

input tokens, whole sessions
54 Claude Code runs, 18 of 18 answers right

54% cheaper

with Auto, same score
85 coding tasks vs Opus 5.5 at xhigh, interim

397 → 76

tokens for one test run
Blocks vs | tail -20

1.4 to 2.4× cheaper

with caveman-style output
Adobe Research, eight models

Cited by Adobe Research · A/B tested by JetBrains · Remade for Elasticsearch on Elasticsearch Labs
#1 on Hacker News · #1 on GitHub Trending · "No way this actually works." ThePrimeagen

Install · Six rocks · Proof · Say less · Read less · Auto · Blocks · Commands · Caveman Cloud


Normal agent · 63 tokens Caveman agent · 20 tokens

The reason your React component is re-rendering is likely because you're creating a new object reference on each render cycle. When you pass an inline object as a prop, React's shallow comparison sees it as a different object every time, which triggers a re-render. I'd recommend using useMemo to memoize the object.

New object ref each render, so React re-renders. Wrap the prop in useMemo.

Same fix. 63 token become 20. Brain still big.

Pick your club:

Skill Same answer Tokens
/caveman New object ref each render, so React re-renders. Wrap the prop in useMemo. 20
/ultracave Inline object prop, new ref, re-render. useMemo. 14
/megacave 新參照致重繪。useMemo。 13

Token counts: tiktoken o200k.

Install

npx @caveman-ai/cli@latest

One command. Mac, Linux, Windows. Caveman find your agents and your logins, show what it change. Press Enter. Done. Needs Node.js 22.13+.

After that, plain claude stays caveman'd. So do Codex, Gemini CLI, OpenCode, and 30+ more. It runs on your machine, with your keys and your Claude Pro/Max login. One rock. That it.

Had caveman before 4.0? Say @latest, or the old copy on your machine wins. Already set up? caveman setup opens the screen again. Only want shorter answers? Get just the skill.

Six rocks, one install

New in 4.0: caveman is six parts. All on after install. Each has its own switch.

Rock What it does Measured
Say less Agent answers short. Code stays exact 63 → 20 tokens, same fix
Read less Logs, JSON, CSV, test output shrink before the model reads them 33.2% fewer input tokens per session
Auto · new Picks the model and the effort for each ask 54% cheaper than Opus at xhigh, same score
Blocks · new Code mode: agent keeps the scripts it writes and runs them again 397 → 76 tokens for one test run
Waste fixes Finds where your tokens go and fixes it. New: keeps the prompt cache warm while you pause Not measured yet
Browse Web pages come back compressed 129.8× smaller page

caveman status shows what is on. caveman off browse turns one off. Only Auto needs an account, and it is free. 4.0.0 release notes

Proof

Outside labs first. Ours come with each rock below. Nothing rounded up. Red rows stay red.

Who Setup Result
Adobe Research, CAVEWOMAN paper (cites this repo) Caveman-style output, eight models, five datasets Cost cut 1.4 to 2.4× per model, up to 3×
Elastic, Elasticsearch Labs Caveman mode remade for Elasticsearch, eight live MCP scenarios 63.6% fewer response tokens. "Zero information loss."
JetBrains 86 real coding tasks, paired A/B No measurable quality loss (p = 0.82). 8.5% fewer output tokens

Two findings shaped caveman. Adobe: cavemanning your prompt makes answers worse, so caveman never touches your prompt. JetBrains: agent sessions are mostly code and tool calls, which the voice leaves alone. So caveman grew rocks that shrink what the agent reads and what it runs on.

Say less: the caveman voice

A voice, not broken grammar. Every reply follows the same structure.

Rule What it means
Answer first [thing] [action] [reason]. [next step]. No greeting, no "let me", no recap
One idea per sentence Built on ASD-STE100, the controlled English of aircraft maintenance manuals: 20 words max, active voice, one term per thing
Meaning never dropped Articles can go. not, never, no, only never go. Numbers and units stay exact
Payload verbatim Code, commands, paths, and error messages untouched, character for character
No theater No "me think". No chatter between tool calls. If caveman phrasing isn't shorter, plain wins
Knows when to stop Security warnings, irreversible actions, and confused users get full sentences. Then grunt resumes
Your prompts stay yours Never rewritten. Research say that backfire

Ten dev questions on claude-opus-5-5:

Instruction Output tokens
None 6,983
Answer concisely. 4,334
/caveman 4,119
/ultracave 2,693

"Be concise" is the real baseline; new models already know it. On top of it, /caveman cuts 3% more at the median and /ultracave 35% more. Measured on the 3.1.0 rules, not yet re-run. The rules cost about 1,160 tokens of input, and if you pay per request (GitHub Copilot), shorter answers save nothing. Harness · Every case where caveman loses

Only want this rock? The skill alone, no proxy:

npx skills add JuliusBrussee/caveman -g

skills.sh

Type /caveman ($caveman in Codex) if it doesn't start on its own. Say stop caveman to go back.

Other ways in: Claude app and phone, Claude Code plugin, Gemini, every agent at once, Windows, uninstall

Claude on the web, the phone app, or Cowork? No terminal. Add caveman to your Claude account once, in Customize > Plugins: steps. Not tested end to end yet.

# Claude Code plugin, auto-starts every interactive session, subagents too
claude plugin marketplace add JuliusBrussee/caveman && claude plugin install caveman@caveman

# Gemini CLI
gemini extensions install https://github.com/JuliusBrussee/caveman

# Every agent on your machine at once, plus the Claude Code statusline badge (Node.js 22.13+)
curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/v4.0.1/install.sh | bash

Already inside Claude Code? Same rock, slash form. Type these where you talk to Claude:

/plugin marketplace add JuliusBrussee/caveman
/plugin install caveman@caveman

Windows, PowerShell 5.1+:

irm https://raw.githubusercontent.com/JuliusBrussee/caveman/v4.0.1/install.ps1 | iex

On npm 12 or newer, new npm block git install. One-liners above handle it themselves from v3.2.0 on. Old one-liner pinned to v3.1.0 or older still fail there: use one above, or this: npx --allow-git=root -y github:JuliusBrussee/caveman#v4.0.1

Changed your mind: npx -y github:JuliusBrussee/caveman -- --uninstall (on npm 12+, add --allow-git=root too)

Only grabbed the skill? npx skills remove JuliusBrussee/caveman -g take it back out.

Install broke? Open your agent in this repo and say "Read CLAUDE.md and INSTALL.md, install caveman for me." Agent fix own brain.

Read less: 33.2% fewer input tokens

The voice shrinks what the agent says. This shrinks what it reads. Same answers: 18 of 18 right.

File type The file, through caveman File saved Whole Claude Code session, 3 runs Session saved
CSV 28,041 → 314 98.9% 165,823 → 74,484 55.1%
Logs 22,810 → 348 98.5% 148,807 → 74,068 50.2%
YAML 20,447 → 178 99.1% 132,124 → 71,027 46.2%
Test output 18,806 → 203 98.9% 150,377 → 108,514 27.8%
JSON 18,837 → 281 98.5% 147,975 → 108,939 26.4%
HTML 21,670 → 21,670 none yet 140,687 → 154,641 9.9% worse
All six 130,611 → 22,994 82.4% 885,793 → 591,673 33.2%

The file is each test file through today's compressor alone. The session is the whole agent run, which also carries the system prompt and tools, so it moves less. Honest part: the session run is from August 2026 on an older engine, HTML has no compressor yet so it lost, and each test file hides one record in 61 to 72 KB of noise. Yours will vary. Headroom on the same suite: 15 of 18 right, 6.7% fewer tokens. Method

Every original stays on your disk. The agent can pull it back any time.

Auto: 54% cheaper, same score

New model in your agent's picker. Pick Auto and caveman chooses the model and the effort for each ask. Hard ask, big brain. Easy ask, save rocks.

Setup Tasks solved Cost per try Median time
Opus 5.5, xhigh effort, every ask 44.3% $7.83 35.2 min
Auto, Claude models only 43.7% $3.59 15.9 min
Auto, plus OpenAI and open models 42.9% $3.47 16.7 min

Auto costs 0.46× what Opus 5.5 at xhigh costs. That is 54% saved, in under half the time. 85 real coding tasks from SWE-Interact and SWE-Together, one try each. Honest part: the run is half done, the 0.5-point score gap is too small to tell apart at this size (±7), and most of the saving is Auto lowering effort on easy asks. Already on Opus at medium? Expect less; not measured yet. Full table and limits

caveman login                  # free account. Auto shows up in the model picker
caveman providers add openai   # optional: give Auto more models, on your own key

Works in Claude Code, OpenCode, and Codex on a ChatGPT login, with API keys, Claude Pro/Max, or ChatGPT. Any other model you pick runs as picked. Not signed in: no Auto, nothing sent. What Auto sends

Blocks: code mode, script written once

skills.sh for code mode. Code mode is the agent writing a script instead of making tool call after tool call (Cloudflare, Anthropic). Problem: agent write same script every session, throw it away, write it again. Blocks keep it in your repo, check it every pull request, hand it back.

Input Raw What agents type now Block
go test -v ./..., 326 tests 10,561 397 · | tail -20 76 · test-summary
1.4 MB JSON file 251,893 236 · their own heredoc 227 · json-peek
366-line Go file 3,111 250 · grep -n 489 · grep-defs

Tokens the agent reads back. In one week, agents on one machine wrote the same script 394 times. Purdue measured the habit at up to 9.57% of task cost. grep-defs loses to a bare grep; row stays. Method

Comes with caveman. Eight blocks ready: json-peek · jsonl-stats · test-summary · first-error · wait-for · grep-defs · http-json · replace-in-file. When the agent starts typing a script a block already covers, it gets one line: use the block. Never denies or rewrites a command.

caveman-blocks scan    # what your agents retyped this month. Script text never leaves your machine
caveman-blocks init    # rules and block index into this repo's AGENTS.md

Pre-release (v0.1.0-rc.5). Python only, no sandbox yet. Own repo, own stars: caveman-ai/blocks

Smaller rocks

Rock What it does Measured
caveman learn Ranks where your tokens go, from agent history already on disk. caveman learn implement applies fixes one diff at a time, only on your yes Not yet
Warm cache · new Step away and the provider forgets your session, so the next ask pays full price. Caveman keeps Anthropic's prompt cache warm while you pause, only when your own history says you come back in time. Every warm is listed in caveman stats Not yet
caveman browse <url> A compressed web page for the agent 121 tokens instead of 15,704 for a Playwright snapshot of a 200-row table. Tiny forms lose 2.3×. Bench
/caveman-compress <file> Shrinks memory files like CLAUDE.md, keeps a backup 4,138 tokens instead of 6,198 across five files, 22.8% to 49.1% each, every heading, code block, and path intact. Bench
Middleware Same shrinking inside the Vercel AI SDK, LangChain, OpenAI, or Anthropic call you already make. TypeScript · Python · Every framework · One container for the team Not yet

Caveman Learn report: a summary and savings cards on the left; the biggest places tokens go, with one fix opened, and a chart of how full sessions get on the right

Commands

In your terminal:

caveman claude                # start an agent on caveman: codex · gemini · opencode · aider · kilo · qwen · hermes · openclaw · pi
caveman status                # what is on, which agents it reaches, one next step
caveman on browse             # switch one rock on or off: output · input · waste-fixes · routing · scripts · browse
caveman login                 # free account, turns on Auto
caveman learn                 # where your tokens go
caveman trial -- claude       # A/B a real session on your own work
caveman shrink -- pnpm test   # compress noisy command output
caveman convert --dry-run     # pixel mode: skills the model reads as images
caveman stats                 # your token history
caveman doctor                # one problem per line, with its fix

In your agent:

Command What it does
/caveman · /ultracave · /megacave The voice, the grunt, the 文言文. /caveman status shows the mode, /caveman off stops it
/caveman-commit One-line Conventional Commit
/caveman-review One finding per line: L42: 🔴 null deref. Guard it.
/caveman-compress <file> Shrinks memory files and backs up the original
/caveman-stats Real token usage for this Claude Code session
/caveman-help Every mode and command on one screen
cavecrew Subagents that find, edit, and review code, then report back in caveman
investigate-first · lean-build · surgical-patch · safe-refactor · migration · verify-and-stop Work patterns that write less code. Your agent picks them up when a task fits
caveman-setup · caveman-discover · caveman-learn · caveman-manage · caveman-optimize · caveman-explore · caveman-evidence-review Drive the proxy from inside your agent

Caveman Cloud

Everything above is for the coding agent you use. Caveman Cloud is for the agents you build.

You ship an agent. Every run costs money. Is it good? Is it cheap? Which change made it worse? Cloud answers.

Cloud does What you get
Observability Every run traced to the work and what it cost. Sets itself up from your repo, your keys, and the logs or OpenTelemetry you already have
Evals Grades how good the answers are, on your own tasks, from your real traffic
Autopilot Proposes a cheaper change, tests it on your recorded work, ships only when the evals say answers are still as good. You approve the pull request
Proof Every number says if it is measured, inferred, or verified. A saving counts only after real traffic shows it

Sign up free  ·  Try the demo  ·  Book a call  ·  Docs

In the wild

ThePrimeagen reacts to Caveman: No way this actually works

ThePrimeagen: "No way this actually works." Watch

Adobe Research: CAVEWOMAN, arXiv, June 2026

JetBrains: "It is fun, and it costs you nothing measurable in quality." Read

Elastic: elastic-caveman on Elasticsearch Labs, April 2026

Hacker News: #1, 904 points

GitHub Trending #1 overall, July 2026 · Trendshift #1 repo of the day, April 2026 · Product Hunt #8 of the day

Started as a joke in April 2026. Now past 100,000 stars. Joke got serious. Voice did not.


Star History Chart

Privacy

The full list, and how to delete sent telemetry: SECURITY.md.

License

Apache-2.0, whole repo. Read it, fork it, ship it, host it. Free like mammoth on open plain. Older releases and third-party notices: LICENSING.md. "Caveman" and the rock logo are trademarks of Julius Brussee.

Cite

@software{brussee2026caveman,
  author = {Brussee, Julius},
  title  = {Caveman: why many token when few do trick},
  year   = {2026},
  url    = {https://github.com/JuliusBrussee/caveman}
}

🪨 Caveman save you token. Star cost zero. Fair trade.

Docs · Install matrix · Honest numbers · Contributing · Caveman Cloud · Issues

caveman (JuliusBrussee/caveman)

docker
Searching Database…

113.1K ·GitHub
What is this?Caveman is a skill plus an optional local proxy for AI coding agents that makes them answer in short, caveman-style prose instead of padded explanations, cutting roughly 65% of output tokens and up to 33% of input tokens in the project's own benchmarks without changing the technical content of the answer.
Is this one tool or two separate pieces?It ships as two components: a free MIT skill (a rule file that makes any agent answer tersely) and a separate local proxy that sits between your agent and the AI provider to shrink logs, diffs, and code before they're sent. You can use the skill alone or stack both.
Which coding agents does Caveman actually work with?The skill works in 30+ agents including Claude Code, Codex, Gemini CLI, Cursor, Windsurf, Cline, and Copilot. The proxy specifically wraps Claude Code, OpenAI Codex CLI, Gemini CLI, Aider, Kilo Code, Qwen Code, opencode, Hermes Agent, OpenClaw, and Pi, and the full installer requires Node.js 22.13+.
Does the 65% token savings mean my whole bill drops that much?No. The skill only shortens what the agent writes; input and reasoning tokens stay the same, and the skill's own rules add about 1 to 1.5k input tokens per turn, so whole-session savings land lower and can even go negative on already-terse tasks.
Does the proxy send my code or conversations anywhere else?No. The proxy runs locally between your agent and your provider with no Caveman server in the middle, and your Claude Pro/Max login passes straight through to Anthropic untouched; compressed originals are kept in a local SQLite file you can always recover.
Does Caveman ever touch my actual code?No — code, commands, file paths, and exact error messages are never rewritten by the skill; only the surrounding prose explanations get shortened.
What does the pixel mode / caveman convert feature do?It renders a skill's prompt text to PNG pages so the model reads it as an image instead of raw text, cutting the caveman skill's own token cost from about 1,069 to 415 tokens (a 61% reduction); it only kicks in when images actually beat plain text.
How does caveman learn find where my tokens are going?It reads your agent's local session history read-only, with no account needed, and ranks your biggest token sinks worst-first with a one-line fix for each; caveman implement can then apply fixes and revert anything that doesn't actually lower tokens per turn.
Size
20.3 MB
Stars
113.1K
Age
6mo
Commits · 90 Days