Asking for brevity works for about three turns, then the padding comes back. A skill reloads the rule on every single response instead. These are the three I actually use, plus when to reach for each one.
→/caveman is a persistent output mode. It strips articles, filler, pleasantries and hedging on every response until you turn it off, and it leaves code blocks and quoted errors exactly as they are.
→/onefifty caps a single answer at 150 words. It expires after that one answer, so it never leaks into the rest of the session.
→/dumbo is the recovery move for coming back to a session cold. 180 words on what just happened, ending on whatever is broken or waiting on you.
→On the caveman repo's own benchmark, ten coding prompts averaged 1,214 output tokens normally and 294 in caveman mode.
🔒Get all three, copy-paste ready
The caveman install command, both custom skill files written out so you can paste them straight into Claude Code, and the rule for picking between them. Yours immediately.
Join 3,000+ builders already getting this. No spam.
ALL THREE — COPY, PASTE, DONE
01
/caveman — the whole session
A plugin, so it installs with one command and needs no file of your own. It stays active on every response until you say stop caveman or normal mode, which is the part a one-off instruction can't do. It drops articles, filler, pleasantries and hedging, and keeps every technical term exact. Code blocks and quoted errors pass through untouched, so the part you actually asked for stays byte-for-byte correct. Three levels ship with it: lite keeps full sentences and just cuts the fluff, full drops articles and allows fragments, ultra abbreviates and uses arrows for causality. Start on full.
claude plugin install caveman --from JuliusBrussee/caveman
# then, in any session:
/caveman # full (default)
/caveman lite # professional but tight
/caveman ultra # maximum compression
# turn it off:
stop caveman
02
/onefifty — build it yourself in 10 seconds
This one is a custom skill, so there's nothing to install. You write one markdown file and Claude picks it up. It caps a single response at 150 words and expires right after, so the rest of your session is untouched. Code blocks and quoted errors don't count toward the cap, which is the detail that makes it usable: you get the exact stack trace or the exact config, just without the essay wrapped around it. Paste the block below into Claude Code and it will create the file for you. Change 150 to 50 and you have /fifty for when 150 is still generous. Saving it under ~/.claude/skills makes it work in every project.
Create the file ~/.claude/skills/onefifty/SKILL.md with exactly this content:
---
name: onefifty
description: Answer the user's request in 150 words or less. Hard cap. Trigger on "/onefifty", "/150", or "150 words or less".
---
Answer in **150 words or less**. Hard cap on the response body.
- No preamble, no restating the question, no closing offer to help.
- Bullets fine. Skip headers unless there are 3+ distinct sections.
- Code blocks and quoted errors don't count toward the cap, keep them exact.
- If the answer genuinely can't fit, give the 150-word version, then say
`over cap:` and continue only if the omission would mislead.
**One-shot.** Applies to THIS response only. Do not carry the cap into later
turns, and do not simplify vocabulary. This is a length cap, not an ELI5.
Copy this whole block and paste it into Claude Code.
03
/dumbo — the other file to paste in
Also a custom skill, same one-file setup. Different job from the other two though. This one compresses a session you context-switched away from, so you can re-orient in about ten seconds without scrolling the transcript. The rule that makes it work is keeping the real names: the skill, the file, the table. A real name is the fastest way back into context, so swapping it for a friendly paraphrase makes you work harder. It ends on what's dormant, broken, or waiting on you, which is the line you actually came back for. Despite the name it never dumbs the vocabulary down, it just compresses.
Create the file ~/.claude/skills/dumbo/SKILL.md with exactly this content:
---
name: dumbo
description: Fast re-orientation recap of what just happened in THIS session. Trigger on "/dumbo", "what just happened", "catch me up", "I lost the context here".
---
Read the recent conversation and compress it.
- **180 words max.** Shorter is better. Honor a number arg as the cap
(`/dumbo 60`). `/dumbo all` recaps the whole session.
- **Use the real names.** Skills, files, agents, repos, table names.
- **Cut the coordinates, keep the nouns.** No line numbers, SHAs, or full
paths unless one is genuinely the point.
- **Outcome over mechanism.** What now exists or changed, not the steps.
- **Surface what's broken or waiting on the user.** Never bury it.
- No preamble. Don't say "here's a recap", just give it.
Same deal. Copy this whole block into Claude Code.
04
Which one, when
They solve three different problems, so the pick is usually obvious once you've named it. Reach for /caveman when you're about to do a long working session and you want everything tighter by default: set it once and forget it. Reach for /onefifty when the session is fine but this one question deserves a short answer, like a yes-or-no or a quick API lookup. Reach for /dumbo when you already lost the thread and you're staring at a wall of transcript trying to remember what this window was for. Start with /caveman. It's the one that changes your day-to-day the most, and it's a single command with nothing to maintain.
/caveman # whole session, set it once
/onefifty # one answer you need short
/dumbo # you came back and lost the thread
05
Why shorter also scores higher
Worth knowing that this isn't only a cost play. A March 2026 paper tested 31 models across 1,485 problems and found that constraining large models to brief responses raised accuracy by 26 percentage points on the affected problems, and reversed the usual big-model-beats-small-model hierarchy on some benchmarks. Verbosity was hiding real errors. The other half of it: caveman only trims output tokens. Thinking and reasoning tokens are untouched, so the model still works the problem as hard as it did before, it just stops narrating the whole thing back to you.