Shorter AI Answers, Key Details Intact Caveman
Remove pleasantries, repetition, and long introductions from AI replies. Put the answer first while keeping code, commands, numbers, and important conditions accurate.
Works with Claude Code · Codex
Requirements
- Node.js >=22.20.0
- npm/npx
Overview
What you get
- Rules for shorter chat replies: answer first, one idea per sentence, fewer pleasantries and repetitions.
- Standard, maximum-compression, and Classical Chinese modes when caveman, ultracave, and megacave are installed.
- Instructions to preserve exact code, commands, errors, numbers, and important conditions, with fuller explanations when clarity requires them.
Good fit
- Finding the cause and next step in a debugging conversation.
- Reading concise code explanations and progress reports.
- Adjusting how much detail a coding assistant gives in chat.
Not for
- Replacing the reasoning or task instructions needed to solve a problem.
- Automatically compressing files or tool output, configuring a proxy, or guaranteeing a fixed reduction in cost.
Tutorial
What it removes from a long answer
You want the cause of an error and the next step. Instead, you get several paragraphs of pleasantries and repeated explanations. Caveman gives your coding assistant rules for answering first, keeping one idea per sentence, and removing words that add no information.
It targets explanations in chat. Its rules require code, commands, paths, exact errors, numbers, and important conditions to stay accurate. There is currently no direct equivalent in this catalog focused on shortening coding-agent replies. It does not replace task skills for building interfaces or making videos; it can change how the assistant communicates while using them.
The following wording example was written for this guide from the skill’s rules:
Typical explanation
The issue you’re seeing is most likely related to data that hasn’t finished loading yet. Before the API responds, items is still undefined, so calling map on it produces this error. I’d recommend distinguishing the loading, failure, and success states, then rendering the list only after a successful response has been confirmed to contain an array.
Shorter explanation
itemshasn’t loaded, so.map()fails. Separate loading, failure, and success states. Render the list only after a successful response contains an array.
Check that the cause, sequence, and conditions survive. “Add a default array” would blur a failed request and a genuinely empty list. Shorter is useful only when the answer remains clear.
Caveman uses skill instructions, not a compression algorithm. Token savings depend on the task, model, and how concise the assistant already is. The repository also includes a proxy, model routing, and context compression. This guide starts with the reply-shortening skill.
Install it and compare one answer
Install the skills
Have Claude Code or Codex available, along with Node.js and npm/npx. The skills CLI used here currently requires Node.js 22.20.0 or later. That requirement belongs to the installer, not to the Markdown skill itself.
-
Run the official skill installation command in a terminal:
npx skills add JuliusBrussee/caveman -g -
Select the host you use. Choose
cavemanfrom the skill list. Also selectultracaveandmegacaveif you want to try the modes in the next section. You do not need every skill in the repository. -
After installation, start a new chat in the selected host.
-ginstalls skills at user scope for that host, so they are available across projects.
This route adds skills without configuring the Caveman proxy or auto-start hooks. Invoke the skill when you want to use it.
Compare the same question
-
Ask this in an ordinary chat and keep the answer:
A React list throws: TypeError: Cannot read properties of undefined (reading 'map'). items starts as undefined. A successful API response should contain an array. The page must distinguish loading, request failure, and an empty list. Analyze only; do not edit files. Give the cause, where to make a change, and one way to check it. -
Activate Caveman. These are messages to the assistant, not terminal commands:
Claude Code:
/cavemanCodex:
$caveman -
Ask the same question again. The cause and next step should be easier to find. The exact error,
items,.map(), and the distinctions between loading, failure, and an empty list should still be present.
If nothing changes, check the current host’s skill list for caveman, then invoke it explicitly. Installing it for another host does not make it available in this chat.
Choose how much to shorten
All three modes require code and important conditions to survive. Start with ordinary Caveman, then try another mode if it suits how you read.
| Mode | Claude Code message | Codex message | Style |
|---|---|---|---|
| Standard | /caveman | $caveman | Answer first, remove ceremony and repetition, keep the wording easy to follow |
| Maximum compression | /ultracave | $ultracave | More fragments and shorter sentences for quick exchanges when the context is already familiar |
| Classical Chinese | /megacave | $megacave | Classical Chinese prose with technical identifiers unchanged; fewer characters do not guarantee fewer tokens |
The last two require their corresponding skills to be installed. The skill documentation also provides /caveman ultra and /caveman wenyan as aliases. The table invokes each skill separately to make the selection explicit.
Send /caveman status in Claude Code, or $caveman status in Codex, to ask about the current mode. Without tracking hooks, a skill-only installation reports that the host does not track the mode. This is not a separate installation check.
To return to ordinary replies, send this in chat:
stop caveman
The rules keep the mode active until you stop it. They also require full sentences for security warnings, irreversible actions, ambiguous sequences, and confused readers. Content written outside chat, including code, comments, and documentation, should use normal prose.
Apply it to your own work
Debugging, code explanations, and progress reports
Specify what must survive instead of asking for the shortest possible answer. After activating the skill, replace the bracketed parts here:
Analyze [the exact error]. Context: [code location, input, and checks already completed].
Give the conclusion first, then the next step. Keep the exact error, file paths,
important conditions, and a way to verify the result.
Analyze only for now; do not edit files.
For a code explanation, ask what the code does, when it runs, and one important boundary. For a progress report, preserve completed work, verification results, and unresolved issues. The reading goal changes; necessary facts still belong in the answer.
If a shortened answer becomes unclear, ask for the part you need: “Explain the difference between request failure and an empty list; keep the rest brief.” Use stop caveman when you want ordinary replies throughout.
Separate shorter replies from lower total cost
The skill in this guide primarily removes redundant prose from replies. It does not compress files, shorten tool output, or configure model routing for you. The instructions themselves use context. With per-request pricing, a shorter answer does not reduce the number of requests or the charge for that request.
If clearer everyday chat is your goal, start and stop with the skills. Explore the repository’s separate proxy documentation when you need to reduce large tool results or input context. Do not attribute those features’ benchmark results to the reply style.
Sources for installation and behavior: README, installation guide, caveman rules, ultracave, and megacave. The current repository uses Apache-2.0. Older releases retain their release-specific terms; see the licensing guide.