🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman
Caveman is a Claude Code skill that instructs Claude and over 30 other AI coding agents to respond in compressed, telegraphic prose, stripping filler language while preserving technical accuracy. It installs via a single shell or PowerShell command and activates through a `/caveman` trigger, with four verbosity levels: `lite` (drops filler), `full` (default caveman speech), `ultra` (telegraphic), and `wenyan` (classical Chinese). Benchmarks against the Claude API show an average 65% reduction in output tokens across ten prompts, with individual tasks like explaining a React re-render bug hitting 87% reduction. Beyond compression, the skill includes `/caveman-commit` for Conventional Commit messages under 50 characters, `/caveman-review` for inline PR comments, `/caveman-compress` to rewrite context files like CLAUDE.md into caveman-speak (cutting roughly 46% of input tokens per session), and `caveman-shrink`, an MCP middleware that wraps any MCP server and compresses tool descriptions. Developers and teams paying per-token API costs are the primary beneficiaries, particularly those running long Claude Code sessions where output verbosity compounds expenses.
Claude Code skill that compresses outputs and prompts by speaking 'caveman' to reduce tokens 65-75%.
- ✓Actively maintained (<30d)
- ✓Healthy fork ratio
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
- !Licence file present but not machine-readable
- !Install pipes a remote script into a shell (curl | sh)
git clone https://github.com/JuliusBrussee/cavemanResumen de Tools
<p align="center"> <img src="docs/assets/caveman-logo-banner.png" alt="Caveman" width="720"> </p> <p align="center"> <strong>why use many token when few do trick</strong> </p> <p align="center"> Your AI coding agent bills by the word and writes like it knows that.<br> Caveman make it stop. Brain still big. Mouth small. Bill small. </p> <p align="center"> <a href="https://www.producthunt.com/products/caveman?embed=true&utm_source=badge-featured&utm_medium=badge&utm_campaign=badge-caveman-2" target="_blank" rel="noopener noreferrer"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=1220849&theme=light&t=1786634691828" alt="Caveman - why use many token when few do trick | Product Hunt" width="250" height="54"/></a> <a href="https://trendshift.io/repositories/25391?utm_source=repository-badge&utm_medium=badge&utm_campaign=badge-repository-25391" target="_blank" rel="noopener noreferrer"><img src="https://trendshift.io/api/badge/repositories/25391" alt="JuliusBrussee%2Fcaveman | Trendshift" width="250" height="55"/></a> </p> <p align="center"> <a href="https://github.com/JuliusBrussee/caveman/stargazers"><img src="https://img.shields.io/github/stars/JuliusBrussee/caveman?style=flat&color=yellow" alt="Stars"></a> <a href="./INSTALL.md"><img src="https://img.shields.io/badge/skill_works_with-30%2B_agents-orange?style=flat" alt="30+ agents"></a> <a href="#wrap-any-agent"><img src="https://img.shields.io/badge/wrap-10_native_agents-blue?style=flat" alt="10 native wrap profiles"></a> <a href="#license"><img src="https://img.shields.io/badge/license-MIT_%2B_BSL-green?style=flat" alt="License"></a> <a href="https://skills.sh/JuliusBrussee/caveman"><img src="https://skills.sh/b/JuliusBrussee/caveman"></a> </p> <p align="center"> <a href="#see-it">See it</a> · <a href="#install">Install</a> · <a href="#the-numbers">Numbers</a> · <a href="#the-skill-unpacked">Skill</a> · <a href="#the-proxy-unpacked">Proxy</a> · <a href="#wrap-any-agent">Wrap</a> · <a href="./docs/README.md">Docs</a> · <a href="#privacy-and-a-small-favor">Privacy</a> · <a href="#license">License</a> </p> --- ## See it <table> <tr> <th width="50%">🗣️ Normal agent · 69 tokens</th> <th width="50%"><img src="docs/assets/dancing-rock.svg" width="18" height="18" alt=""> Caveman agent · 19 tokens</th> </tr> <tr> <td valign="top"> > 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. </td> <td valign="top"> > New object ref each render. Inline object prop = new ref = re-render. Wrap in `useMemo`. </td> </tr> </table> 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. ``` ┌──────────────────────────────────────────────────┐ │ output tokens saved (skill) ██████░░░ 65% │ │ input tokens saved (proxy) ███░░░░░░ 33% │ │ code changed ░░░░░░░░░ 0% │ │ vibes █████████ OOG │ └──────────────────────────────────────────────────┘ ``` Caveman no make brain smaller. Caveman make *mouth* smaller. ## Install Caveman come in two sizes. **Small rock: the skill.** A rule file that makes your agent answer in caveman. MIT, free forever, works in [30+ agents](./INSTALL.md) (Claude Code, Codex, Gemini, Cursor, Windsurf, Cline, Copilot, more). One command: ```bash npx skills add JuliusBrussee/caveman ``` Type `/caveman` if your agent doesn't wake up on its own. That the whole install. One rock. **Big rock: the proxy.** Runs on your machine, between your agent and the AI provider, and shrinks what the agent *reads* before every call. Everything it squeezes gets a backup on your disk, so the agent can always pull the original back. MIT CLI, BSL-1.1 runtime: ```bash 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. <details> <summary><strong>More doors into the cave</strong> · full installer, Windows, single agents, uninstall</summary> <br> 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+. ```bash curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/v2.6.0/install.sh | bash ``` Windows, PowerShell 5.1+: ```powershell irm https://raw.githubusercontent.com/JuliusBrussee/caveman/v2.6.0/install.ps1 | iex ``` Just one agent: ```bash # 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 # 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` </details> The full 30+ agent matrix, dry runs, flags, and verification live in [INSTALL.md](./INSTALL.md). ## The numbers 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. Reading is usually the bigger bill. The skill cuts the writing. The proxy cuts the reading. ### Skill: writing less Ten ordinary coding prompts through the real Claude API, with the skill and without. Same model, same questions. Output tokens per reply: | Task | Normal | Caveman | Saved | | ---------------------------------- | -------: | ------: | ------: | | Implement React error boundary | 3454 | 456 | 87% | | Set up PostgreSQL connection pool | 2347 | 380 | 84% | | Explain git rebase vs merge | 702 | 292 | 58% | | Refactor callback to async/await | 387 | 301 | 22% | | **Average across all ten prompts** | **1214** | **294** | **65%** | Best row and worst row both up there on purpose. Caveman wins big when the agent would have written an essay, and barely at all when the answer was already mostly code. <details> <summary><strong>All ten prompts</strong> · regenerate with <code>uv run python benchmarks/run.py</code></summary> <br> <!-- BENCHMARK-TABLE-START --> | Task | Normal | Caveman | Saved | | --------------------------------------- | -------- | ------- | ------- | | Explain React re-render bug | 1180 | 159 | 87% | | Fix auth middleware token expiry | 704 | 121 | 83% | | Set up PostgreSQL connection pool | 2347 | 380 | 84% | | Explain git rebase vs merge | 702 | 292 | 58% | | Refactor callback to async/await | 387 | 301 | 22% | | Architecture: microservices vs monolith | 446 | 310 | 30% | | Review PR for security issues | 678 | 398 | 41% | | Docker multi-stage build | 1042 | 290 | 72% | | Debug PostgreSQL race condition | 1200 | 232 | 81% | | Implement React error boundary | 3454 | 456 | 87% | | **Average** | **1214** | **294** | **65%** | <!-- BENCHMARK-TABLE-END --> </details> > [!IMPORTANT] > Before you multiply 65% by your invoice: the skill only shortens **output**. Input and reasoning tokens don't change, and the skill's own rules cost about 1 to 1.5k input tokens every turn. Whole-session savings land lower than the table. On work that was already terse, you can lose money. Speed and readability are the product. The discount is the bonus. Full accounting in [docs/HONEST-NUMBERS.md](./docs/HONEST-NUMBERS.md). > **Maintainer note.** If you read one linked doc, read that one. I wrote it after [#550](https://github.com/JuliusBrussee/caveman/issues/550), where someone's Cursor A/B went the wrong way and I couldn't reproduce it. Caveman is a shorter agent, not free money. Measure your own setup before you tell your boss anything. ### Proxy: reading less Your agent rereads logs, test output, diffs, and half your repo all day. The proxy shrinks that stream before it reaches the provider. Pinned 54-run Claude Code benchmark, provider-reported input tokens, three runs per case: | Case | Direct Claude Code | Through caveman | Change | | ---------------------- | -----------------: | --------------: | ---------: | | CSV outlier hunt | 165,823 | 74,484 | -55.1% | | Log needle in haystack | 148,807 | 74,068 | -50.2% | | YAML config drift | 132,124 | 71,027 | -46.2% | | Test output failure | 150,377 | 108,514 | -27.8% | | Deployment JSON drift | 147,975 | 108,939 | -26.4% | | Dashboard HTML alert | 140,687 | 154,641 | **+9.9%** | | **Total** | **885,793** | **591,673** | **-33.2%** | All 18 of 18 exact-answer checks passed, so the squeeze cost nothing in correctness. Method, confidence intervals, and limits: [docs/WRAP-BENCHMARK.md](./docs/WRAP-BENCHMARK.md). > **Maintainer note.** The HTML row is red and it stays red. That case
Lo que la gente pregunta sobre caveman
¿Qué es JuliusBrussee/caveman?
+
JuliusBrussee/caveman es tools para el ecosistema de Claude AI. 🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman Tiene 104.8k estrellas en GitHub y su última actualización registrada es del 2026-09-10.
¿Cómo se instala caveman?
+
Puedes instalar caveman clonando el repositorio (https://github.com/JuliusBrussee/caveman) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar JuliusBrussee/caveman?
+
Nuestro agente de seguridad ha analizado JuliusBrussee/caveman y le ha asignado un Trust Score de 82/100 (tier: Trusted). Revisa el desglose completo de comprobaciones superadas y flags en esta página.
¿Quién mantiene JuliusBrussee/caveman?
+
JuliusBrussee/caveman es mantenido por JuliusBrussee. La última actividad registrada en GitHub es del 2026-09-10, con 123 issues abiertos.
¿Hay alternativas a caveman?
+
Sí. En ClaudeWave puedes explorar tools similares en /categories/tools, ordenados por popularidad o actividad reciente.
Despliega caveman en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
[](https://claudewave.com/repo/juliusbrussee-caveman)<a href="https://claudewave.com/repo/juliusbrussee-caveman"><img src="https://claudewave.com/api/badge/juliusbrussee-caveman" alt="Featured on ClaudeWave: JuliusBrussee/caveman" width="320" height="64" /></a>Más Tools
A single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.
An AI skill that provides design intelligence for building professional UI/UX across multiple platforms.
CLI proxy that reduces LLM token consumption by 60-90% on common dev commands. Single Rust binary, zero dependencies
The fastest, litest AI Gateway. Rust core with Python SDK. Call 100+ LLM APIs in OpenAI (or native) format with cost tracking, guardrails, load balancing, and logging [Bedrock, Azure, OpenAI, Anthropic, OpenAI, VertexAI, vLLM, Nvidia NIM]
Use Claude Code, Codex, Pi, and OpenCode and more for free (1.3B+ free tokens) from your terminal, app, IDE, or phone like OpenClaw (voice supported + ToS friendly)
A collection of notebooks/recipes showcasing some fun and effective ways of using Claude.