Guides

Using plan mode in Claude Code for large changes

The expensive mistake with a big change is not a bad line of code, it's a wrong approach discovered after forty files were edited. Plan mode makes Claude read the code and propose an approach first, so you can correct the direction while nothing has been touched.

What plan mode does

In plan mode Claude reads files, runs shell commands to explore, and writes a plan, but does not edit your source. Edits stay blocked until you approve the plan. It is one of Claude Code's permission modes, alongside default and acceptEdits; see permissions without clicking Allow 100 times for how the modes compare.

Three ways to enter it

MethodHow
Mid-sessionPress Shift+Tab until the status bar shows ⏸ plan mode on
One prompt onlyPrefix the prompt with /plan
At launchclaude --permission-mode plan

Press Shift+Tab again to leave plan mode without approving anything. The exact mode cycle depends on your version and which optional modes are enabled, so watch the status bar rather than counting presses.

Write a prompt that produces a useful plan

"Plan the migration" gets a vague outline. Name the goal, the constraints, and what the plan must include:

/plan Replace our custom date helpers in src/utils/date.ts with date-fns.

Constraints: no behavior changes, no new dependencies besides date-fns,
public function signatures stay the same.

In the plan, list: every file that imports the helpers, the order you'd
change them in, how we verify each step (which tests or commands), and
anything risky or ambiguous you want me to decide before you start.

The last line matters most. Asking Claude to surface open questions turns the plan into a short review conversation instead of a document you skim and approve.

Review and approve the plan

When the plan is ready, Claude presents it and asks how to proceed. The options are:

For a large or hard-to-undo change, "manually approve edits" for the first few steps is a reasonable way to confirm the plan is being followed before you loosen oversight. Approving exits plan mode; to plan again, press Shift+Tab or use /plan on the next prompt.

Press Ctrl+G to open the proposed plan in your default text editor and edit it directly before Claude proceeds. Deleting a step you don't want is faster than arguing it away in chat.

A workflow for large changes

Make plan mode the default for a project

For a repository where every change deserves review, such as payments, auth or migrations, set the default mode in the project's .claude/settings.json:

{
  "permissions": {
    "defaultMode": "plan"
  }
}

Terminal sessions in that project then start in plan mode. The VS Code extension doesn't read project settings for the starting mode; set claudeCode.initialPermissionMode to plan in your VS Code user settings instead. More on settings files in settings.json explained.

Things to know

If you want a hard guardrail on top of the plan, such as blocking edits to specific paths no matter what mode you're in, a PreToolUse hook does that. The free hook builder generates one without hand-writing the script.

Skip the setup: get the tested versions

Keelwork bundles 10 workflow skills, 5 tested safety hooks (including a full guard-bash and a secret scanner), 3 subagents and 5 CLAUDE.md templates, with a one-command installer that safely merges into your settings.

Get Keelwork — $24 →