CMCaveman Mode

The Testing Academy · Masterclass · Caveman Mode

Why use many token when few do trick.

Caveman is a one-line install that makes your AI coding agent talk like a caveman: it drops the articles, pleasantries and hedging and keeps every bit of technical substance, cutting roughly 75% of output tokens with no loss of accuracy. This field guide runs from the idea to installing it across Claude Code, GitHub Copilot, OpenCode, Codex and Command Code, and the Windows errors that bite on day one.

Part 1 · Why caveman Part 2 · Across your agents Part 3 · Windows & skills Audience · Devs & SDETs

01 ~ part one ~

Why Caveman

Where the tokens actually go, what caveman does to the wall of text, the intensity levels you can dial, and the one guarantee that keeps it safe: it never compresses the things that must stay clear.

01

Concept · the problem

Most of the answer is fluff, and you pay for it.

A normal agent wraps a one-line fix in a paragraph of throat-clearing. Every word is billed and read.

Ask an agent why a React component re-renders and you get a warm intro, a restatement of your question, the answer, and a polite closer. The technical payload is one sentence; the rest is packaging. On a paid API that packaging is real money, and in your terminal it is a wall of text you have to scan past. Caveman is built on a simple observation: an LLM keeps its technical accuracy when you strip the filler, so you can drop three quarters of the words and lose nothing that matters.

Why it mattersOutput tokens are the expensive half of an agent session. Cutting the filler cuts your bill and your reading time at once, and the fix you needed is still right there.

02

Concept · what it is

A skill that teaches the agent to talk less.

Not a model, not a wrapper. A rules file the agent loads, so it drops fluff on every reply.

Caveman is an installable skill and plugin. It ships a compact instruction set (drop articles, filler, pleasantries and hedging; keep technical terms exact; fragments are fine; code, commits and errors stay verbatim) that the agent reads and applies to every response. Nothing intercepts or rewrites the model output after the fact; the model itself simply answers in the terse register. Benchmarks against the real token counts show a mean output reduction around 65%, ranging from 22% on already-tight answers to 87% on verbose explanations, with technical accuracy intact.

Why it mattersBecause it is just instructions, it rides any agent that reads a rules or skill file. That is what lets one install cover Claude Code, Copilot, Codex, OpenCode and the rest.

03

Concept · intensity

Pick your level of grunt.

Same answer, you choose how many words. Three English levels, plus a classical-Chinese mode for the extreme.

Lite drops filler but keeps full grammar, so it stays boardroom-safe. Full is the default caveman: no articles, fragments welcome, short synonyms. Ultra is telegraphic and abbreviates everything. For the truly token-starved there is Wenyan mode, which answers in classical Chinese, the most compact written language ever used, at three of its own levels. Switch any time with /caveman lite|full|ultra; the level sticks until you change it or the session ends.

Why it mattersOne knob covers a shared standup and a solo debugging marathon. Lite when others read along, ultra when it is just you and the terminal at 2am.

04

Concept · the guarantee

What caveman never compresses.

Terseness is dropped the moment ambiguity would be dangerous, then resumed.

Compression is only safe where clarity is not at risk, so caveman has an auto-clarity rule. It writes normally for security warnings, irreversible-action confirmations, and any multi-step sequence where a dropped conjunction could be misread (think "migrate table, drop column, back up first"). It also leaves code, commit messages, PR descriptions and quoted errors completely untouched, byte for byte. So a review comment gets shorter, but the SQL it warns you about stays exact, and the destructive command still comes with a full-sentence caution.

Why it mattersFewer tokens must never mean a misread migration or a swallowed warning. The guarantee is what makes caveman usable on real work instead of just a party trick.

02 ~ part two ~

Across Your Agents

One installer that detects every coding agent you have, then the specifics for Claude Code, Codex, OpenCode, GitHub Copilot, and syncing caveman into VS Code.

05

Setup · install

One line, every agent on your machine.

The installer detects 30+ agents, runs each one's native install, and skips what you do not have.

You do not install caveman per tool by hand. One script scans for every supported agent (Claude Code, Codex, Gemini CLI, Cursor, Windsurf, Cline, Copilot, OpenCode, and many more), runs the correct install for each, and safely skips the rest. It is safe to re-run. On macOS, Linux, WSL or Git Bash use the bash line; on native Windows PowerShell use the irm ... | iex line. Prefer a single target? Add --only <agent>. Want to preview without writing anything? --dry-run.

terminal · one-line install
# macOS / Linux / WSL / Git Bash
curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.sh | bash

# Windows (PowerShell)
irm https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.ps1 | iex

