# Running Multiple Caveman Intensity Levels in One Session: How Persistence Works

> Learn how to run multiple Caveman intensity levels in one session and understand persistent settings. Maximize your Claude Code experience today.

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

---

**Yes, you can switch between Caveman intensity levels freely within a single Claude Code session, and your chosen level persists for every subsequent response until you change it or end the session.**

Caveman is a Claude Code skill that applies minimalist communication rules through configurable intensity levels. According to the JuliusBrussee/caveman source code, the system maintains **session-wide persistence** via a flag file, allowing you to toggle between lite, full, ultra, or Wen-Yan variants without restarting your chat.

## How Caveman Stores Intensity Levels

Caveman persists your selected intensity level by writing to a flag file inside the Claude configuration directory. When you execute a `/caveman <level>` command, the activation hook in [`src/hooks/caveman-activate.js`](https://github.com/JuliusBrussee/caveman/blob/main/src/hooks/caveman-activate.js) records the change and updates the flag file using two key functions:

```javascript
// 1. Write flag file (symlink‑safe)
recordModeChange(claudeDir, mode);
safeWriteFlag(flagPath, mode);

```

The flag file location follows this pattern:

```bash
$CLAUDE_CONFIG_DIR/.caveman-active   # default: $HOME/.claude/.caveman-active

```

This file contains the current intensity level as a plain string (e.g., `lite`, `ultra`, or `full`), which the system reads on each subsequent interaction.

## Session Persistence Mechanics

Once activated, the intensity level remains **active for every response** in the current session. The [`skills/caveman/SKILL.md`](https://github.com/JuliusBrussee/caveman/blob/main/skills/caveman/SKILL.md) file explicitly documents this behavior:

> "ACTIVE EVERY RESPONSE. No revert after many turns… Level persist until changed or session end."

The hook retrieves the current mode via `getDefaultMode()` (defined in [`src/hooks/caveman-config.js`](https://github.com/JuliusBrussee/caveman/blob/main/src/hooks/caveman-config.js)), ensuring the most recent setting applies to each new reply. If the flag file or skill definition cannot be read—such as in minimal installations—the system falls back to a built-in minimal ruleset that still preserves the persistence logic, maintaining consistent behavior across edge cases.

## Switching Between Intensity Levels Mid-Session

You are not restricted to a single intensity level per session. Because the level is mutable, you can switch back and forth as needed. Each `/caveman <new-level>` command overwrites the flag file, and the next model reply immediately adopts the newly selected intensity table.

**Example workflow:**

```bash

# Start a Claude session (Caveman is off by default)

> Hello, how can I compress my React component?

# Turn on lite mode – this writes the flag file

> /caveman lite
CAVEMAN MODE ACTIVE — level: lite
...

# The next answer will be in lite style

> Why does my component re‑render?
lite: Your component re‑renders because you create a new object reference each render. Wrap it in `useMemo`.

# Switch to ultra mode in the same session

> /caveman ultra
CAVEMAN MODE ACTIVE — level: ultra
...

# Subsequent replies now use ultra style

> How can I improve DB connection pooling?
ultra: Pool reuse open DB connections. No per‑request handshake.

```

## Inspecting and Debugging the Flag File

To verify which intensity level is currently active, you can inspect the flag file directly:

```bash
$ cat ~/.claude/.caveman-active
ultra               # current intensity stored on disk

```

This is useful for debugging persistence issues or confirming that a mode switch succeeded before submitting your next query.

## Summary

- **Single storage location**: The `.caveman-active` flag file in your Claude config directory stores the current intensity level.
- **Session-wide persistence**: The level remains active for every response until explicitly changed or the session ends.
- **Dynamic switching**: You can run multiple Caveman intensity levels in one session by issuing `/caveman <level>` commands at any time.
- **Fallback protection**: If files are missing, the system defaults to a minimal ruleset while maintaining persistence logic.

## Frequently Asked Questions

### Can I use different intensity levels for different conversations in the same session?

No. Caveman operates on a **session-wide** scope. The intensity level stored in `.caveman-active` applies globally to all subsequent responses in your current Claude Code session. To use different styles for different tasks, you must switch levels using `/caveman <level>` before each query.

### What happens if the flag file is deleted during a session?

If the flag file is deleted mid-session, the activation hook in [`src/hooks/caveman-activate.js`](https://github.com/JuliusBrussee/caveman/blob/main/src/hooks/caveman-activate.js) triggers fallback logic. It uses a built-in minimal ruleset that preserves the persistence mechanism, though you may lose your specific intensity setting until you reissue a `/caveman` command.

### How do I check which Caveman intensity level is currently active?

Inspect the flag file at `$HOME/.claude/.caveman-active` (or `$CLAUDE_CONFIG_DIR/.caveman-active` if customized). The file contains the plain-text name of the active level (e.g., `lite`, `full`, `ultra`). Alternatively, observe the model's response style—Caveman prefixes ultra and lite responses with their level identifier.

### Does Caveman support custom intensity levels beyond lite, full, and ultra?

Yes. The system supports the **Wen-Yan variants** in addition to the standard lite, full, and ultra levels. You can activate any valid level defined in [`skills/caveman/SKILL.md`](https://github.com/JuliusBrussee/caveman/blob/main/skills/caveman/SKILL.md) using the `/caveman <level>` command, and the persistence mechanism handles them identically to the core levels.