🪨 why use many token when few token do trick. Viral skill + proxy for coding agents that cuts 65% of tokens by talking like a caveman.

★ 118,752⑂ 6,908👁 255⑃ 796● 629▤ 56◈ 59
GoApache-2.0Created 2026-04-04docs.caveman.so/caveman
118,752
stars
+273+1,856+8,778
6,908
forks
255
watchers
796
prs
629
issues
56
releases
59
discussions

README

why many token when few do trick

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








33.2% fewerinput tokens, whole sessions54 Claude Code runs, 18 of 18 answers right
54% cheaperwith Auto, same score85 coding tasks vs Opus 5.5 at xhigh, interim
397 → 76tokens for one test runBlocks vs | tail -20
1.4 to 2.4× cheaperwith caveman-style outputAdobe 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

bash
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 wi

Top issues

Discussions

Latest release

Caveman 4.1.0 v4.1.0 2026-11-08
Caveman 4.1.0 is a maintenance release: bug fixes across compress, OpenCode, Hermes, Pi, the proxy and the hooks, a recovery store that no longer fills up and stops compressing, and a few small switches people asked for. caveman-compress now refuses a file with a key or token in it, and installs from skill hubs again.

 Action needed

- forward_headers under a providers. block now stops the proxy from starting. Before, it was silently ignored: no headers were forwarded and the only symptom was an upstream 401. Configure that upstream as a compat mount instead: compat. with base_url and forward

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON