The annoyance
I added a hook so Claude would stop running a risky command, and the next session started answering like a different model, and I blamed the model. The time after that it was a skill, and then an MCP server, and the prompt was the same while the behaviour was not.
I had the usual suspects. A stale CLI. A permission I had typed wrong. A CLAUDE.md that had grown too long. Then I started with claude --safe-mode and the same prompt was clean.
It is not a model change. It is the documented isolation switch.
What Anthropic actually says
The official CLI reference names the flag. Official text:
“Start with all customizations disabled to troubleshoot a broken configuration: CLAUDE.md, skills, plugins, hooks, MCP servers, custom commands and agents, output styles, workflows, custom themes, custom keybindings, status line and file-suggestion commands, LSP servers, and auto memory do not load.”
The same entry is explicit that this is not a stripped script runner:
“Authentication, model selection, built-in tools, and permissions work normally, which differs from `--bare`.”
The same page keeps --bare for the other job:
“Minimal mode: skip auto-discovery of hooks, skills, custom commands, subagents, plugins, MCP servers, auto memory, and CLAUDE.md so scripted calls start faster.”
Safe mode leaves authentication, model selection, built-in tools and permissions in place so we can still work. Bare mode skips auto-discovery so a scripted call starts faster, and it sets CLAUDE_CODE_SIMPLE rather than CLAUDE_CODE_SAFE_MODE. Reach for the wrong flag and we think we isolated the setup, when we have only made a thinner session.
The Debug your configuration page is the prove-it contract. Official text:
“If the problem disappears in safe mode, one of those surfaces is the cause; use the targeted checks above to find which. Safe mode still applies managed hooks and settings policy from your organization.”
The fix
Start the same work with customisations off. The flag is one line:
claude --safe-modeIf the strange behaviour is gone, the break is in the setup we just added — a hook, a skill, a plugin, an MCP server, a CLAUDE.md change, or one of the other surfaces the flag turns off. If it is still there, those customisations are not the cause. Stop swapping models to chase a file we never isolated.
Same family as standalone hooks: the file looks finished, the session looks broken, and the documented isolation switch is a different one.
Prove it
Reproduce the odd session first. Then start safe mode and ask the same thing.
# Reproduce the strange behaviour in a normal session first.
claude --safe-mode
# Ask the same thing.
# If the problem is gone, reintroduce hooks, skills,
# plugins, MCP and CLAUDE.md one at a time.
# If it remains, those customisations are not the cause.
# Do not use --bare: that flag skips auto-discovery for scripts.If the problem remains on a managed machine, the debug page's next step is a cleaner directory: cd /tmp && CLAUDE_CONFIG_DIR=/tmp/claude-clean claude.
Checklist
- Reproduce the strange session in a normal
claudelaunch. - Start
claude --safe-modeand ask the same thing. - If the problem is gone, treat it as a customisation: reintroduce hooks, skills, plugins, MCP and
CLAUDE.mdone at a time. - If the problem remains, stop blaming those customisations. Authentication, model selection, built-in tools and permissions still load.
- Do not use
--barefor this check. That flag is the scripted, skip-auto-discovery mode.
Why it fails
I treat a weird session as a model problem because the model name is the thing I can see, and the last hook I added is the thing I forgot. Safe mode turns the customisations off so we can see which side of the line the break sits on. The file looks finished. The isolation switch is a different one.
Same family as nested CLAUDE.md never loads at start and CLAUDE.local.md is personal — the file is in the tree, the session looks wrong, and the documented load rule is the one we skipped. Standalone hooks is the other silent miss: the setup looks loaded, and nothing throws until we isolate it.
If you want to run this with other operators rather than on your own, we are doing that in the public Skool community, and that is https://www.skool.com/navaigate.
Sources
From idea to operation
Make the next AI decision concrete.
NavAIgate helps leadership teams identify high-value AI opportunities, prove them safely and turn the winners into working systems.