# useful flags
--dry-run           # preview, write nothing
--only claude-code  # one target (repeatable)
--minimal           # plugin/extension only, no hooks or MCP extras
--list              # print the full agent matrix and exit

Why it mattersMost developers run more than one agent. A single command keeps caveman consistent across all of them instead of five separate setups that drift apart.

06

Agent · Claude Code

Claude Code gets the full kit.

Plugin, a real slash command, a statusline badge, and terse subagents. This is the richest target.

On Claude Code, caveman installs as a plugin through the marketplace. Trigger it with /caveman (or /caveman ultra for a level), or just say "talk like caveman". It also wires a statusline badge that shows the active mode and your lifetime tokens saved, and it ships cavecrew subagents (investigator, builder, reviewer) that emit far fewer tokens than the stock ones, so a long session's context lasts longer. Stop any time with "normal mode".

terminal · Claude Code
# install the plugin
claude plugin marketplace add JuliusBrussee/caveman
claude plugin install caveman@caveman

# then, inside Claude Code:
/caveman            # turn it on (default: full)
/caveman ultra      # switch level
/caveman-stats      # real tokens saved + estimated USD
# say "normal mode" to stop

Why it mattersThe savings become visible. The statusline turns "I think this helps" into a running count of tokens you did not spend.

07

Agents · Codex & OpenCode

Codex, OpenCode, and the npx skills family.

Dozens of agents share one install path: add the skill with a profile flag.

Codex, OpenCode, and 30-plus other agents install through the same npx skills command with an -a <profile> flag naming the target. The one difference worth remembering: Codex triggers with $caveman, not a slash, and it auto-starts when you run Codex inside the caveman repo via a bundled hook; in other repos, use $caveman to start the mode by hand. OpenCode and the rest read the installed skill and pick up the caveman rules directly. If you are not sure which slug your agent uses, run the installer with --list.

terminal · Codex, OpenCode & friends
# Codex  (trigger with $caveman, not /caveman)
npx skills add JuliusBrussee/caveman -a codex

# OpenCode
npx skills add JuliusBrussee/caveman -a opencode

# auto-detect the current agent
npx skills add JuliusBrussee/caveman

# see every supported slug
npx skills add JuliusBrussee/caveman --list

Why it mattersOne command shape covers a long tail of tools. Learn npx skills add ... -a <profile> once and every future agent is a one-liner.

08

Agent · GitHub Copilot

GitHub Copilot & the rule files.

Copilot reads a repo instructions file, so caveman drops one in and it auto-starts there.

GitHub Copilot (and Cursor, Windsurf, Cline) do not have a caveman slash command; instead they read a per-repo rules file. Install the skill for Copilot with the -a github-copilot profile, or use the installer's --with-init flag to write the rule files into the current repo: .github/copilot-instructions.md for Copilot, plus .cursor/rules, .windsurf/rules, .clinerules and a shared AGENTS.md. Once that file is in the repo, caveman is on for everyone who opens it, no command needed.

terminal · Copilot & IDE rule files
# install caveman for GitHub Copilot
npx skills add JuliusBrussee/caveman -a github-copilot

# or drop always-on rule files into THIS repo (all agents):
curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.sh | bash -s -- --with-init

# writes, among others:
#   .github/copilot-instructions.md   AGENTS.md
#   .cursor/rules/caveman.mdc         .clinerules/caveman.md

Why it mattersA committed rule file is team-wide by default. Everyone who clones the repo gets the terse register without installing anything themselves.

09

Setup · editor

Sync it into VS Code.

Two editor paths: install the Codex plugin inside VS Code, and connect Command Code's terminal to your editor.

If you drive Codex from VS Code, install caveman as a Codex plugin from the editor: clone the repo, open VS Code, go to Codex Settings, Plugins, find Caveman under the local marketplace, install, and reload the window. Separately, if you run Command Code, launch it from the VS Code integrated terminal so its companion extension auto-installs and the agent sees your open file; check or repair that link with /ide inside a session, or cmd --ide-setup for a scripted install. With caveman active in either, the agent both reads your editor context and answers terse.

Codex in VS Code · Command Code sync
# Codex plugin (in VS Code): clone, then
#   VS Code -> Codex Settings -> Plugins -> Caveman -> Install -> Reload

# Command Code: run inside the VS Code integrated terminal
cmd                 # extension auto-installs on first run
/ide                # check / repair the editor connection
cmd --ide-setup     # non-interactive install for scripts

Why it mattersEditor context plus caveman is the sweet spot. The agent knows the file you mean and answers without a wall of text to scroll past.

