# Caveman Mode Intensity Levels: Lite, Full, Ultra, and Wenyan Variants Explained

> Explore Caveman mode intensity levels: Lite, Full, Ultra, and Wenyan variants. Discover how each level progressively compresses assistant output for concise communication.

- Repository: [Julius Brussee/caveman](https://github.com/JuliusBrussee/caveman)
- Tags: deep-dive
- Published: 2026-07-08

---

**Caveman mode offers six intensity levels—lite, full, ultra, wenyan-lite, wenyan-full, and wenyan-ultra—that progressively compress assistant output by removing filler words, articles, and conjunctions, with wenyan variants providing classical Chinese terseness.**

The JuliusBrussee/caveman repository implements a token-saving "compression" style that transforms every assistant reply according to predefined intensity rules. Once activated, the mode persists for the entire session until explicitly disabled with `caveman off` or `normal mode`. The intensity definitions are stored in [`skills/caveman/SKILL.md`](https://github.com/JuliusBrussee/caveman/blob/main/skills/caveman/SKILL.md), while the activation logic resides in the OpenAI-compatible plugin system.

## Understanding Caveman Mode Intensity Levels

The skill defines six distinct intensity levels that determine how aggressively the output is compressed. Each level builds upon the previous one, stripping additional linguistic elements to maximize token efficiency.

### Lite Level

The **lite** level removes filler words and hedging language while maintaining professional grammar. Articles and full sentences remain intact, producing output that is tighter but still grammatically complete. According to the source file [`skills/caveman/SKILL.md`](https://github.com/JuliusBrussee/caveman/blob/main/skills/caveman/SKILL.md) (lines 32-41), this level is ideal for users who want cleaner text without sacrificing readability.

### Full Level (Default)

**Full** is the default intensity when no argument is specified. This level drops articles, allows sentence fragments, and substitutes short synonyms for longer phrases. The classic "caveman" style emerges here, characterized by telegraphic speech patterns that retain essential meaning while minimizing token count. The command definition in [`src/plugins/opencode/commands/caveman.md`](https://github.com/JuliusBrussee/caveman/blob/main/src/plugins/opencode/commands/caveman.md) specifies that commands without arguments fall back to this level.

### Ultra Level

The **ultra** level strips conjunctions when the cause-and-effect relationship remains clear from context. It prefers single words over phrases and explicitly avoids invented abbreviations or arrow symbols. As documented in the **Intensity** table in [`skills/caveman/SKILL.md`](https://github.com/JuliusBrussee/caveman/blob/main/skills/caveman/SKILL.md), ultra compression preserves semantic clarity while eliminating nearly all grammatical connectors.

### Wenyan Variants

The three **wenyan** variants apply the same intensity concepts to classical Chinese:

- **Wenyan-lite**: Semi-classical Chinese register that maintains grammar structure while eliminating filler and hedging.
- **Wenyan-full**: Full classical Chinese terseness achieving approximately 80-90% character reduction, utilizing classical particles and word order.
- **Wenyan-ultra**: Extreme abbreviation while preserving the classical Chinese aesthetic and feel.

These variants are processed identically to their English counterparts but output in classical Chinese syntax.

## How to Switch Between Caveman Intensity Levels

Users activate specific intensities using the `/caveman` slash command followed by the desired level. The implementation in [`src/plugins/opencode/plugin.js`](https://github.com/JuliusBrussee/caveman/blob/main/src/plugins/opencode/plugin.js) handles validation and persistence across conversation turns.

```markdown

# Activate a specific intensity

/caveman lite        # lighter compression (removes filler)

/caveman full        # classic caveman style (default)

/caveman ultra       # maximum terse compression

/caveman wenyan-lite # semi-classical Chinese

/caveman wenyan-full # full classical Chinese

/caveman wenyan-ultra# extreme classical abbreviation

/caveman off         # disable caveman mode

```

The command parser accepts a single argument defaulting to `full` when omitted. The validation logic ensures only the six defined levels are accepted before writing the state flag.

## Technical Implementation

The intensity system relies on several core files that handle definition, activation, and persistence:

- [`skills/caveman/SKILL.md`](https://github.com/JuliusBrussee/caveman/blob/main/skills/caveman/SKILL.md): Contains the official **Intensity** table (lines 32-41) and example outputs for each level.
- [`src/plugins/opencode/plugin.js`](https://github.com/JuliusBrussee/caveman/blob/main/src/plugins/opencode/plugin.js): Implements the core logic that reads the mode flag, validates intensity levels, and triggers the appropriate skill.
- [`src/hooks/caveman-mode-tracker.js`](https://github.com/JuliusBrussee/caveman/blob/main/src/hooks/caveman-mode-tracker.js): Emits session reminders and queries the current intensity level from the flag file.
- [`src/rules/caveman-openclaw-bootstrap.md`](https://github.com/JuliusBrussee/caveman/blob/main/src/rules/caveman-openclaw-bootstrap.md): Displays documentation on first activation, noting that `full` is the default intensity.

When a user switches levels, the plugin writes the intensity name to a flag file (`.caveman-active`) which subsequent hooks read to maintain consistency:

```python

# Detecting the current level (used by the mode-tracker hook)

from pathlib import Path
flag_path = Path('.caveman-active')
current = flag_path.read_text().strip()   # e.g. "ultra"

```

The JavaScript implementation similarly handles level persistence:

```javascript
// Inside a plugin handler (simplified)
if (command === '/caveman') {
  const level = args[0] || 'full';
  if (level === 'off') deactivateCaveman();
  else setCavemanLevel(level);   // writes the flag file
}

```

## Summary

- Caveman mode provides **six intensity levels**: lite, full, ultra, wenyan-lite, wenyan-full, and wenyan-ultra.
- **Full** is the default intensity when activating `/caveman` without arguments.
- The intensity definitions live in [`skills/caveman/SKILL.md`](https://github.com/JuliusBrussee/caveman/blob/main/skills/caveman/SKILL.md), while activation logic resides in [`src/plugins/opencode/plugin.js`](https://github.com/JuliusBrussee/caveman/blob/main/src/plugins/opencode/plugin.js).
- Levels persist for the entire session via a flag file read by [`src/hooks/caveman-mode-tracker.js`](https://github.com/JuliusBrussee/caveman/blob/main/src/hooks/caveman-mode-tracker.js).
- Wenyan variants provide classical Chinese compression matching the intensity of their English counterparts.

## Frequently Asked Questions

### What is the difference between Caveman lite and full intensity?

**Lite** removes filler words and hedging while keeping articles and complete sentences, maintaining professional readability. **Full** drops articles, allows fragments, and uses short synonyms, creating the classic telegraphic "caveman" style that reduces tokens more aggressively.

### How do I disable Caveman mode or switch back to normal output?

Execute the command `/caveman off` to deactivate the mode entirely, or explicitly request "normal mode" in your prompt. The plugin handler in [`src/plugins/opencode/plugin.js`](https://github.com/JuliusBrussee/caveman/blob/main/src/plugins/opencode/plugin.js) processes the `off` argument to clear the persistence flag and restore standard assistant formatting.

### What are the Wenyan intensity levels in Caveman mode?

The **wenyan** variants apply the same compression philosophy to classical Chinese: **wenyan-lite** maintains grammar structure with reduced filler, **wenyan-full** achieves 80-90% character reduction using classical particles, and **wenyan-ultra** provides extreme abbreviation while preserving the classical aesthetic. These are defined alongside English levels in [`skills/caveman/SKILL.md`](https://github.com/JuliusBrussee/caveman/blob/main/skills/caveman/SKILL.md).

### Where is the default Caveman intensity set?

The default intensity is hardcoded as `full` in the command parser within [`src/plugins/opencode/plugin.js`](https://github.com/JuliusBrussee/caveman/blob/main/src/plugins/opencode/plugin.js). When the `/caveman` command receives no arguments, it automatically falls back to `full` mode, a behavior also documented in [`src/rules/caveman-openclaw-bootstrap.md`](https://github.com/JuliusBrussee/caveman/blob/main/src/rules/caveman-openclaw-bootstrap.md) for first-time users.