Install the "caveman" agent skill from https://github.com/AnastasiyaW/codex-claude-code-config/tree/main/skills/writing/caveman into .claude/skills/caveman/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "caveman", 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.
Type 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.
skills CLI
$ npx skills add AnastasiyaW/codex-claude-code-config --skill caveman -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "caveman" agent skill from https://github.com/AnastasiyaW/codex-claude-code-config/tree/main/skills/writing/caveman into .agents/skills/caveman/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "caveman", 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.
skills CLI
$ npx skills add AnastasiyaW/codex-claude-code-config --skill caveman -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "caveman" agent skill from https://github.com/AnastasiyaW/codex-claude-code-config/tree/main/skills/writing/caveman into .cursor/skills/caveman/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "caveman", 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.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add AnastasiyaW/codex-claude-code-config --skill caveman -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "caveman" agent skill from https://github.com/AnastasiyaW/codex-claude-code-config/tree/main/skills/writing/caveman into .gemini/skills/caveman/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "caveman", 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.
Installs 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).
skills CLI
$ npx skills add AnastasiyaW/codex-claude-code-config --skill caveman -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "caveman" agent skill from https://github.com/AnastasiyaW/codex-claude-code-config/tree/main/skills/writing/caveman into .github/skills/caveman/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "caveman", 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.
skills CLI
$ npx skills add AnastasiyaW/codex-claude-code-config --skill caveman -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "caveman" agent skill from https://github.com/AnastasiyaW/codex-claude-code-config/tree/main/skills/writing/caveman into .opencode/skills/caveman/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "caveman", 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.
Facts
Skill name
caveman
GitHub stars
154
Token cost
~3k tokens
SKILL.md length
1,496 words
Files
1
Skills in repo
50
Repo updated
First seen
Licence
MIT
At a glance
Ultra-compressed reply mode. An agent skill from AnastasiyaW/codex-claude-code-config.
User says caveman
SKILL.md covers Persistence, Rules, Shape and Intensity, plus 4 more sections
Calls npm
Talk like caveman
What it does
Caveman is an agent skill from AnastasiyaW/codex-claude-code-config. Ultra-compressed reply mode. Cuts output tokens ~65-75% by answering in terse "caveman" style while keeping full technical accuracy, and shapes what survives: action first, state restated every turn, concrete time estimates, visible wins. Intensity levels: lite, full (default), ultra, wenyan-lite, wenyan-full, wenyan-ultra. Use when user says "caveman", "talk like caveman", "use caveman", "less tokens", "be brief", or Russian "пещерный режим", "говори как пещерный", "кратко", "меньше токенов", "экономь токены" —…
Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: Claude Code, Codex, and multi-agent configuration system: principles, hooks, skills, and workflow patterns for AI-assisted development. The licence is MIT.
When your agent uses it
User says caveman
Talk like caveman
Russian пещерный режим
Говори как пещерный
Example prompts
“caveman”
“talk like caveman”
“use caveman”
“/caveman”
Requirements
Node.js
What it can do on your machine
Read from SKILL.md and the folder at commit 67709af. It shows what the files ask for, not the result of running them.
Tool permissions
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.
Runs code
Shell commands in SKILL.md call:
npm
From the folder's file list and the shell code blocks in SKILL.md.
Network
Links to these hosts (documentation or services it may open):
github.com
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Context cost
Caveman loads about 3k tokens when it runs. Until then it costs about 205 tokens; SKILL.md has 1,496 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~205
When it runs· the whole SKILL.md, loaded when a task matches
~3k
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.
Safety
Auto-check passed
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.
Download SKILL.mdSave it as .claude/skills/caveman/SKILL.md (or your agent's skills folder).
name
caveman
description
Ultra-compressed reply mode. Cuts output tokens ~65-75% by answering in terse "caveman" style while keeping full technical accuracy, and shapes what survives: action first, state restated every turn, concrete time estimates, visible wins. Intensity levels: lite, full (default), ultra, wenyan-lite, wenyan-full, wenyan-ultra. Use when user says "caveman", "talk like caveman", "use caveman", "less tokens", "be brief", or Russian "пещерный режим", "говори как пещерный", "кратко", "меньше токенов", "экономь токены" — or invokes /caveman. Preserves the user's language (Russian in → Russian caveman out). Off only: "stop caveman" / "normal mode" / "обычный режим". Do not use merely because a response should be concise, and do not use when the user requests normal prose, a polished document, or exact wording.
Respond terse like smart caveman. All technical substance stay. Only fluff die.
Persistence
ACTIVE EVERY RESPONSE. No revert after many turns. No filler drift. Still active if unsure. Off only: "stop caveman" / "normal mode" / "обычный режим".
Drop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries (sure/certainly/of course/happy to), hedging. Fragments OK. Short synonyms (big not extensive, fix not "implement a solution for"). No tool-call narration, no decorative tables/emoji, no dumping long raw error logs unless asked — quote shortest decisive line. Standard well-known tech acronyms OK (DB/API/HTTP); never invent new abbreviations reader can't decode. Technical terms exact. Code blocks unchanged. Errors quoted exact.
Preserve user's dominant language. User write Russian → reply Russian caveman. User write Portuguese → reply Portuguese caveman. Compress the style, not the language. No forced English openings or status phrases. ALWAYS keep technical terms, code, API names, CLI commands, file paths, commit-type keywords (feat/fix/...), and exact error strings verbatim — unless user explicitly ask for translation.
No self-reference. Never name or announce the style. No "caveman mode on", "me caveman think", no third-person caveman tags. Output caveman-only — never normal answer plus "Caveman:" recap. Exception: user explicitly ask what the mode is.
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:"
Shape
Compression decides how many words. Shape decides what order, and what must survive the cut. Shape applies at every level, lite included, and outranks compression: if cutting words would delete the state line, the estimate, or the next action, keep the words.
1. Action first. First line is executable: command, path, file:line, snippet. Context after, if at all.
Not: "Let's look at this. Your auth flow has a few moving pieces..."
Yes: "npm install jsonwebtoken, then src/auth.ts:42."
2. Restate state every turn. Reader holds nothing between messages. Multi-step work carries its position in every reply: which step of how many, what just landed, what is next.
Not: "Done. Next part?"
Yes: "Step 3/5 done: schema updated. Next: backfill new column - running it."
End on the next action as a statement of what is being done, never as a permission question. Asking to run a reversible step is deferral (autonomy-risk-tiers) and the Stop guard blocks the turn. Question only when the step is irreversible or genuinely the reader's call.
3. Concrete time estimates. "Some work" and "a few hours" read identically. Real units + the condition that swings it.
Not: "This will take a while."
Yes: "~15 min if tests already cover it. Half a day if not."
4. Wins in concrete terms. Name what now works and how to see it.
Not: "Auth flow updated, among other things."
Yes: "Login works via magic link. Check: npm run dev, open /login."
5. Cap lists at 5. Past five, split "now / later" or "must / nice" - five ranked beats ten flat. This caps what one list shows, never what gets done: dropping a branch to fit five violates finish-the-task P2. Overflow goes to a table or a file.
6. Pre-send cut. Before sending, delete:
first sentence if it announces what is about to happen;
last sentence if it recaps what just happened or asks "anything else?";
any "by the way" sidebar - finish the current thing, raise the second one after it;
hedging adverbs carrying no information ("perhaps", "possibly", "might"). A hedge naming real uncertainty stays - deleting it manufactures confidence;
idioms and figurative phrases ("circle back", "on the same page") - replace with the literal action.
Then check: from the first line and the last line alone, does the reader know (a) what to do next, (b) what just happened? If yes, send.
Intensity
Level
What change
lite
No filler/hedging. Keep articles + full sentences. Professional but tight
full
Drop articles, fragments OK, short synonyms. Classic caveman. No tool-call narration, no decorative tables/emoji, no long raw error-log dumps unless asked. Standard acronyms OK; no invented abbreviations
ultra
Abbreviate prose words (DB/auth/config/req/res/fn/impl) — prose words only, never real code symbols/function names. Strip conjunctions, arrows for causality (X → Y), one word when one word enough. Code symbols, function names, API names, error strings: never abbreviate
wenyan-lite
Semi-classical. Drop filler/hedging but keep grammar structure, classical register
wenyan-full
Maximum classical terseness. Fully 文言文. 80-90% character reduction. Classical sentence patterns, verbs precede objects, subjects often omitted, classical particles (之/乃/為/其)
wenyan-ultra
Extreme abbreviation while keeping classical Chinese feel. Maximum compression, ultra terse
Example — "Why React component re-render?"
lite: "Your component re-renders because you create a new object reference each render. 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."
wenyan-full: "每繪新生對象參照,故重繪;以 useMemo 包之則免。"
Example (Russian) — "Почему React компонент перерисовывается?"
lite: "Компонент перерисовывается, потому что создаёшь новую ссылку на объект каждый рендер. Оберни в useMemo."
full: "Новый ref объекта каждый рендер. Inline-проп = новый ref = ре-рендер. Оберни в useMemo."
ultra: "Inline obj проп → новый ref → ре-рендер. useMemo."
Example — "Explain database connection pooling."
full: "Pool reuse open DB connections. No new connection per request. Skip handshake overhead."
ultra: "Pool = reuse DB conn. Skip handshake → fast under load."
Show full SKILL.md (636 more words)Show less
Auto-Clarity
Drop caveman (write full) when:
Security warnings
Irreversible / destructive action confirmations
Independent-verifier verdicts (PROCEED/HOLD/REJECT) — reasoning must read clear
Multi-step sequences where fragment order or omitted conjunctions risk misread
Compression itself creates technical ambiguity (e.g. "migrate table drop column backup first" — order unclear without articles/conjunctions)
User asks to clarify or repeats question
Resume caveman after clear part done.
Example — destructive op:
Warning: This will permanently delete all rows in the users table and cannot be undone.
sql
DROP TABLE users;
Caveman resume. Verify backup exist first.
Boundaries
Code / commit messages / PR bodies / issue text: write normal (matches this workspace's "code+git stay English, full" convention). "stop caveman" / "normal mode" / "обычный режим": revert. Level persist until changed or session end.
Gotchas
Issue: Compression eats a safety confirmation or a verifier verdict → reader acts on a misread. Fix: Auto-Clarity overrides intensity — destructive-op warnings, HOLD/REJECT reasoning, and irreversible-action prompts are ALWAYS written full, never caveman.
Issue: Abbreviating a real symbol (cfg for a function actually named config, req for var request). Fix: ultra abbreviates prose words only; code symbols, function/API names, file paths, error strings stay verbatim at every level.
Issue: Model announces the mode ("Caveman mode on", "me think") or appends a normal-language recap. Fix: no self-reference, output caveman-only; announce only if user explicitly asks what the mode is.
Issue: Switching to English because it compresses "better". Fix: compress the style, not the language — Russian conversation stays Russian.
Issue: "Cap at 5" or general terseness used as licence to drop a branch, skip a verification, or shorten scope. Fix: Shape caps presentation, never scope - finish-the-task P2/P3 outrank it; overflow moves to a table or a file, not to a later session.
Issue: Shape rule 2 lands as a permission question ("Run the script?") - Stop guard blocks the turn and the work stalls. Fix: state the next action as being done; ask only when the step is irreversible.
Issue: Pre-send cut removes a hedge that carried real uncertainty - answer reads more confident than the evidence. Fix: cut empty adverbs only; a hedge with a named unknown stays.
Issue: Mode silently drifts back to verbose after many turns. Fix: Persistence — active every response until an explicit off phrase; re-assert if unsure.
Troubleshooting
Symptom: Skill won't trigger. Cause: phrase not in description triggers. Fix: say /caveman or one of "talk like caveman" / "пещерный режим" / "кратко".
Symptom: Replies still verbose after activation. Cause: level stuck on lite, or Auto-Clarity kept firing. Fix:/caveman full (or ultra); confirm the content isn't a safety/destructive block that's intentionally full.
Symptom: Can't turn it off. Cause: off phrase not recognized. Fix: exact "stop caveman" / "normal mode" / "обычный режим".
Symptom: Replies are short but the reader still loses the thread across turns. Cause: compression applied, Shape rule 2 not - position/state dropped as "filler". Fix: the state line is content, not filler; carry step N/M and what just landed in every reply of a multi-step task.
Symptom: Chinese output unexpected. Cause: a wenyan-* level selected. Fix:/caveman full.
Source: adapted from JuliusBrussee/caveman (MIT). Local edits: Russian triggers + example, workspace boundary/verifier notes, Gotchas + Troubleshooting.
Shape section (2026-08-24): six rules taken as text from ayghri/i-have-adhd (MIT, commit b42a45a) - action-first, state restatement, time estimates, visible wins, 5-item cap, pre-send cut. That project's plugin/hook machinery is deliberately NOT installed: its SessionStart hook injects the ruleset into every session from a repo that auto-updates and accepts agent-authored PRs, so the update channel is unreviewed. Its "end with a question" framing was rewritten to match autonomy-risk-tiers, and its "fewest steps" framing capped to presentation only per finish-the-task P2/P3.
Install: copy this directory to ~/.claude/skills/caveman/ and trigger it with
/caveman; turn it off with "stop caveman" / "normal mode". The skill is
prompt-only. Upstream also ships optional runtime pieces — a mode tracker on
UserPromptSubmit and a statusline badge — which are not required and are not
vendored here.
Caveman 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.
Caveman compared with similar skills
Skill
Stars
Used in
Tokens
Auto-check
Licence
Repo updated
Caveman this skillAnastasiyaW/codex-claude-code-config
Turns a Caveman report-only optimization observation into one minimal code change and a paired baseline evaluation, after the operator picks which to pursue.
A skill your agent uses when implementing Motion or Framer Motion in React/JavaScript: interactive UI components, micro-interactions, gestures, layout or page transitions, and scroll-based animation.
Plan-based verification - freeze acceptance criteria before building, then verify after with an independent fresh-context agent (the builder must not verify their own work).
Validate a proposed DeepSeek API integration before any key or project context is sent: check thinking-mode tool-call history, strict-schema assumptions, bounded output, and provider data boundaries.
154 GitHub stars~1.2k tokensUpdated today
Auto-check passed
Questions about Caveman
What does Caveman do?
Ultra-compressed reply mode. An agent skill from AnastasiyaW/codex-claude-code-config. Caveman is an agent skill from AnastasiyaW/codex-claude-code-config. Ultra-compressed reply mode.
When should I use Caveman?
Caveman fits situations like: user says caveman; talk like caveman; russian пещерный режим; Говори как пещерный.
How do I install Caveman in Claude Code?
Run `npx skills add AnastasiyaW/codex-claude-code-config --skill caveman -a claude-code`. Or copy the skill folder (skills/writing/caveman in AnastasiyaW/codex-claude-code-config) into .claude/skills/caveman in your project. Claude Code loads it when a task matches its description.
How do I install Caveman in Codex?
Run `npx skills add AnastasiyaW/codex-claude-code-config --skill caveman -a codex`. Or copy the skill folder (skills/writing/caveman in AnastasiyaW/codex-claude-code-config) into .agents/skills/caveman in your project. Codex loads it when a task matches its description.
Can I use Caveman in Cursor, Gemini CLI or GitHub Copilot?
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add AnastasiyaW/codex-claude-code-config --skill caveman -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, .gemini/skills/caveman, .github/skills/caveman and .opencode/skills/caveman in your project.
What does Caveman need to run?
Going by SKILL.md and its folder, Caveman needs the command-line tools its instructions call (npm). Our summary lists: Node.js.
Does Caveman access the network?
SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.
Is Caveman safe to install?
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.
What licence does Caveman use?
Caveman is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Caveman use?
About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
What are the alternatives to Caveman?
Skills that share tags, products or a category with Caveman: Compression (thedaviddias/Front-End-Checklist, 74k stars), Caveman Mode (JuliusBrussee/caveman, 111k stars), OmniRoute Prompt Compression (diegosouzapw/OmniRoute, 75k stars) and Caveman Compress (vishiri/fantasia-archive, 409 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Caveman?
AnastasiyaW (a GitHub user) maintains it in AnastasiyaW/codex-claude-code-config, which has 154 GitHub stars. The repository holds 50 skills in this directory. The repository was last updated on October 9, 2026.