ck
Frozen โ compressed spec-driven development plugin for Claude Code. Still works; active development moved to JuliusBrussee/caveman.
Your AI coding agent bills by the word and writes like it knows that. Caveman make it stop.
> /plugin marketplace add JuliusBrussee/caveman> /plugin install caveman@caveman
Repo: JuliusBrussee/caveman
What's inside
Your AI coding agent bills by the word and writes like it knows that. Caveman make it stop.
โถ๏ธ ThePrimeagen reacts: "No way this actually works"
๐ #1 on GitHub Trending ยท July 2026 ย ยทย ๐ฅ #1 Repository of the Day on Trendshift ยท April 2026
#1 on Hacker News ยท 904 points ยท 366 comments ย ยทย #8 Product of the Day on Product Hunt
๐ Cited in CAVEWOMAN, an Adobe Research paper that measured caveman-style output cutting cost 1.4 to 2.4ร, up to 3ร ย ยทย ๐งช Tested by JetBrains on 86 real coding tasks: "costs you nothing measurable in quality"
โก One command, no account, no API key. npx skills add JuliusBrussee/caveman -g โ Quick Start
See it ยท Quick Start ยท The Numbers ยท In the Wild ยท The Skill ยท The Proxy ยท Wrap ยท When to Skip ยท Docs
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. Inline object prop = new ref = re-render. Wrap in
useMemo.
Same diagnosis. Same fix. Same useMemo. The only thing that died was the throat-clearing.
Code, commands, file paths, and exact error messages never get cavemanned. Only the prose around them does. Security warnings and "are you sure?" confirmations come back in full sentences on their own, then caveman resumes.
Caveman no make brain smaller. Caveman make mouth smaller.
Half the fun is that your agent talks like it just discovered fire. The other half is that it is still right.
A token is what AI billing counts, roughly three quarters of a word. Your agent pays for every token it writes and every token it reads. Most agents write like a cover letter and read like a firehose.
Caveman attacks both ends:
Started as a joke on a Friday in April 2026. Hit 4,000 stars in a week. Now past 100,000, with a research paper, a JetBrains lab test, and a Primeagen reaction video. The joke got serious. The voice did not.
Caveman come in two sizes. Start small.
A rule file that makes your agent answer in caveman. MIT, free forever, works in 30+ agents (Claude Code, Codex, Gemini, Cursor, Windsurf, Cline, Copilot, more). One command:
npx skills add JuliusBrussee/caveman -g
Type /caveman if your agent doesn't wake up on its own. That the whole install. One rock.
Runs on your machine, between your agent and the AI provider, and shrinks what the agent reads before every call. MIT CLI, BSL-1.1 runtime:
npm install -g @caveman-ai/cli && caveman setup --install
caveman claude # or codex ยท gemini ยท aider ยท kilo ยท qwen ยท opencode ยท hermes ยท openclaw ยท pi
They stack. Most people start with the small rock and graduate.
The full installer wires up Claude Code hooks and the statusline badge, finds every supported agent on your machine, and skips agents you no have. Safe to re-run. Needs Node.js 22.13+.
curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/v2.7.0/install.sh | bash
Windows, PowerShell 5.1+:
irm https://raw.githubusercontent.com/JuliusBrussee/caveman/v2.7.0/install.ps1 | iex
Just one agent:
# Claude Code
claude plugin marketplace add JuliusBrussee/caveman && claude plugin install caveman@caveman
# Gemini CLI
gemini extensions install https://github.com/JuliusBrussee/caveman
# Qwen Code CLI, then its Caveman wrapper
npm i -g @qwen-code/qwen-code
caveman qwen
# Codex, Cursor, Windsurf, Cline, and other skills-compatible agents
npx skills add JuliusBrussee/caveman --skill '*' -a codex --yes -g # replace codex with your agent profile
Install broke? Open your agent in this repo and say: "Read CLAUDE.md and INSTALL.md, install caveman for me." Agent read repo, agent fix own brain. Snake eat tail.
Changed your mind: npx -y github:JuliusBrussee/caveman -- --uninstall
The full 30+ agent matrix, dry runs, flags, and verification live in INSTALL.md.
Small rock. The skill, right after npx skills add:
/caveman lite for tight-but-polite. /caveman ultra for grunts. /caveman wenyan for classical Chinese, because someone asked./caveman-commit writes a Conventional Commit in one line./caveman-review gives one finding per line: L42: ๐ด null deref. Guard it./caveman-compress CLAUDE.md cuts the prose, keeps every heading, path, and command, and backs up the original.stop caveman. Normal prose returns. No hard feelings.Big rock. The proxy, right after npm install -g @caveman-ai/cli:
caveman learn reads months of agent history already on your disk, locally, and ranks your token sinks worst-first with a one-line fix behind each. Do this before anything else. It is the most useful five minutes in this README.caveman learn implement hands each fix to Claude Code or Codex one diff at a time, applied only on your yes, and reverts anything that did not lower tokens per turn.caveman claude (or codex, gemini, aider, opencode, pi, โฆ) puts the proxy in front of it. Logs, test output, JSON, and diffs get shrunk before the provider sees them. Originals stay on disk, and the agent can pull any of them back.caveman shrink -- pnpm test compresses command output. caveman browse <url> gives the agent a compressed view of a web page instead of a 15,000-token accessibility dump.caveman trial -- claude runs a real session with and without caveman, then caveman trial report shows the difference. That A/B outranks every number on this page. A trial needs its own proxy, so if you already did step 3 it will tell you to run caveman disable claude first, and caveman enable claude after. Caveman rather say "cannot measure this" than hand you a report full of zeros.caveman convert --dry-run shows which installed skills get cheaper as PNG pages the model reads as an image. Convert the profitable ones, revert byte-for-byte any time.caveman stats for history and estimates. /caveman-stats inside Claude Code for that session.Every number below is either from a committed run in this repo or from a named third party. Nothing rounded up. Where a number is small, it says so. Where a row is red, it stays red.
| Who measured | What they measured | Result |
|---|---|---|
| Adobe Research (CAVEWOMAN, arXiv 2606.24083) | Eight models, five datasets, five compression levels | Output-side caveman style cuts realized cost 1.4 to 2.4ร per model, up to 3ร in the best case |
| JetBrains | 86 real coding tasks, paired A/B, Claude Code 2.1.200. Skill only, no proxy (July 2026, before the proxy existed) | 8.5% fewer output tokens, about 10% cost. No detectable quality change (sign test p = 0.82) |
| This repo (committed eval snapshot) | Ten dev questions, skill vs a plain Answer concisely. control, claude-opus-4-6 | 50% fewer output tokens at the median on top of the terse control. Length only, not correctness |
Read those three together and you get the honest picture. Chat-style Q&A: big cut. Agentic coding sessions, where most tokens are code and tool calls that the skill never touches: high single digits on output, quality flat.
The JetBrains number is why the proxy exists. They measured the skill alone, in July 2026, before the proxy shipped. Their finding was that an agent's bill is mostly reading, not writing, and no talking style fixes that. So we built the thing that shrinks the reading. The table below is what that changed.
The Adobe paper's other finding matters too: compressing the human's prompt into caveman-speak makes models answer longer and worse. Caveman never rewrites your prompts. Only the agent's mouth.
Frozen โ compressed spec-driven development plugin for Claude Code. Still works; active development moved to JuliusBrussee/caveman.
FAQ
caveman is a Claude Code plugin with 20 hand-picked skills for development work, indexed on Flowy. Install it with the command on its page. It includes cavecrew, caveman-compress, caveman-stats. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it