> ## Documentation Index
> Fetch the complete documentation index at: https://docs.caveman.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Caveman Skills, Hooks, and Plugins

> Install and manage Caveman response skills, lifecycle hooks, and agent plugins. Choose a voice mode, run focused skills, and control how Caveman integrates with your agent.

Caveman integrates with your agent through three mechanisms: response skills that change how the model writes, lifecycle hooks that run during agent events, and native plugins for agents without hook support. Each mechanism has different permissions and failure behavior. This page covers every built-in skill, how to install and remove them, and what to check before you trust an integration.

## Response skills

Response skills are instructions that tell the agent to communicate with less filler while preserving technical terms, code, error text, and necessary ordering. They affect generated prose. They do not compress request context or prove a token-reduction percentage.

Install the main skill through a supported skill installer:

```bash theme={"dark"}
npx skills add JuliusBrussee/caveman
```

Preview remote skill content before installation when the source is unfamiliar.

### Voice modes

Three sibling voice skills ship with Caveman. Each has a different output contract and can be switched at any time.

| Skill | Command | What it changes |
| - | - | - |
| `caveman` | `/caveman` | The voice. Default. Answer first, fluff gone, every fact kept. |
| `ultracave` | `/ultracave` | Grammar stripped. Fragments, one word when one word is enough, each fact once. |
| `megacave` | `/megacave` | Classical Chinese (文言文). Far fewer characters, technical terms verbatim. |

`/caveman ultra` and `/caveman wenyan` still work as aliases.

Auto-clarity: every skill drops to normal prose for security warnings, irreversible-action confirmations, step sequences a fragment could scramble, and a user who repeats a question. Resumes after the clear part.

Claude Code and the standalone OpenCode plugin read stored mode state. Other hosts answer from the conversation and mark it `(not tracked by this host)`.

Want Claude Code sessions to start with normal prose? Set `{"defaultMode":"manual"}` in `.caveman.json` for one project or `~/.config/caveman/config.json` for your user. You can also set `CAVEMAN_DEFAULT_MODE=manual`. Then `/caveman` activates the voice and `/ultracave` selects ultracave. Stop persists across compaction and resume; a fresh session starts off again. This startup policy is Claude Code-only: OpenCode keeps its caveman default because the installer also supplies static activation rules.

### Example output

Question: "Why does my React component re-render?"

Normal prose:

> Your component re-renders because you create a new object reference each render. Wrapping it in `useMemo` will fix the issue.

caveman:

> New object ref each render, so React re-renders. Wrap the prop in `useMemo`.

ultracave:

> Inline object prop, new ref, re-render. `useMemo`.

megacave:

> 每繪新生對象參照，故重繪；以 `useMemo` 包之則免。

## Focused skills

Focused skills perform a single task with a narrow contract. They do not change the global voice mode.

| Skill | Output contract | Side effects |
| - | - | - |
| `caveman-commit` | Terse Conventional Commit message | Does not stage, commit, or amend |
| `caveman-review` | Line-scoped review findings | Does not approve, request changes, or run linters |
| `caveman-help` | One-shot command card | Does not change active mode |
| `caveman-stats` | Session usage plus labeled estimates | Reads local Claude Code session logs and writes status suffix |
| `caveman-compress` | Shortened supported memory file plus backup | Reads, validates, and writes selected local file |
| `caveman-learn` | Consent-gated review of local findings | Applies only operator-approved edits |
| `caveman-explore` | Read-only `path:line` citations | Installs a restricted explorer agent |

`caveman-stats` mixes direct session counts with explicitly estimated baseline and rule-overhead fields. Estimated net can be negative. See evidence basis on each line instead of treating whole output as measured.

`caveman-compress` preserves original in data-directory backup and validates headings, code blocks, URLs, paths, and list structure. Those checks do not prove semantic equivalence. Review diff before replacing high-stakes instructions.

See [Exploration and delegation](/caveman/exploration-and-delegation) for explorer and Cavecrew boundaries.

## Hooks

The hook package supports agent lifecycle events including:

* session start
* user prompt submission
* command or pre-tool execution
* status-line updates

Hooks can add mode reminders, expose recovery context, and compact command output. They should not change user commands or hide an execution failure.

Hook state uses atomic writes and restrictive file permissions. Symlink checks prevent a project-controlled link from redirecting trusted state writes.

Install supported native hooks with setup commands documented in [Agent wrapping](/caveman/agent-wrapping).

## Native plugins

Some agents do not expose equivalent hooks. Their profiles use native plugins:

* Hermes Agent plugin
* OpenClaw plugin
* OpenCode plugin

OpenCode integration listens to native session and prompt events and can use project `AGENTS.md` instructions. Plugins remain subject to host agent's plugin permissions and version compatibility.

## Browser extension

The MV3 extension adds a visible Caveman Mode directive to outgoing messages on supported ChatGPT, Claude, and Gemini web interfaces. It runs locally and does not send analytics or prompt content to Caveman services.

Extension injection is visible before send. It does not silently rewrite an already-sent message. Browser site markup changes can break selectors, so extension tests cover supported hosts and fail without submitting content.

Build and test:

```bash theme={"dark"}
npm --prefix extension run package
npm --prefix extension test
```

Load generated unpacked extension through browser extension developer mode.

## Trust checklist

Before installing a skill, hook, or plugin:

1. Read source and requested permissions.
2. Confirm repository and commit or release source.
3. Check files it will modify.
4. Verify removal command or manual rollback path.
5. Test in a disposable project.
6. Avoid granting shell or browser access beyond feature need.

Skills are instructions and may influence model behavior. Hooks and plugins are code and can interact with local files or commands according to host permissions. Treat them accordingly.

## Removing integrations

Use agent-native setup removal where available:

```bash theme={"dark"}
caveman setup --agent-native claude --remove
```

Remove skill packages through installer or agent skill manager, and remove browser extension through browser settings. Review agent config for stale endpoint variables afterward.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.