Skip to content

AI CODING ASSISTANTS

How to Activate Plan Mode in Claude Code

Every documented way to activate plan mode in Claude Code, across CLI, VS Code, JetBrains, Desktop, and web. Plus the one method everyone lists that is not built in.

Press Shift+Tab until the status bar reads ⏸ plan mode on. That is the fastest answer, and it covers one of ten documented controls across five surfaces. This guide lists every way to activate plan mode in Claude Code, in the CLI, VS Code, JetBrains, the desktop app, and on web and mobile, along with which ones persist across sessions and which apply to a single turn. It also covers /visual-plan, which appears on most lists like this one and is not a Claude Code command. Checked against Claude Code v2.1.223 in August 2026.

Key takeaways

  • Shift+Tab cycles default then acceptEdits then plan. Optional modes slot in after plan, never before it.
  • /plan plans a single turn without changing the session's mode.
  • defaultMode: "plan" is honored in project settings, unlike auto, which Claude Code deliberately ignores there.
  • In the desktop app a selected mode is remembered per folder, with plan as the documented exception: it applies to the current session only.
  • /visual-plan is a third-party skill, not a built-in command.

How to activate plan mode in Claude Code

Every surface exposes plan mode differently, and the controls differ in how long they last. The table maps each one.

SurfaceControlScope
CLIShift+Tab cycleSession, until changed
CLI/plan prefixOne turn
CLI--permission-mode planSession
AnydefaultMode in settingsPersistent
VS CodeMode indicatorSession
VS CodeclaudeCode.initialPermissionModePersistent
JetBrainsIDE terminal, same as CLISession
DesktopMode selectorCurrent session
Web and mobileMode dropdownSession

For what plan mode does once you are in it, and the decision rule for when it earns its extra turn, see Claude Code plan mode. For how planning fits alongside CLAUDE.md, hooks, and subagents, see the complete Claude Code guide.

The four CLI methods

Cycle with Shift+Tab. The cycle runs default, acceptEdits, plan. The status bar shows the active mode, and plan mode reads ⏸ plan mode on. Manual mode, the default value in that cycle, shows a gray ⏸ manual mode on badge from v2.1.203.

Two modes are not in the cycle by default. bypassPermissions appears only after you start the session with an enabling flag, and auto appears when your account meets the auto mode requirements. Both slot in after plan, with bypassPermissions first and auto last, so enabling them never changes how many presses reach plan mode from default — the press count and the terminals that intercept the key are their own topic.

Prefix a single prompt with /plan. This plans one turn without changing the session's mode, which is the right choice when you want one considered answer and then normal behavior back.

Start the session in it.

Terminal
claude --permission-mode plan

The same flag works with -p for non-interactive runs.

Set it as the default. Covered in its own section below, since it behaves differently per surface.

VS Code and JetBrains

In VS Code, click the mode indicator at the bottom of the prompt box and pick Plan. The extension maps its labels to config values rather than showing the raw names:

VS Code labelMode
Manualdefault
Edit automaticallyacceptEdits
Planplan
Autoauto
Bypass permissionsbypassPermissions

Before v2.1.205 the extension labelled plan as Plan mode and auto as Auto mode, so a screenshot in an older tutorial will not match your UI.

To start every VS Code session in plan mode, set claudeCode.initialPermissionMode in VS Code settings or use the extension settings panel. That setting does not accept auto; to start in auto mode you set defaultMode in user settings instead.

JetBrains needs no separate instructions. The plugin runs Claude Code in the IDE terminal, so Shift+Tab and --permission-mode work exactly as they do in the CLI.

Desktop

Use the mode selector next to the send button. The desktop app reads the same settings files as the CLI, so defaultMode applies to new local sessions there too.

One behavior is specific to desktop and worth knowing before you rely on committed settings: a mode picked in the mode selector is remembered per folder and takes precedence over defaultMode for that folder. Plan is the exception. Picking it applies to the current session only.

That exception is a safeguard rather than an inconsistency. It means one person selecting plan mode in the UI cannot silently override a committed team default, and equally that a committed defaultMode: "plan" is not permanently displaced by one click.

Web, mobile and Remote Control

Use the mode dropdown next to the prompt box at claude.ai/code or in the mobile app. Which modes appear depends on where the session runs.

Session typeModes offered
Cloud sessionsAccept edits, Plan, Auto
Remote ControlManual, Accept edits, Plan

Cloud sessions pre-approve file edits regardless of mode, which is why the dropdown shows Accept edits where a local session would show Manual. Bypass permissions is not available in cloud sessions at all.

Remote Control sessions run on your own machine and are driven from the app. The dropdown reflects the mode the local session is actually in, including a mode you set from the terminal, and updates in both directions. You can also set the starting mode when launching the host:

Terminal
claude remote-control --permission-mode plan

Remote Control requires signing in with a claude.ai account. API keys are not supported for it.

