# How to Stop Caveman Mode and Return to Normal Mode: Complete Guide

> Easily stop Caveman mode and return to normal. Learn the simple commands to deactivate Caveman mode and restore verbose output. Get the complete guide now.

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

---

**To stop Caveman mode, issue a command like "stop caveman", "turn off caveman", or "return to normal mode", which triggers the deactivation logic in [`src/hooks/caveman-mode-tracker.js`](https://github.com/JuliusBrussee/caveman/blob/main/src/hooks/caveman-mode-tracker.js) to delete the `.caveman-active` flag file and restore verbose output.**

Caveman mode persists for the entire session until explicitly disabled. According to the JuliusBrussee/caveman source code, the deactivation logic lives in the mode tracker hook and is documented in the rule files [`src/rules/caveman-openclaw-bootstrap.md`](https://github.com/JuliusBrussee/caveman/blob/main/src/rules/caveman-openclaw-bootstrap.md) and [`src/rules/caveman-activate.md`](https://github.com/JuliusBrussee/caveman/blob/main/src/rules/caveman-activate.md). Understanding how to stop Caveman mode ensures you can switch back to normal, detailed responses when the terse "caveman" style is no longer needed.

## How Deactivation Works in Caveman

When the agent receives a prompt, the hook defined in [`src/hooks/caveman-mode-tracker.js`](https://github.com/JuliusBrussee/caveman/blob/main/src/hooks/caveman-mode-tracker.js) evaluates it for **deactivation intents** before checking activation triggers. This `wantsOff` block uses specific regex patterns to identify commands to stop Caveman mode. If a match is found, the hook calls `recordModeChange` to log the transition, deletes the hidden flag file `.caveman-active` (and its backup `.caveman-active.prev`), and stops emitting the "CAVEMAN MODE ACTIVE" reminder on subsequent prompts.

Because deactivation logic executes *before* activation logic, phrases like "turn caveman mode off" are correctly processed as exit commands rather than being re-armed by activation regexes.

## Commands to Stop Caveman Mode

### Direct Deactivation Commands

The most reliable method uses action verbs followed by "caveman". The regex `/\b(stop|disable|deactivate|quit|exit|kill)\s+(the\s+)?caveman\b/` recognizes these patterns:

- `stop caveman`
- `disable caveman`
- `deactivate caveman`
- `quit caveman`
- `exit caveman`
- `kill caveman`

### Normal Mode Commands

You can request a return to standard behavior using phrases targeting "normal mode". The regex `/^(please\s+)?(go\s+|back\s+to\s+|switch\s+(back\s+)?to\s+|return\s+to\s+)?normal\s+mode\b/` ensures the phrase is interpreted as a command rather than a generic statement (e.g., it will not fire for "how do I exit vim normal mode"). Valid variations include:

- `normal mode`
- `go back to normal mode`
- `return to normal mode`
- `switch to normal mode`
- `please go back to normal mode`

Additionally, saying `normal mode` in conjunction with the word `caveman` (e.g., "normal mode caveman") triggers deactivation via the combined regex checking for `/\bnormal\s+mode\b/` and `/\bcaveman\b/`.

### Turn-Off Phrases

Specific phrasing using "turn off" matches the pattern `/\bturn\s+off\s+(the\s+)?caveman\b/`:

- `turn off caveman`
- `turn off the caveman`

### Slash Commands

For OpenCode integration documented in [`src/plugins/opencode/commands/caveman.md`](https://github.com/JuliusBrussee/caveman/blob/main/src/plugins/opencode/commands/caveman.md), use the slash command with an `off` or `stop` argument:

```text
/caveman off
/caveman stop

```

The slash-command parser treats these arguments as special cases that write the flag file with `off`, which the hook then processes to remove the activation status.

## What Happens When You Deactivate

Once a supported trigger is detected, the deactivation sequence executes in three steps:

1. **Logs the transition**: Calls `recordModeChange` to document the mode switch.
2. **Removes flag files**: Deletes `.caveman-active` and `.caveman-active.prev` from the session storage.
3. **Restores output**: Stops emitting the terse "CAVEMAN MODE ACTIVE" header and returns to normal, verbose response generation.

## Code Examples

Here are practical interactions showing how to stop Caveman mode:

```text
User → stop caveman
Agent → (switches back to normal style)

User → normal mode
Agent → (returns to normal, verbose output)

User → turn off caveman
Agent → (mode disabled)

User → /caveman off
Agent → (mode disabled)

User → /caveman stop
Agent → (mode disabled)

User → please go back to normal mode
Agent → (mode disabled)

```

## Summary

- **Caveman mode is session-persistent** and requires explicit deactivation commands to return to normal output.
- **Deactivation logic** resides in [`src/hooks/caveman-mode-tracker.js`](https://github.com/JuliusBrussee/caveman/blob/main/src/hooks/caveman-mode-tracker.js) and processes `wantsOff` intents before activation checks.
- **Valid commands** include "stop caveman", "disable caveman", "turn off caveman", "normal mode", and slash commands `/caveman off` or `/caveman stop`.
- **Mechanism**: The hook calls `recordModeChange`, deletes `.caveman-active` and `.caveman-active.prev`, and ceases the terse reminder emissions.
- **Precedence**: Deactivation logic runs before activation logic, preventing ambiguous phrases from re-arming the mode.

## Frequently Asked Questions

### Does Caveman mode time out automatically?

No. According to the source code in [`src/hooks/caveman-mode-tracker.js`](https://github.com/JuliusBrussee/caveman/blob/main/src/hooks/caveman-mode-tracker.js), Caveman mode remains active for the entire session until the user explicitly issues a deactivation command. There is no automatic timeout or idle disconnection feature.

### Can I reactivate Caveman mode after stopping it?

Yes. Once you stop Caveman mode by deleting the `.caveman-active` flag, you can reactivate it using the activation commands defined in [`src/rules/caveman-activate.md`](https://github.com/JuliusBrussee/caveman/blob/main/src/rules/caveman-activate.md), such as "start caveman" or "activate caveman". The activation logic runs after deactivation checks, so you can toggle between states freely.

### Why does "normal mode" not work in some contexts?

The phrase "normal mode" only triggers deactivation when it matches the command regex `/^(please\s+)?(go\s+|back\s+to\s+|switch\s+(back\s+)?to\s+|return\s+to\s+)?normal\s+mode\b/`. This pattern specifically excludes generic references like "vim normal mode" or "how do I enter normal mode" by requiring the phrase to appear at the start of the prompt or be preceded by specific turn-back verbs.

### Where is the deactivation logic implemented?

The core deactivation logic is implemented in the `wantsOff` block within [`src/hooks/caveman-mode-tracker.js`](https://github.com/JuliusBrussee/caveman/blob/main/src/hooks/caveman-mode-tracker.js). This file handles pattern matching, flag file deletion (`.caveman-active` and `.caveman-active.prev`), and logging via `recordModeChange`. Documentation for the command language is maintained in [`src/rules/caveman-activate.md`](https://github.com/JuliusBrussee/caveman/blob/main/src/rules/caveman-activate.md) and [`src/rules/caveman-openclaw-bootstrap.md`](https://github.com/JuliusBrussee/caveman/blob/main/src/rules/caveman-openclaw-bootstrap.md).