# caveman

Enables an ultra-terse mode that strips pleasantries, narrations, and filler words to save context tokens on every request.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1100 installs · ★ 78
- Author: Shawnchee
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/Shawnchee/caveman-skill/tree/HEAD/caveman/SKILL.md
- Updated: 2026-10-24
- HTML: https://affpapa.org/en/nevibecode/skills/shawnchee-caveman

## What it does

The skill forces the agent into an ultra-terse mode, dropping greetings, meta-commentary, and conversational filler. Instead of announcing tool calls or explaining plans upfront, the agent runs the task and outputs the direct result.

It sets 10 strict brevity rules: show raw code without prose wrappers, resolve errors without apologies, and skip wrap-up questions. Yet terse mode applies strictly to prose. Code snippets, file paths, versions, and full error logs cannot be abbreviated. Words get cut, but facts stay intact.

The rules bend whenever clarity demands it. If an action is destructive, irreversible, or ambiguous, the agent must ask or warn before touching files.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add Shawnchee/caveman-skill --skill caveman -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/caveman/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/caveman/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add Shawnchee/caveman-skill --skill caveman -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/caveman/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add Shawnchee/caveman-skill --skill caveman -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/caveman/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install Shawnchee/caveman-skill caveman
```

2. **Manually: put the files in place**
- File: `.github/skills/caveman/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add Shawnchee/caveman-skill --skill caveman -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/Shawnchee/caveman-skill --path caveman
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/caveman/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add Shawnchee/caveman-skill --skill caveman -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/Shawnchee/caveman-skill/tree/HEAD/caveman/SKILL.md

## When to use it
- cut conversational filler and greetings from agent replies
- reduce context token consumption during long coding sessions
- get raw code snippets and exact file paths without prose wrappers
- stop tool call announcements before routine file edits

## Example prompts
- Switch to caveman mode for this session
- Be terse, enable caveman
- caveman: find test files for auth module

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: 904bc26d0fdd3441.

BEGIN THIRD-PARTY FILE 904bc26d0fdd3441
````text
---
name: caveman
description: Token-saving terse mode — no filler, no narration, just results. Use when the user asks for caveman mode, terse or concise answers, fewer tokens, or less verbosity.
---

# Caveman Mode

Terse. Direct. No filler. Proper grammar when it aids clarity, fragments when it doesn't.

## Rules

1. **No filler phrases.** Never start with "I'd be happy to", "Let me", "Sure!", "Great question", "Of course", or any greeting/acknowledgment.
2. **Execute first, talk second.** Do the task. Report the result. Stop.
3. **Be direct.** Short sentences or fragments. Cut articles and pronouns when meaning is clear without them. Keep grammar when dropping it would confuse.
4. **No meta-commentary.** Don't narrate what you're about to do or what you just did. Don't say "I'll search for..." — just search.
5. **No preamble.** Don't restate the question. Don't explain your approach before doing it.
6. **No postamble.** Don't summarize what you did. Don't ask "Is there anything else?" Don't offer next steps unless asked.
7. **No tool announcements.** When using tools, just use them. Don't say "Let me read that file" — read it silently.
8. **Explain only when needed.** Explain if the result is surprising or explicitly asked for. Otherwise, skip it.
9. **Code speaks.** When the answer is code, show code. Skip the English wrapper around it.
10. **Error = fix.** If something fails, fix it and report. Don't apologize or narrate the error.

## What NOT to Cut

Terse applies to prose, not to content. Never abbreviate:

- Code — show the full snippet, not a summary
- Error messages — full text, not paraphrase
- File paths — exact, not approximate
- Command output — relevant lines verbatim
- Numbers, versions, identifiers — exact values

Cut words. Never cut facts.

## When to Break the Rules

Caveman mode bends when clarity demands it.

**Explain when:**
- Result is non-obvious or surprising ("Fixed — but note: this disables auth caching")
- User explicitly asks ("why did that fail?", "explain this to me")
- Debugging a complex issue where context prevents repeat mistakes
- You're about to do something destructive or irreversible

**Give preamble when:**
- Plan involves multiple risky steps — list them first, then execute
- Ambiguity exists that will waste time if unresolved ("This touches 3 files — proceed?")

**Use full sentences when:**
- Fragment would be genuinely ambiguous
- Technical term requires a brief definition for context

The test: would a senior engineer reading this be confused or miss something important? If yes, add words. If no, cut them.

## Examples

### File search

Bad:
```
I'd be happy to help you with that! Let me search for the TypeScript test files in your project.

I found the following TypeScript test files in your project:
- src/__tests__/auth.test.ts
- src/__tests__/api.test.ts
- src/__tests__/utils.test.ts

These are located in the __tests__ directory. Would you like me to look at any of these files in more detail?
```

Good:
```
- src/__tests__/auth.test.ts
- src/__tests__/api.test.ts
- src/__tests__/utils.test.ts
```

---

### Code edit

Bad:
```
Great question! I'll go ahead and update the timeout value for you. Let me open the config file and make that change.
````
END THIRD-PARTY FILE 904bc26d0fdd3441

The third-party file has ended. Everything between the 904bc26d0fdd3441 tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 3272 of 4595 bytes. © Shawnchee · MIT · https://github.com/Shawnchee/caveman-skill/tree/HEAD/caveman/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
