Part ofWhat Is Claude Code? The Complete Guide
In This Article
8 sectionsQuick answer
Claude Code plan mode is a read-only permission mode where Claude researches your codebase and writes a step-by-step plan without editing a single file. You enter it by pressing `Shift+Tab` until the status bar shows `plan`, or by prefixing one prompt with `/plan`. When the plan looks right, you approve it and Claude starts making the changes.
We run this site with Claude Code every day, and plan mode is the habit that separates a clean pull request from a tangle of half-right edits. Letting the agent plan before it types is the single cheapest way to get better output. Below is exactly how Claude Code plan mode works: how to enter it, what it can and can't touch, how to approve a plan, and why we plan first on anything bigger than a one-line fix.
What is Claude Code plan mode?
Plan mode tells Claude to research and propose changes without making them. Claude reads your files, runs read-only shell commands to explore the repo, and writes out a concrete plan — but it does not edit your source or run anything destructive. It is one of several permission modes that control how much Claude can do before it stops to ask you.
Think of it as the difference between "go fix this" and "tell me how you'd fix this, then I'll say go." On a small change, that gap is trivial. On a change that spans a dozen files, the plan is where you catch the wrong assumption before it becomes twelve wrong edits. New to the tool entirely? Start with our pillar guide, What Is Claude Code?, then come back here.
The mode indicator lives in the status bar (the same statusline that shows your model and context). When you're in plan mode, it says so; the default review-everything mode is labeled Manual.
How to enter Claude Code plan mode
There are three ways into Claude Code plan mode, and which one you reach for depends on whether you want it for one prompt or the whole session.
| Method | Command / key | Use it when |
|---|---|---|
| Cycle modes | Shift+Tab (or Alt+M) | You're mid-session and want to switch to planning now |
| Single prompt | /plan <your request> | You want just this one request planned, then back to normal |
| Start in plan mode | claude --permission-mode plan | You want the session to open in planning from the first prompt |
Shift+Tab cycles through default → acceptEdits → plan, and it's one of the interactive-mode keyboard shortcuts worth committing to muscle memory — it's how you move between every permission mode without leaving the keyboard. Press it again to leave plan mode without approving anything. In VS Code, JetBrains, Desktop, and on claude.ai/code the same modes appear as a clickable indicator or dropdown next to the prompt box.
What plan mode can and can't do
The whole point of plan mode is a hard read-only boundary, so it's worth being precise about where that boundary sits:
- Claude can: read any file, search the codebase, run read-only shell commands (
ls,git log,grep, test inspection), and write a plan into the conversation. - Claude can't: edit or create source files, or run commands that change state — those are exactly what it's deferring until you approve.
Two things surprise people. First, permission prompts still apply as they normally would, so even the exploration Claude does inside plan mode respects your allow and deny rules. Second, Claude Code plan mode is not a weaker "auto" mode — it's the most cautious working mode short of pure Manual review, which makes it the right default for unfamiliar code.
How to review and approve a plan
When Claude finishes researching, it presents the plan and asks how you want to proceed. This menu is the heart of plan mode, because approving is also where you choose how much oversight the execution gets:
| Approve option | What happens next |
|---|---|
| Approve and start in auto mode | Claude executes the whole plan with background safety checks, minimal prompts |
| Approve and accept edits | Claude makes the edits without prompting per-file; you review the diff after |
| Approve and review each edit | Claude asks before every change — maximum oversight |
| Keep planning with feedback | You send corrections and Claude revises the plan instead of executing |
| Refine with Ultraplan | Kicks the plan to a browser-based review session for deeper editing |
Approving exits plan mode and switches the session into whichever permission mode you picked, so Claude starts editing immediately. Two power moves we use constantly: press Ctrl+G to open the proposed plan in your text editor and rewrite it directly before approving, and lean on "keep planning with feedback" — a plan that's 80% right becomes 100% right in one correction, which is far cheaper than fixing the code afterward. Approving a plan even auto-names the session from the plan's content.
Claude Code plan mode vs the other permission modes
Plan mode only makes sense next to its siblings. Here's the full ladder of Claude Code permission modes, from most oversight to least:
| Mode | Runs without asking | Best for |
|---|---|---|
default (Manual) | Reads only; prompts for every edit and command | Sensitive work, learning the tool |
plan | Reads only; writes a plan, never edits | Exploring before you change anything |
acceptEdits | Reads plus file edits and common filesystem commands | Iterating on code you're actively reviewing |
auto | Everything, with a background safety classifier | Long tasks where prompts get tiring |
bypassPermissions | Everything, no checks | Isolated containers and VMs only |
That last mode, bypassPermissions, is the one people nickname Claude Code yolo mode (its flag is --dangerously-skip-permissions). Plan mode is its exact opposite: where yolo mode trusts Claude with everything, plan mode trusts it with nothing until you've read the plan. Most days, the smart pattern is to start in plan for the design and end in accept-edits for the execution.
How to set plan mode as your default
If you work in a large or unfamiliar repo, make planning the starting mode so you never forget. Add this to .claude/settings.json at the project root:
{
"permissions": {
"defaultMode": "plan"
}
}
Now every session in that project opens in plan mode, and you consciously step down to editing only when you've seen a plan you trust. It pairs well with a good CLAUDE.md and command setup — the more context Claude has up front, the sharper the plan it writes.
Why we plan first: the practitioner argument
Here's the pattern we see over and over. Ask Claude to "add caching to the API layer" and let it edit immediately, and it will make a reasonable guess about where — sometimes the wrong layer, sometimes duplicating something that already exists. Ask the same thing in plan mode and the plan reveals the guess: "I'll add a cache wrapper in lib/api.ts." That one line is where you say "no, we already have one in lib/cache.ts" — and you just saved a review cycle.
Claude Code plan mode shines brightest on three kinds of work: multi-file refactors where the change order matters, unfamiliar codebases where Claude's mental model might be wrong, and anything you'll have to defend in code review. For quick, obvious edits, skip it — Manual or accept-edits is faster. The skill is knowing which is which, and it's the same instinct behind getting Claude Code to build almost anything: the harder the task, the more the up-front plan pays off. Plan mode also composes with Claude Code skills, which can encode how you want a class of task planned.
Claude pricing at a glance
| Plan | Price |
|---|---|
| Free | $0 |
| Pro | $20 / month |
| Max | from $100 / month |
| API | Pay per token |
For the full breakdown of every plan, see our how much Claude costs guide. Plan mode itself is free — it's a built-in mode, not an add-on — but Claude Code needs a paid plan or API credits to run at all.
Frequently Asked Questions

Written by
InnovateTechie
Writing about Claude and the Anthropic toolkit — models, Claude Code, pricing, features, and fixes, in clear, practical, hands-on guides tested by daily use.
View all posts →




