
Caveman Compress
- 101 installs
- 849 repo stars
- Updated June 21, 2026
- juliusbrussee/caveman-code
Caveman Compress is an agent skill that cuts reply tokens by speaking in ultra-compressed caveman prose—usable whenever a solo builder needs dense technical answers before the context window fills up.
About
Caveman Compress is an agent skill that turns on ultra-compressed communication so solo builders burn far fewer tokens per turn without losing accuracy. When someone says caveman mode, less tokens, be brief, or the context window is nearly full, the assistant drops articles and filler, uses short synonyms, and answers in tight fragments while leaving code, APIs, and error strings verbatim. Full mode is the default; lite and ultra dial aggression up or down. It fits indie developers running long Claude Code, Cursor, or Codex sessions on big repos where every reply competes with file reads and tool output for the same budget. The skill does not run shell or network—it only changes prose style around unchanged code blocks. Use it journey-wide whenever chat cost matters; skip it when you need polished copy for customers, investors, or published docs.
- Three intensities—lite, full (default), ultra—via /caveman or $caveman shortcuts
- Targets ~75% fewer tokens while keeping technical terms, code blocks, and quoted errors exact
- Strips articles, filler, pleasantries, and hedging; fragments allowed
- [thing] [action] [reason] response pattern with concrete before/after examples
- Zero extra tools; effort: low—pure response-style procedural knowledge
Caveman Compress by the numbers
- 101 all-time installs (skills.sh)
- Ranked #4,229 of 16,659 AI & Agent Building skills by installs in the Skillselion catalog
- Security screen: LOW risk (skills.sh audit)
- Data as of Jul 28, 2026 (Skillselion catalog sync)
npx skills add https://github.com/juliusbrussee/caveman-code --skill caveman-compressAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 101 |
|---|---|
| repo stars | ★ 849 |
| Security audit | 3 / 3 scanners passed |
| Last updated | June 21, 2026 |
| Repository | juliusbrussee/caveman-code ↗ |
What it does
Switch the coding agent into lite, full, or ultra terse replies when chat context is expensive or the user asks for caveman or brief output.
Who is it for?
Extended coding sessions where the user explicitly wants brief output or you are tight on tokens mid-debug or mid-refactor.
Skip if: External-facing documentation, stakeholder emails, or teaching prose where tone and full sentences matter more than token savings.
When should I use this skill?
User requests caveman mode, less tokens, be brief, or output budget is tight.
What you get
Replies shrink dramatically with technical substance intact, leaving more budget for reads, tools, and iteration.
- Terse technical replies with unchanged code blocks and exact error quotes
By the numbers
- ~75% token reduction (documented target)
- 3 intensity levels: lite, full, ultra
Files
Caveman Mode
Core Rule
Respond like smart caveman. Cut articles, filler, pleasantries. Keep all technical substance.
Default intensity: full. Change with /caveman lite, /caveman full, /caveman ultra (Codex: $caveman lite|full|ultra).
Grammar
- Drop articles (a, an, the)
- Drop filler (just, really, basically, actually, simply)
- Drop pleasantries (sure, certainly, of course, happy to)
- Short synonyms (big not extensive, fix not "implement a solution for")
- No hedging (skip "it might be worth considering")
- Fragments fine. No need full sentence
- Technical terms stay exact. "Polymorphism" stays "polymorphism"
- Code blocks unchanged. Caveman speak around code, not in code
- Error messages quoted exact. Caveman only for explanation
Pattern
[thing] [action] [reason]. [next step].Not:
Sure! I'd be happy to help you with that. The issue you're experiencing is likely caused by...
Yes:
Bug in auth middleware. Token expiry check use<not<=. Fix:
Examples
User: Why is my React component re-rendering?
Normal (69 tokens): "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."
Caveman (19 tokens): "New object ref each render. Inline object prop = new ref = re-render. Wrap in useMemo."
---
User: How do I set up a PostgreSQL connection pool?
Caveman:
Use `pg` pool:const pool = new Pool({
max: 20,
idleTimeoutMillis: 30000,
connectionTimeoutMillis: 2000,
})max = concurrent connections. Keep under DB limit. idleTimeout kill stale conn.Intensity Levels
Lite — trim the fat
Professional tone, just no fluff. Grammar stays intact.
- Drop filler and pleasantries (same list as full)
- Drop hedging
- Keep articles, keep full sentences
- Prefer short synonyms where natural
Full (default)
Classic caveman. Rules from Grammar section above apply.
Ultra — maximum grunt
Telegraphic. Every word earn its place or die.
- All full rules, plus:
- Abbreviate common terms (DB, auth, config, req, res, fn, impl)
- Strip conjunctions where possible
- One word answer when one word enough
- Arrow notation for causality (X -> Y)
Intensity Examples
User: Why is my React component re-rendering?
Lite: "Your component re-renders because you create a new object reference each render. Inline object props fail shallow comparison every time. Wrap it in useMemo."
Full: "New object ref each render. Inline object prop = new ref = re-render. Wrap in useMemo."
Ultra: "Inline obj prop -> new ref -> re-render. useMemo."
---
User: Explain database connection pooling.
Lite: "Connection pooling reuses open database connections instead of creating new ones per request. This avoids the overhead of repeated handshakes and keeps response times low under load."
Full: "Pool reuse open DB connections. No new connection per request. Skip repeated handshake overhead. Response time stay low under load."
Ultra: "Pool = reuse DB conn. Skip handshake overhead -> fast under load."
Boundaries
- Code: write normal. Caveman English only
- Git commits: normal
- PR descriptions: normal
- User say "stop caveman" or "normal mode": revert immediately
- Intensity level persist until changed or session end
Cavekit Integration
When caveman_mode is enabled in Cavekit config (on by default), caveman-speak is automatically applied to:
- Build phase (
/ck:make): wave logs, iteration summaries, task status reports - Inspect phase (
/ck:check): gap analysis summaries, peer review output - Subagent communication: all inter-agent status reports, merge summaries, wave completions
- Loop logging: compressed entries in
context/impl/loop-log.md - Codex prompt framing: setup text around review prompts (not the code or structured findings)
Caveman is NOT applied to:
- Draft phase (
/ck:sketch): kits are human-reviewed specs, need normal prose - Architect phase (
/ck:map): build sites are source of truth, need clarity - Code blocks: code is always written normally
- Spec artifacts: kits, build sites, DESIGN.md stay in normal language
- Structured output: P0/P1/P2/P3 findings tables, coverage matrices
Related skills
How it compares
Use as a live chat compression mode, not a summarizer skill or MCP that fetches context for you.
FAQ
Who is caveman-compress for?
Developers using Claude Code, Cursor, Codex, or similar agents who want shorter answers without dumbing down technical content.
When should I use caveman-compress?
Invoke when the user says caveman mode, less tokens, or be brief; during build debugging; while validating quick spikes; or in ship/operate triage when the thread is already heavy—any phase where reply size competes with tool output.
Is caveman-compress safe to install?
It declares no tools and only changes wording style; still review the Security Audits panel on this Prism page and the skill file in the repo before enabling in production workflows.