Making plan mode the default

.claude/settings.json
{
  "permissions": {
    "defaultMode": "plan"
  }
}

Commit that and everyone on the repository starts sessions in plan mode.

This is the one place where plan mode behaves better than auto mode. Claude Code v2.1.142 and later deliberately ignore defaultMode: "auto" in .claude/settings.json and .claude/settings.local.json, so a repository cannot grant itself auto mode. No such restriction applies to plan, because starting in a mode that blocks edits cannot escalate anyone's permissions. If you have hit the auto version of this and been confused by the silent failure, that behavior is covered in auto mode is unavailable for your plan.

Why visual-plan is not on this list

Search for how to activate plan mode and you will find /visual-plan presented as a Claude Code command. It is not one.

/visual-plan is a third-party skill published by Builder.io. It generates plans as MDX with diagrams, interactive API specs, annotated code, and zoomable wireframes, and it offers review modes such as UI-first and prototype-first. It is a genuinely useful tool and it appears nowhere in Anthropic's documentation, because it is something you install as a skill rather than something Claude Code ships with.

The built-in equivalents are plan mode itself for terminal review, and ultraplan for reviewing a long plan in a browser with inline comments on individual sections. If you want the richer artifact that /visual-plan produces, install it deliberately as a skill rather than expecting it to be available.

How to leave plan mode

Three exits, and they do different things — the full map of which permission mode each one lands you in is exit plan mode in Claude Code.

  • Shift+Tab again leaves plan mode without approving. The plan is discarded and the session returns to cycling from default.
  • Approving a plan exits plan mode into whichever mode the approve option describes. The options are Yes, and use auto mode, which reads Yes, auto-accept edits when auto mode is unavailable to your account, Yes, manually approve edits, and No, keep planning.
  • Ctrl+G does not exit, but it opens the proposed plan in your text editor so you can edit it directly before Claude proceeds.

Enabling showClearContextOnPlanAccept adds a first approve option that accepts the plan and clears the planning context. Approving also names the session from the plan content automatically, unless you already set a name with --name or /rename. Nothing here writes the plan to disk, which surprises people often enough that it has its own article.

Common mistakes

  • Pressing Shift+Tab too many times. With optional modes enabled the cycle is longer, and overshooting plan lands you in bypassPermissions or auto. Read the status bar rather than counting presses.
  • Expecting /plan to change the session. It plans one turn. The next prompt runs in whatever mode the session was already in.
  • Expecting plan mode to persist after approval. Approving exits it. This is the single most common misunderstanding about the mode.
  • Typing /visual-plan and assuming Claude Code is broken. It is a skill you have to install first.
  • Assuming a desktop selection sticks. Every other mode is remembered per folder; plan applies to the current session only.

Conclusion

Use Shift+Tab for ad-hoc planning, /plan when you want one considered answer without changing the session, and a committed defaultMode: "plan" for any repository where a wrong approach costs more than a wasted turn. On VS Code set claudeCode.initialPermissionMode so you are not clicking the indicator every session. If a guide tells you to run /visual-plan, install the skill first, because it is not built in. For when planning is worth the extra turn at all, see plan mode; for how it interacts with the classifier, see auto mode versus plan mode.

Frequently asked questions

How do I change to plan mode in the Claude Code CLI?
Press Shift+Tab to cycle through permission modes until the status bar reads plan mode on. The cycle runs default, then acceptEdits, then plan. You can also prefix a single prompt with /plan to plan just that turn, or start the whole session in it with claude --permission-mode plan.
How do I use plan mode in Claude Code for VS Code?
Click the mode indicator at the bottom of the prompt box and choose Plan. To start every session in it, set claudeCode.initialPermissionMode in your VS Code settings or use the extension settings panel. Before v2.1.205 the extension labeled this option Plan mode rather than Plan.
Does plan mode stay on after I approve a plan?
No. Approving a plan exits plan mode and switches the session into whichever mode the approve option you picked describes, so Claude can start editing. To plan again, cycle back with Shift+Tab or prefix your next prompt with /plan. Planning is a phase, not a persistent session setting.
Is /visual-plan a Claude Code command?
No. It is a third-party skill published by Builder.io that generates rich visual plans as MDX with diagrams and wireframes. It appears nowhere in Anthropic's documentation and is not built into Claude Code. You install it as a skill. The built-in equivalents are plan mode itself and ultraplan.
Can I set plan mode as the default for a whole project?
Yes. Set permissions.defaultMode to plan in .claude/settings.json and commit it, so everyone on the repository starts sessions in plan mode. Unlike auto, which Claude Code deliberately ignores from project settings, plan is honored there. In the desktop app a mode picked in the selector takes precedence, with plan as the exception.

Muhammad Kashif

Founder and editor of Devventa, covering AI coding assistants, Next.js and the modern AI development stack.