What is Plan Mode in Claude Code? (and what it does not protect you from)
In one sentence:Plan Mode blocks Claude Code's file-editing tools until you approve a plan, but a shell-command prompt you approve during that time still runs for real.
What it actually is
Plan Mode is one of Claude Code’s permission modes: the settings that decide how often Claude has to stop and ask before doing something. In Plan Mode, Claude can read your files, search the codebase, and run read-only commands like git status or git log, but its file-editing tools (Edit and Write) are switched off entirely. Instead of touching code, Claude writes up a plan: what it intends to change, in what files, and why. Nothing gets written to disk until you look at that plan and approve it.
Think of it like asking a contractor to walk your house with a clipboard before you hand over any tools. They can open cabinets, take measurements, photograph the wiring, but the toolbox stays locked until you sign off on the scope of work.
Why your AI just did this
You typically land in Plan Mode one of three ways: you pressed Shift+Tab to cycle modes (default → acceptEdits → plan), you started a prompt with /plan, or the project has "defaultMode": "plan" set in .claude/settings.json. Claude uses the mode to separate “figure out what needs to change” from “actually change it,” useful before a multi-file refactor, an auth rework, a database migration, or anything where a wrong first move is expensive to undo. Once you approve the plan, the session automatically switches into whichever mode your approval named (manual review, auto mode, or bypass permissions), and that’s when edits actually start landing.
When you’ll run into it
You’ll see ⏸ plan mode on in the status bar while it’s active. After Claude finishes exploring, it presents the plan alongside a choice: approve and use auto mode, approve and review each edit manually, send the plan to Ultraplan for browser review, or keep planning. Press Ctrl+G and the plan opens in your default text editor so you can hand-edit it before Claude proceeds. If Claude wants to run something outside the built-in read-only command set (say, touch or rm to test a hunch), it still has to prompt you for that, even in Plan Mode. If you approve that prompt, the command runs. Press Shift+Tab again anytime to leave Plan Mode without approving anything; your exploration isn’t wasted, but no plan gets locked in.
What to check
- Read the actual plan before picking an approval option. “approve and use auto mode” hands Claude broad autonomy right after you click yes, not just for the first file.
- Watch for permission prompts that pop up during planning. A shell command you approve (like a stray
rmortouch) is a real file change, Plan Mode or not. - Don’t rely on
Edit(...)allow rules in.claude/settings.jsonto do anything while Plan Mode is on. Claude’s file-writing tools stay blocked regardless of allow rules until you exit the mode. - For sensitive work (auth, payments, migrations, anything touching production config), choose manual approval over auto mode after the plan, so each edit still gets your eyes.
- If you want Plan Mode as the default for a whole project instead of remembering
Shift+Tabevery session, setdefaultMode: "plan"in.claude/settings.json.
Say it like a dev
Instead of: “Just build it, I’ll deal with problems after.” Say: “Go into Plan Mode first and show me the plan before you touch any files.”
Instead of: “Wait, why did twelve files just change?” Say: “Stay in Plan Mode. Once you show me the plan, I’ll pick manual approval, not auto mode.”
Instead of: “Can you sandbox yourself while you look into this?” Say: “/plan: research how auth currently works and propose the change, don’t edit source yet.”
People actually ask
“Does Plan Mode actually prevent Claude from making edits?”
For Claude's dedicated file-writing tools, yes. Edit and Write are hard-blocked in Plan Mode, and no permission allow rule can override that until you leave the mode. What it doesn't block is a shell-command prompt: if Claude asks to run something like `touch` or `rm` and you approve that specific prompt, the change happens for real. Plan Mode restricts which tools run without asking, not what you're allowed to say yes to.
“How do you turn on Plan Mode in Claude Code?”
Press Shift+Tab to cycle through default → acceptEdits → plan mid-session, prefix a single prompt with /plan, or start the whole session with `claude --permission-mode plan`. You can also make it the project default by setting defaultMode: "plan" in `.claude/settings.json`.
“What happens after I approve a plan?”
Approving exits Plan Mode and switches the session into whatever mode your chosen option named: manual review, auto mode, or bypass permissions if that was already enabled. That's why file changes can start flowing immediately after you click approve, not gradually.
Related terms
Go deeper
Checked against
Glim can explain your sessions, live.
The app watches your coding agent and narrates it in plain words. Waitlist is open.