JuliusBrussee / caveman
git clone https://github.com/JuliusBrussee/caveman.git
v4.0.1 · 7d ago
🔥 on GitHub Trending today
🪨 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.
—
stars, 24h
+2.6k
stars, 7 days · #33
—
stars, 30 days
114k
★ total · +2% this week
6.6k
forks · 69 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageGo
LicenseApache-2.0
Created2026-04-04 (6mo ago)
Last push1d ago
Watchers258
OwnerUser
Seen on GitHub Trending
- 2026-10-20 — #3 weekly in go · +2,606 ★
GitHub topics
Links
- GitHub: github.com/JuliusBrussee/caveman
- Homepage: https://docs.caveman.so/caveman
- Releases · Issues · Hacker News mentions
README excerpt
# 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% 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 [code] 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