# Claude Code plan mode: how to ask for a plan before any edit

> Claude Code plan mode makes Claude research your code and write a plan without editing a file until you approve it. Press Shift+Tab until the status bar shows plan mode on, type /plan with a task, or start with `claude --permission-mode plan`. When the plan is ready you approve it with auto mode or with manual edit review, or you tell Claude to keep planning.

Mindket editors · Published 2026-11-04 · Updated 2026-11-05 · https://mindket.com/learn/claude-code/claude-code-plan-mode

## In short

- Plan mode reads files and runs shell commands to explore, writes a plan, and blocks edits until you approve that plan.
- Three ways in: `Shift+Tab`, `/plan` with an optional task, or `claude --permission-mode plan`.
- You can open the plan in your own text editor with `Ctrl+G` and change it before Claude starts.
- Plan mode is one of six permission modes, and the first `Shift+Tab` from auto mode lands on Manual, not plan.

## Before you start

You need Claude Code installed and a project folder open in a terminal, both from [lesson 1](https://mindket.com/learn/claude-code/install-claude-code). [Anthropic's common workflows page](https://code.claude.com/docs/en/common-workflows) recommends plan mode for changes you want to review before they touch disk, so pick a task that touches more than one file.

Run `claude --version` first. [Anthropic's permission modes page](https://code.claude.com/docs/en/permission-modes) says that with Claude Code v2.1.283 or later, new interactive terminal and VS Code sessions start in auto mode, in which a classifier model reviews actions instead of you. That starting point decides how many presses of `Shift+Tab` it takes to reach plan mode.

## Ask for a plan before any edit

Plan mode is a permission mode. You switch it on with `Shift+Tab` in the session, with `/plan` at the prompt or with a launch flag. The block below shows the last two, and the steps cover all three.

````bash
# Start a session in plan mode
claude --permission-mode plan

# Inside a running session, plan one task
/plan fix the auth bug
````

1. Open a terminal in your project and run `claude`. The status bar under the prompt names the active mode, such as `⏵⏵ auto mode on` or `⏸ manual mode on`.
2. Enter plan mode. Press `Shift+Tab` until the status bar shows `⏸ plan mode on`, or type `/plan` followed by a task. On Windows, Anthropic lists `Alt+M` as the replacement when `Shift+Tab` does nothing.
3. Describe the task. Name the symptom, the folder to look in and what done looks like. Claude looks through your files, runs shell commands, then writes a plan. It does not edit your source.
4. Read the plan. If a step is wrong, choose "No, keep planning" and tell Claude what to change. To edit the plan yourself, press `Ctrl+G` and it opens in your default text editor.
5. Approve the plan when it is right. Choose "Yes, manually approve edits" to review each edit, or "Yes, and use auto mode" to let Claude work on. Approving leaves plan mode, and Claude starts editing.

## What happens between the plan and the first edit

Claude researches, and you decide. Anthropic's page says plan mode tells Claude to research and propose changes without making them, and that edits stay blocked until you approve the plan.

Shell commands during planning follow the session. When auto mode is available and the `useAutoModeDuringPlan` setting is on, which it is by default, the classifier reviews the commands instead of asking you. Without auto mode, any command outside the built-in read-only set prompts you for approval.

One session type does not block edits at all. In an interactive terminal session with bypass permissions available, Claude is still told to plan without editing, but an edit it attempts runs without a prompt. Plan mode keeps its blocks in `claude -p` runs and in the VS Code chat panel.

**From /plan to the first edit**

1. You enter plan mode. `Shift+Tab`, `/plan` or the `--permission-mode plan` flag.
2. Claude researches. It opens the files it needs and runs shell commands. Edits stay blocked.
3. Claude presents the plan. It asks how to proceed. You can press `Ctrl+G` to edit the plan first.
4. You choose. Approve with auto mode, approve and review each edit, or keep planning.
5. Approval ends plan mode. Claude switches to the mode your choice names and starts editing.

## Plan mode among the six permission modes

The cycle, as [the page](https://code.claude.com/docs/en/permission-modes) documents it for the terminal: from auto, the first `Shift+Tab` switches to Manual, and the next ones run through accept edits and then plan. So plan mode is three presses from a session that started in auto. `/plan` skips the counting.

Not every mode is in that cycle. Auto appears when it is available, `bypassPermissions` appears only after you start with a flag or setting that enables it, and `dontAsk` never appears. You set `dontAsk` with `--permission-mode dontAsk`.

The other surfaces name plan mode too. In VS Code you click the mode indicator and pick Plan. The desktop app has a mode selector under the prompt box, and a Plan pick there applies to the current session only. On [claude.ai/code](https://claude.ai/code) the dropdown offers Accept edits, Plan and Auto.

| Mode | What runs without asking | Best for |
| --- | --- | --- |
| `default`, labeled Manual | Reads only | Reviewing every action yourself, sensitive work |
| `acceptEdits` | Reads, file edits and common filesystem commands such as `mkdir`, `touch`, `mv` and `cp` | Iterating on code you are reviewing |
| `plan` | Reads, plus classifier-approved commands when auto mode is available | Exploring a codebase before changing it |
| `auto` | Everything, with background safety checks | Long tasks, reducing prompt fatigue |
| `dontAsk` | File reads inside your working directories and pre-approved tools. Anything that would prompt is denied | Locked-down CI and scripts |
| `bypassPermissions` | Everything | Isolated containers and VMs only |

## How Claude Code's creator and his team use plan mode

Boris Cherny created Claude Code at Anthropic. In the setup thread he [posted on X](https://x.com/bcherny/status/2007179845336527000) in January 2026, he says most of his sessions start in plan mode. When the goal is a pull request, he goes back and forth with Claude until he likes the plan, then lets it edit, and it usually lands the change in one pass. He wrote "shift+tab twice" for the way in. Sessions now start in auto mode, so today it is three presses, or `/plan`.

At the end of that month he [shared the team's own tips](https://x.com/bcherny/status/2017742745365057733). One engineer has a first Claude write the plan and a second Claude review it as a staff engineer. Another goes back to planning the moment a task goes sideways, instead of pushing on. Both are the "No, keep planning" choice from the steps above, used before any edit lands.

By May 2026 his [number one tip](https://x.com/bcherny/status/2058519809214607704) was auto mode, because it ends permission prompts and lets him run several sessions side by side. That is the "Yes, and use auto mode" choice at the end of a plan. Take it once you trust the plan, and the manual choice while you still want to read each edit.

> If my goal is to write a Pull Request, I will use Plan mode, and go back and forth with Claude until I like its plan.
>
> Boris Cherny, Creator of Claude Code, Anthropic, [X](https://x.com/bcherny/status/2007179845336527000) (read 2026-11-05)

[![Boris Cherny (@bcherny) on X, 2 January 2026, tip 6 of his setup thread. Most sessions start in Plan mode (shift+tab twice). If my goal is to write a Pull Request, I will use Plan mode, and go back and forth with Claude until I like its plan.](https://mindket.com/blog/shots/x-bcherny-plan-mode-tip.webp?v=f84fd882034a)](https://x.com/bcherny/status/2007179845336527000)

Boris Cherny on X, 2 January 2026

[![Boris Cherny (@bcherny) on X, 31 January 2026, tip 2 from the Claude Code team. Start every complex task in plan mode. One person has one Claude write the plan, then they spin up a second Claude to review it as a staff engineer.](https://mindket.com/blog/shots/x-bcherny-team-plan-tips.webp?v=9903ac10da8b)](https://x.com/bcherny/status/2017742745365057733)

Boris Cherny on X, 31 January 2026

> Screenshots of X's own embeds of the posts, taken on 5 November 2026, with the time in UTC. X cuts the second post short with Show more. Select a screenshot to open the post on X.

## Common mistakes

- Pressing `Shift+Tab` once and typing a task. From auto it lands on Manual, not plan. Read the status bar for `⏸ plan mode on`, or type `/plan` instead.
- Approving on autopilot. The first approve option starts Claude in auto mode. Pick "Yes, manually approve edits" when you want to see each edit. Where auto mode is not available, the first option reads "Yes, auto-accept edits".
- Planning from a vague prompt. "fix the login bug" gives Claude little to plan from. Anthropic's rewrite of that prompt also asks for a failing test that reproduces the bug before the fix.
- Pinning plan mode where the extension does not look. A project's `.claude/settings.json` can set `defaultMode` to `plan`, but the VS Code extension never reads project settings for the starting mode. Use `claudeCode.initialPermissionMode` in your VS Code user settings.
- Trusting plan mode in a session started with bypass permissions. Its blocks are not enforced there, so use plain Manual mode if you need a real stop.

## Try it yourself

- Start `claude --permission-mode plan` in a project and ask for a plan to add input validation to one form or function. Check that the status bar shows `⏸ plan mode on` and that `git status` still lists no changed files.
- Press `Ctrl+G`, change one step in your editor, save, and return to the session.
- Choose "No, keep planning", say what to change, then approve with "Yes, manually approve edits" and read each edit.
- In a normal session, press `Shift+Tab` repeatedly and write down the status bar text for every mode you pass through.

## Next: slash commands

You can now make Claude think before it touches your code. [Lesson 3](https://mindket.com/learn/claude-code/claude-code-slash-commands) covers the slash commands, including `/plan`, and how to write your own.

Plan mode has a helper behind it: Plan is one of the built-in subagents, as our [subagents post](https://mindket.com/blog/claude-code-subagents) explains. A good plan also depends on what Claude already knows about the project, which is what a [CLAUDE.md file](https://mindket.com/blog/claude-md-file) is for.

## Check yourself

1. Which command starts a Claude Code session in plan mode from the terminal?

   A. `claude --plan`
   B. `claude --permission-mode plan`
   C. `claude -p plan`
   D. `claude /plan`

   Answer: B. The `--permission-mode plan` flag starts the session in plan mode, and `/plan` does the same inside a running session.

2. One step in the plan is wrong and you want to edit the plan yourself before Claude starts. What do you do?

   A. Choose "Yes, and use auto mode" and fix it later
   B. Press `Esc` and retype the whole task
   C. Run `/compact` to shorten the plan
   D. Press `Ctrl+G` to open the plan in your text editor

   Answer: D. `Ctrl+G` opens the plan in your default text editor, and you return to the session when you save.

3. Your session started in auto mode and you press `Shift+Tab` once. Which mode are you in now?

   A. Manual
   B. Plan
   C. Accept edits

   Answer: A. From auto, the first press lands on Manual, and plan mode is three presses away, so `/plan` saves the counting.

4. Claude shows its plan and you want to review every edit after you approve. Which choice do you pick?

   A. "Yes, and use auto mode"
   B. "No, keep planning"
   C. "Yes, manually approve edits"

   Answer: C. That choice approves the plan and keeps each edit in front of you, while the auto mode choice lets Claude work on without asking.

## Frequently asked questions

### How do I leave plan mode without approving a plan?

Keep pressing Shift+Tab. Each press moves to the next mode in the cycle, and the status bar names it. Choosing "No, keep planning" does the opposite and stays in plan mode. To plan again later, cycle back or start your next prompt with /plan.

### What does the /plan command do?

Typed alone, `/plan` only switches you into plan mode. With a description, as in `/plan fix the auth bug`, Claude also starts on that task at once. [The commands reference](https://code.claude.com/docs/en/commands) lists it with the rest.

### Is plan mode the same as auto mode?

No. Plan mode researches and proposes, and auto mode runs actions while a separate classifier model reviews each one. They meet in two places: approving a plan can start the session in auto mode, and in plan mode that classifier reviews shell commands when auto mode is available.

### How do I start every project session in plan mode?

Add `{ "permissions": { "defaultMode": "plan" } }` to the project's `.claude/settings.json`. After that, each terminal session you open in that project begins in plan mode. VS Code has its own setting, which the common mistakes above name.

### Can planning use a stronger model than editing?

Yes, with the `opusplan` alias. It uses Opus in plan mode and switches to Sonnet for execution. Pick it in `/model`, or start with `claude --model opusplan`. For a 1M context window in both phases, set `opusplan[1m]`. Setting that one with `/model` needs Claude Code v2.1.265 or later.

### Why does Shift+Tab do nothing on Windows?

Anthropic's page ties it to the Node or Bun runtime. When the runtime does not enable VT input mode, Claude Code uses Alt+M instead of Shift+Tab to cycle the permission modes. Try Alt+M, then watch the status bar for the mode name.

## Sources

- [Claude Code docs: Choose a permission mode](https://code.claude.com/docs/en/permission-modes) (read 2026-11-04)
- [Claude Code docs: Commands](https://code.claude.com/docs/en/commands) (read 2026-11-04)
- [Claude Code docs: Interactive mode](https://code.claude.com/docs/en/interactive-mode) (read 2026-11-04)
- [Claude Code docs: Common workflows](https://code.claude.com/docs/en/common-workflows) (read 2026-11-04)
- [Claude Code docs: Model configuration](https://code.claude.com/docs/en/model-config) (read 2026-11-04)
- [Claude Code docs: Best practices](https://code.claude.com/docs/en/best-practices) (read 2026-11-04)
- [Boris Cherny on X: tip 6, plan mode, 2 January 2026](https://x.com/bcherny/status/2007179845336527000) (read 2026-11-05)
- [Boris Cherny on X: tips from the Claude Code team, 31 January 2026](https://x.com/bcherny/status/2017742745365057733) (read 2026-11-05)
- [Boris Cherny on X: use auto mode, 24 May 2026](https://x.com/bcherny/status/2058519809214607704) (read 2026-11-05)

[Start lesson 3](https://mindket.com/learn/claude-code/claude-code-slash-commands)
