Plan or go direct?
- One-sentence diff, clear scopeDirect executiontypo, log line, rename
- Several files, clear designShort plan, then executeconfirm the file list first
- Unsure how to approach itPlan modecompare options before editing
- Unfamiliar codeExplore, then planread first; decide after
What plan mode actually does
Plan mode is one of Claude Code’s permission modes. In it, Claude researches and proposes changes without making them: it reads files, runs shell commands to explore, and writes a plan, but it does not edit your source. Edits stay blocked until you approve the plan. It is a safety boundary as much as a thinking aid — nothing on disk changes while you and Claude agree the approach.
- Enter it by pressing
Shift+Tabuntil the status bar shows plan mode, by prefixing a single prompt with/plan, or by starting withclaude --permission-mode plan. - Make it the default for a project’s terminal sessions by setting
defaultModetoplanin.claude/settings.json. - Leave without approving by pressing
Shift+Tabagain. - Edit the plan yourself by pressing
Ctrl+Gto open it in your text editor before Claude proceeds.
When the plan is ready, Claude asks how to proceed. You can approve and let Claude continue with fewer prompts (in auto mode, or auto-accepting edits where auto mode isn’t available), approve and review each edit yourself, or say “No, keep planning” and tell Claude what to change. Approving exits plan mode and switches the session to the mode you chose, so Claude starts editing.
Explore, plan, implement, commit
- Exploreplan mode: read the relevant code, ask questions
- Planfiles to change, approach, risks; edit with Ctrl+G
- Implementapprove; Claude edits and runs the tests
- Commitdescriptive message, open a PR
“No, keep planning” sends you back to refine the plan before anything is edited
When planning pays for itself
The best-practices guide is direct that plan mode is useful but adds overhead. It names three situations where planning is most useful: when you’re uncertain about the approach, when the change modifies multiple files, and when you’re unfamiliar with the code being modified. It names the opposite too: for a small, clearly scoped fix such as correcting a typo, adding a log line or renaming a variable, ask Claude to do it directly.
| Signal in the scenario | Lean towards | Why |
|---|---|---|
| Change spans many files or services | Plan mode | Agree the file list and order before edits start |
| Several valid designs (library A vs B, sync vs async) | Plan mode | Choose an approach once, instead of discovering it mid-edit |
| Code nobody on the team knows well | Plan mode (explore first) | Reading before deciding avoids solving the wrong problem |
| Architectural impact, hard to reverse | Plan mode | Cheap to change a plan; expensive to unwind edits |
| Single file, clear stack trace, obvious fix | Direct | The plan would restate the fix |
| Well-specified small change with tests | Direct | Verification, not planning, is the useful safeguard |
What each approach buys you
Plan mode
- No source edits until you approve
- Surfaces options and risks before work starts
- Plan can be edited, and outlasts compaction
- Costs an extra round of review
Direct execution
- Fastest path for clear, contained changes
- Relies on tests and review after the edit
- Risky when the approach is still uncertain
- Easy to course-correct with
Escor/rewind
Combining them
The choice is not all-or-nothing. A common pattern is to plan the shape of a change, then execute it directly. For large cross-package work, the monorepo guide recommends planning first because Claude writes the plan to a file and Claude Code re-injects that plan file after each compaction, so the plan survives in a long session where conversation history may not.
Exploration itself can be delegated. When you ask for investigation, Claude can hand it to a subagent so file reads stay out of your main context. Claude Code has built-in read-only subagents for this: Explore, for searching and understanding a codebase, and Plan, which Claude uses during plan mode to gather context before presenting a plan. Both deny Write and Edit. Context isolation is covered in depth in 5.4.
Traps the wrong answers are built from
| Tempting but wrong | Do this instead |
|---|---|
| Using plan mode for a one-line, well-understood fix | Ask Claude to make the change directly and run a check. |
| Letting Claude start editing a multi-service change straight away | Plan first so the approach and file list are agreed before edits begin. |
| Treating the plan as final once approved | Say “No, keep planning” or edit with Ctrl+G until it is right; replan if discoveries change the approach. |
| Running a large exploration in the main conversation | Delegate it to a subagent such as Explore so only findings return. |
| Planning instead of verifying on small changes | For small edits, a runnable test is the safeguard that matters. |
You should now be able to
- Recognise the signals — scope, uncertainty, unfamiliarity, reversibility — that favour plan mode.
- Recognise small, well-scoped changes that should go straight to execution.
- Enter, use and exit plan mode, and approve or refine a plan.
- Combine planning with direct execution, and delegate exploration to a read-only subagent.
- Explain why a plan file helps in long sessions that compact.