Repository iconcurepo.dev
caveman preview

JuliusBrussee / caveman

coding-agentstoken-efficiencyprompt-engineeringdeveloper-tools

A compact coding-agent skill and proxy focused on reducing token use through shorter, intentionally constrained agent communication.

113.6k Stars
visibility259 Watchers
fork_right6.6k Forks
Go
historyUpdated recently

description 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:

SkillSame answerTokens
/cavemanNew object ref each render, so React re-renders. Wrap the prop in useMemo.20
/ultracaveInline 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.

RockWhat it doesMeasured
Say lessAgent answers short. Code stays exact63 → 20 tokens, same fix
Read lessLogs, JSON, CSV, test output shrink before the model reads them33.2% fewer input tokens per session
Auto · newPicks the model and the effort for each ask54% cheaper than Opus at xhigh, same score
Blocks · newCode mode: agent keeps the scripts it writes and runs them again397 → 76 tokens for one test run
Waste fixesFinds where your tokens go and fixes it. New: keeps the prompt cache warm while you pauseNot measured yet
BrowseWeb pages come back compressed129.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.

WhoSetupResult
Adobe Research, CAVEWOMAN paper (cites this repo)Caveman-style output, eight models, five datasetsCost cut 1.4 to 2.4× per model, up to 3×
Elastic, Elasticsearch LabsCaveman mode remade for Elasticsearch, eight live MCP scenarios63.6% fewer response tokens. "Zero information loss."
JetBrains86 real coding tasks, paired A/BNo 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.

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

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

InstructionOutput tokens
None6,983
Answer concisely.4,334
/caveman4,119
/ultracave2,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