Caveman Learn Token Fixes
JuliusBrussee/caveman
Acts on a Caveman learn report: reviews ranked token sinks, applies cost-lowering edits one at a time with your consent, and reports what each fix returned.
Rewrites a memory file such as CLAUDE.md or a todo list in terse caveman-style text to cut input tokens, saving a readable backup outside the project tree.
$ npx skills add JuliusBrussee/caveman-code --skill caveman-compress -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install JuliusBrussee/caveman-code caveman-compress --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/JuliusBrussee/caveman-code.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/coding-agent/skills/caveman-compress .claude/skills/caveman-compress && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "caveman-compress" agent skill from https://github.com/JuliusBrussee/caveman-code/tree/main/packages/coding-agent/skills/caveman-compress into .claude/skills/caveman-compress/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "caveman-compress", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/JuliusBrussee/caveman-code/tree/main/packages/coding-agent/skills/caveman-compressType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add JuliusBrussee/caveman-code --skill caveman-compress -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install JuliusBrussee/caveman-code caveman-compress --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JuliusBrussee/caveman-code.git skills-src && mkdir -p .agents/skills && cp -r skills-src/packages/coding-agent/skills/caveman-compress .agents/skills/caveman-compress && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "caveman-compress" agent skill from https://github.com/JuliusBrussee/caveman-code/tree/main/packages/coding-agent/skills/caveman-compress into .agents/skills/caveman-compress/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "caveman-compress", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add JuliusBrussee/caveman-code --skill caveman-compress -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install JuliusBrussee/caveman-code caveman-compress --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JuliusBrussee/caveman-code.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/packages/coding-agent/skills/caveman-compress .cursor/skills/caveman-compress && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "caveman-compress" agent skill from https://github.com/JuliusBrussee/caveman-code/tree/main/packages/coding-agent/skills/caveman-compress into .cursor/skills/caveman-compress/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "caveman-compress", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/JuliusBrussee/caveman-code.git --path packages/coding-agent/skills/caveman-compress--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add JuliusBrussee/caveman-code --skill caveman-compress -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install JuliusBrussee/caveman-code caveman-compress --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JuliusBrussee/caveman-code.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/packages/coding-agent/skills/caveman-compress .gemini/skills/caveman-compress && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "caveman-compress" agent skill from https://github.com/JuliusBrussee/caveman-code/tree/main/packages/coding-agent/skills/caveman-compress into .gemini/skills/caveman-compress/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "caveman-compress", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install JuliusBrussee/caveman-code caveman-compressInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add JuliusBrussee/caveman-code --skill caveman-compress -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/JuliusBrussee/caveman-code.git skills-src && mkdir -p .github/skills && cp -r skills-src/packages/coding-agent/skills/caveman-compress .github/skills/caveman-compress && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "caveman-compress" agent skill from https://github.com/JuliusBrussee/caveman-code/tree/main/packages/coding-agent/skills/caveman-compress into .github/skills/caveman-compress/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "caveman-compress", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add JuliusBrussee/caveman-code --skill caveman-compress -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install JuliusBrussee/caveman-code caveman-compress --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JuliusBrussee/caveman-code.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/packages/coding-agent/skills/caveman-compress .opencode/skills/caveman-compress && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "caveman-compress" agent skill from https://github.com/JuliusBrussee/caveman-code/tree/main/packages/coding-agent/skills/caveman-compress into .opencode/skills/caveman-compress/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "caveman-compress", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
caveman-compressRewrites a memory file such as CLAUDE.md or a todo list in terse caveman-style text to cut input tokens, saving a readable backup outside the project tree.
Invoked as /caveman-compress with a file path, or by asking to shrink a memory file, the skill runs a bundled Python command from its own folder. That command detects the file type without calling a model, asks Claude to compress the text, then validates the result without a model call. If validation finds errors, Claude makes targeted fixes rather than recompressing, with up to two retries, and when it still fails the original file is left untouched.
The compressed version replaces the original. A readable backup named after the file with an .original.md ending is written to a data folder outside the project, under XDG_DATA_HOME or LOCALAPPDATA on Windows, so skill auto-loaders do not read it as a live file.
Compression drops articles, filler words, pleasantries, hedging, redundant phrasing and connective words. Code blocks, inline code, URLs, file paths, commands, technical terms, proper nouns, dates, version numbers and environment variables are preserved exactly, and headings, list nesting, numbering, tables and frontmatter keep their structure.
Read from SKILL.md and the folder at commit 3a21be1. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are javascript).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Caveman Memory File Compressor loads about 1.2k tokens when it runs. Until then it costs about 67 tokens; SKILL.md has 576 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from JuliusBrussee/caveman-code at commit 3a21be1, republished under its MIT licence (© JuliusBrussee). 576 words, ~1,205 tokens.
.claude/skills/caveman-compress/SKILL.md (or your agent's skills folder).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).
[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:
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.Professional tone, just no fluff. Grammar stays intact.
Classic caveman. Rules from Grammar section above apply.
Telegraphic. Every word earn its place or die.
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."
When caveman_mode is enabled in Cavekit config (on by default), caveman-speak is automatically applied to:
/ck:make): wave logs, iteration summaries, task status reports/ck:check): gap analysis summaries, peer review outputcontext/impl/loop-log.mdCaveman is NOT applied to:
/ck:sketch): kits are human-reviewed specs, need normal prose/ck:map): build sites are source of truth, need clarity© JuliusBrussee, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in packages/coding-agent/skills/caveman-compress of JuliusBrussee/caveman-code.
Open the folder on GitHubat commit 3a21be1
Caveman Memory File Compressor next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Caveman Memory File Compressor this skillJuliusBrussee/caveman-code | 942 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Caveman Learn Token FixesJuliusBrussee/caveman | 111k | — | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| Context Budget Checkposhan0126/dotclaude | 870 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Claude Code Cost Optimizermergisi/awesome-openclaw-agents | 4k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Claude Code Masteryborghei/Claude-Skills | 891 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Context Mode Output Sandboxmksglu/context-mode | 26k | — | ~4.1k | Automated safety check: Pass | Custom licence |
JuliusBrussee/caveman
Acts on a Caveman learn report: reviews ranked token sinks, applies cost-lowering edits one at a time with your consent, and reports what each fix returned.
poshan0126/dotclaude
Estimates the per-turn token cost of a project's .claude folder and CLAUDE.md, split into always-loaded, path-scoped and invoked-only files, and flags what runs over budget.
mergisi/awesome-openclaw-agents
Audits a project's Claude Code setup for common token-cost leaks and returns a prioritized fix list, using only static inspection of files and settings.
borghei/Claude-Skills
A skill your agent uses when the user asks to "optimize CLAUDE.md", "create a new skill", "write a custom agent", "configure hooks", "manage context window", "set up MCP servers", "scaffold a skill…
mksglu/context-mode
Routes large command, file, API and browser output through context-mode tools so only the needed result enters the agent's context, instead of dumping it via Bash.
mksglu/context-mode
Routing rules for using context-mode MCP tools in Antigravity CLI: sandboxed code runs, file analysis, indexed search and web fetches that keep large output out of the conversation.
JuliusBrussee/caveman-code
How to write and maintain DESIGN.md as the visual specification layer for Cavekit projects.
JuliusBrussee/caveman-code
Cavekit specification-driven development methodology — the Hunt lifecycle (Draft → Architect → Build → Inspect → Monitor) and how to apply it.
JuliusBrussee/caveman-code
Trace bugs and manual fixes back to kits and prompts; fix at the source so the iteration loop can reproduce the fix autonomously.
JuliusBrussee/caveman-code
Validation-first design for Cavekit — every kit requirement must be automatically verifiable.
JuliusBrussee/caveman-code
Scaffold a complete cave plugin bundle — generates .cave-plugin/plugin.json manifest and the standard directory structure (commands/, skills/, agents/, themes/, hooks/).
Categories
Rewrites a memory file such as CLAUDE.md or a todo list in terse caveman-style text to cut input tokens, saving a readable backup outside the project tree. Invoked as /caveman-compress with a file path, or by asking to shrink a memory file, the skill runs a bundled Python command from its own folder. That command detects the file type without calling a model, asks Claude to compress the text, then validates the result without a model call.
Caveman Memory File Compressor fits situations like: shrinking a long CLAUDE.md that is loaded into every session; compressing a todo list or preferences file to save input tokens; reducing the token cost of memory files without losing commands or paths.
Run `npx skills add JuliusBrussee/caveman-code --skill caveman-compress -a claude-code`. Or copy the skill folder (packages/coding-agent/skills/caveman-compress in JuliusBrussee/caveman-code) into .claude/skills/caveman-compress in your project. Claude Code loads it when a task matches its description.
Run `npx skills add JuliusBrussee/caveman-code --skill caveman-compress -a codex`. Or copy the skill folder (packages/coding-agent/skills/caveman-compress in JuliusBrussee/caveman-code) into .agents/skills/caveman-compress in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add JuliusBrussee/caveman-code --skill caveman-compress -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/caveman-compress, .gemini/skills/caveman-compress, .github/skills/caveman-compress and .opencode/skills/caveman-compress in your project.
SKILL.md names no scripts, command-line tools or credentials: Caveman Memory File Compressor is instructions for the agent only. Our summary lists: Python 3, since the scripts run with python3 -m scripts; Access to Claude for the compression step.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Caveman Memory File Compressor is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.2k tokens (SKILL.md is roughly 4.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Caveman Memory File Compressor: Caveman Learn Token Fixes (JuliusBrussee/caveman, 111k stars), Context Budget Check (poshan0126/dotclaude, 870 stars), Claude Code Cost Optimizer (mergisi/awesome-openclaw-agents, 4k stars) and Claude Code Mastery (borghei/Claude-Skills, 891 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
JuliusBrussee (a GitHub user) maintains it in JuliusBrussee/caveman-code, which has 942 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on August 14, 2026.
Source: JuliusBrussee/caveman-code on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.