03 ~ part three ~

Windows Survival & the Skills

The three errors Windows throws during install, in the order they hit: the blocked PowerShell script, the missing Node, and the symlink wall. Then the bonus skills that make caveman worth keeping.

10

Windows · execution policy

"running scripts is disabled on this system".

PowerShell blocks scripts by default, so irm ... | iex and the npm shims refuse to run until you allow them.

The moment you run the Windows install line, PowerShell may reject it with running scripts is disabled on this system. The npm-installed launchers are .ps1 shims and hit the same wall. Fix it by setting the execution policy to RemoteSigned for your user only: local scripts run, downloaded scripts still need a signature, and you need no admin rights for the CurrentUser scope. Verify, reopen the terminal, and re-run the installer.

powershell · allow local scripts
# the error:
# ... cannot be loaded because running scripts is disabled
# on this system.

# fix (no admin needed):
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

# confirm, then reopen the terminal
Get-ExecutionPolicy -Scope CurrentUser      # -> RemoteSigned

# now re-run the installer
irm https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.ps1 | iex

Why it mattersRemoteSigned is the safe middle ground. It unblocks your own tooling without opening the door to unsigned scripts off the internet, which is what Unrestricted would do.

11

Windows · missing runtime

"node not found" and "npm not recognized".

The npx skills path needs Node.js. No Node means no npm, and no npm means no install.

Caveman's per-agent installs run through npx, which ships with Node.js. If npx skills or npm fails with 'npm' is not recognized, or an agent reports node not found, the runtime is missing or off your PATH. Install the current Node LTS (npm comes with it), then close and reopen the terminal so PATH refreshes, which is the step people skip when they say "I installed Node but it still says not found". Verify both binaries and retry.

windows · install node, then retry
# install Node LTS (npm + npx come with it):
winget install OpenJS.NodeJS.LTS        # or download from nodejs.org

# CLOSE and REOPEN the terminal so PATH refreshes, then verify:
node -v          # v22.x
npm -v           # 10.x

# now the per-agent install works:
npx skills add JuliusBrussee/caveman

Why it mattersAlmost every "caveman won't install on Windows" report is really a Node or PATH problem. Fix the runtime once and npx, the installer, and every other Node tool all start working.

12

Windows · symlinks & fallback

When the one-liner still fails.

The npx installer uses symlinks, which Windows blocks by default. Two flags and a manual path get you unstuck.

On stubborn Windows setups the installer can still fail, usually because npx skills creates symlinks and Windows blocks them without Developer Mode. Two fixes: enable symlinks globally for git, or tell the installer to copy instead of link with --copy. For Codex specifically, turn on core.symlinks before cloning. If PowerShell install fails entirely, there is a documented manual fallback that copies the skill file into the plugin path by hand; reach for it only after the flags above.

windows · symlink fixes
# copy instead of symlink (most common fix)
npx skills add JuliusBrussee/caveman --copy

# enable symlinks for git (Codex needs this before cloning)
git config --global core.symlinks true
# requires Windows Developer Mode or admin

# last resort: manual plugin-skill copy is documented in
# docs/install-windows.md in the caveman repo

Why it mattersSymlink failures look scary but have a one-flag fix. --copy trades a little disk for an install that just works on locked-down Windows.

13

Bonus · the skills

Terse commits, one-line reviews, and input savings.

Caveman is more than the chat register: it ships focused skills that cut tokens on both sides.

Beyond the mode, caveman bundles skills worth knowing. /caveman-commit writes Conventional-Commit messages with a short subject and the reason over the noise. /caveman-review leaves one-line PR comments like L42: bug: user null. Add guard. with no throat-clearing. And /caveman:compress rewrites a memory file such as CLAUDE.md into caveman-speak, cutting roughly 46% of the input tokens you pay at every session start, with code, URLs and paths preserved byte for byte and a .original.md backup saved. Output savings plus input savings compound.

the caveman skills
/caveman-commit          # terse Conventional Commit, why over what
/caveman-review          # L42: bug: user null. Add guard.
/caveman:compress CLAUDE.md   # ~46% fewer INPUT tokens per session
                              # backup saved as CLAUDE.original.md
/caveman-stats           # lifetime tokens saved + USD (Claude Code)

Why it mattersThe mode cuts output; compress cuts input. Together they shrink both halves of every session, and the commit and review skills keep your git history as tight as your chat.

Field notes · pin this

The caveman loop, in one line

install.sh | bash detects your agents /caveman pick a level ~75% fewer tokens compress CLAUDE.md stats