Skip to content

AI CODING ASSISTANTS

Claude Code Plan Mode Shortcut: What Shift+Tab Does

The Claude Code plan mode shortcut is Shift+Tab, but it is a cycle key, not a plan key. Here is the press count, why it never changes, and the terminals that eat it.

The Claude Code plan mode shortcut is Shift+Tab. It is not a key that means "plan mode", though — it advances the permission-mode cycle one step per press, and plan mode is one stop on that cycle. From the default Manual mode that is two presses; from accept-edits mode it is one. This guide covers the exact press count, why enabling auto mode or bypass permissions never changes it, and what to do when your terminal swallows the key. Measured against Claude Code 2.1.247 on 2026-08-30.

Key takeaways

  • Shift+Tab is the only keyboard shortcut into plan mode. It cycles: defaultacceptEditsplan.
  • From default it is two presses; from acceptEdits, one. That count is stable across every settings configuration we tested.
  • bypassPermissions and auto slot in after plan, so enabling them lengthens the tail of the cycle but never moves plan.
  • If Shift+Tab does nothing, a terminal multiplexer or IDE is intercepting it. Use --permission-mode plan or defaultMode instead.
  • Across 26 real session transcripts, only 4 of 1,180 mode-carrying turns were in plan mode, and bypassPermissions never appeared — the tail modes are rarer than the docs make them sound.

The plan mode shortcut in one key

Press Shift+Tab in an interactive Claude Code session and the status bar changes to show a different permission mode. Each press moves one step along a fixed cycle:

The Shift+Tab cycle (stock install)
 default  ──Shift+Tab──▶  acceptEdits  ──Shift+Tab──▶  plan  ──Shift+Tab──▶  (back to default)
 "manual mode on"          "accept edits on"            "plan mode on"

That is the whole mechanism. Plan mode is the third stop, and the shortcut is the same key you use to reach every other mode. For what plan mode then does — what it blocks, the approve options — see Claude Code plan mode. For every non-keyboard way in, on VS Code, JetBrains, desktop and web, see how to activate plan mode. For where it sits in the complete Claude Code guide, planning is the permission mode you drive with this key.

There is no dedicated plan mode key

People search for a "plan mode hotkey" expecting something like Ctrl+P. There isn't one, and that is a design choice, not a gap. The permission modes are a single ordered ring, and Shift+Tab is the ring's advance key. Binding plan mode to its own key would create two ways to be in a mode and one way to be confused about which press does what.

The practical consequence: you never press a key that means plan mode. You press Shift+Tab until the status bar says plan mode on, and one more press takes you out again.

How many presses reach plan mode

It depends only on where you start:

Starting modePresses to planSequence
default (Manual)2default → acceptEdits → plan
acceptEdits1acceptEdits → plan
plan0already there
bypassPermissions or auto1–2wraps forward to default, then in

A fresh session starts in default unless you set defaultMode, so the answer most of the time is two presses.

Why the count never changes before plan

Claude Code has five permission modes. Three are always in the cycle — default, acceptEdits, plan — and two are optional: bypassPermissions appears only in a session started with its enabling flag, and auto appears only when your account has auto mode. The optional modes are appended after plan:

Terminal
node scripts/check-plan-mode-shortcut.mjs
# → Stock install                    default -> acceptEdits -> plan                        (plan at index 2)
# → Bypass permissions available     default -> acceptEdits -> plan -> bypassPermissions   (plan at index 2)
# → Auto mode available              default -> acceptEdits -> plan -> auto                (plan at index 2)
# → Bypass + auto both available     default -> acceptEdits -> plan -> bypassPermissions -> auto  (plan at index 2)

Plan sits at index 2 in all four. Enabling an optional mode makes the cycle longer to get back to default, but it never adds a stop between default and plan. So the muscle memory — two presses from a fresh session — holds regardless of your plan or your flags.

The Shift+Tab permission-mode cycle showing plan mode two presses from default across four settings configurations
Plan sits two presses from default in every configuration; optional modes extend the tail after plan, not before it.

Read the status bar, do not count

Counting presses fails the moment you are not sure which mode you started in. The status bar is unambiguous — each mode has its own readout:

ModeStatus bar
defaultmanual mode on
acceptEditsaccept edits on
planplan mode on
bypassPermissionsbypass permissions on
autoauto mode on

Press Shift+Tab, glance at the bar, stop when it reads plan mode on. Overshooting into bypassPermissions or auto is the single most common mistake with this key, and it matters because those modes let edits through without asking.

When the shortcut does nothing: terminal conflicts

Shift+Tab is a fragile binding. It travels as the escape sequence ESC [ Z (often called "back-tab"), and several common environments claim it before Claude Code's input handler sees it:

EnvironmentWhat happensFallback
tmuxBound to previous-window, or the back-tab sequence is filteredclaude --permission-mode plan, or set permissions.defaultMode
GNU screenCaught by screen's own keytableclaude --permission-mode plan
VS Code integrated terminalShift+Tab bound to a workbench commandUse the extension's mode picker, or claudeCode.initialPermissionMode
JetBrains terminalIDE keymap intercepts it for un-indentRun claude in an external terminal, or --permission-mode plan
iTerm2 (custom key profile)Remapped to an escape sequence iTerm sends itselfReset the key mapping, or use /plan per turn

There is a sixth environment worth adding to that table, and it is not a terminal at all: on Windows the binding itself is conditional. The keymap resolves the mode-cycling chord to Shift+Tab only when the bundled runtime is new enough, and to Alt+M otherwise — one of several surprises in the full Claude Code keymap.

The reliable way around all of them is to not use the key at all:

Terminal
# Start the whole session in plan mode:
claude --permission-mode plan
.claude/settings.json
{
  "permissions": {
    "defaultMode": "plan"
  }
}

defaultMode: "plan" is honored in committed project settings — unlike auto, which Claude Code deliberately ignores there — so a repository where a wrong approach is expensive can start every session in plan mode without anyone touching Shift+Tab. And /plan as a prompt prefix plans a single turn with no keystroke and no mode change at all.

Adjacent keys worth knowing

Two more keys matter once you are in or approaching plan mode:

  • Ctrl+G opens the proposed plan in your $EDITOR before you approve it, so you can edit step 4 directly instead of describing the change back in prose.
  • Esc interrupts the current turn; at a pending plan approval prompt it dismisses the plan without approving and leaves you still in plan mode to keep planning.

Leaving plan mode is its own topic — the difference between discarding with another Shift+Tab and approving into an editing mode is covered in exit plan mode in Claude Code.

Best practices

  • 1. Learn it as "two presses from a fresh session." That is the stable number; it does not change with your plan or flags.
  • 2. Watch the status bar, not your finger. Stop at plan mode on. One more press is an editing mode.
  • 3. If the key is flaky, stop using it. --permission-mode plan for one session, defaultMode: "plan" for a repo, /plan for one turn.
  • 4. Commit defaultMode: "plan" where approach mistakes are costly. It removes the keystroke from the workflow entirely and it is honored in project settings.
  • 5. Keep Ctrl+G in reach. Editing the plan beats a round trip of "change step 4 to…".

Common mistakes

  • Mistake 1: Counting presses without checking the start mode. If a previous Shift+Tab left you in acceptEdits, two more presses overshoot plan. Read the bar.
  • Mistake 2: Overshooting into bypass or auto. These are one press past plan and they let edits through. This is why the status-bar readout exists.
  • Mistake 3: Assuming the key is broken when it is intercepted. tmux, screen, and IDE terminals eat Shift+Tab. The session is fine; the keystroke never arrived.
  • Mistake 4: Expecting a press to persist a plan. Cycling out of plan mode with Shift+Tab discards a proposed plan silently — there is no prompt and no recovery.

Conclusion

Use Shift+Tab to reach plan mode — two presses from a fresh session, one from accept-edits, and stop when the status bar reads plan mode on. Enabling auto mode or bypass permissions never changes that count, because those modes come after plan in the cycle. If a multiplexer or IDE is eating the key, switch to claude --permission-mode plan or a committed defaultMode: "plan" and forget the shortcut. Then read Claude Code plan mode for the decision rule on when planning is worth the extra turn, and exit plan mode for the two very different ways back out.

Frequently asked questions

What is the keyboard shortcut for plan mode in Claude Code?
Shift+Tab. It is not a dedicated plan-mode key — it advances the permission-mode cycle one step each press. From the default Manual mode, two presses reach plan mode; from accept-edits mode, one press. Watch the status bar for plan mode on rather than counting presses.
How many times do I press Shift+Tab to get to plan mode?
Twice from the default mode (default, then acceptEdits, then plan), or once if you are already in accept-edits mode. This does not change when auto mode or bypass permissions are enabled, because those slot into the cycle after plan, never before it.
Why is Shift+Tab not switching to plan mode?
Your terminal is probably intercepting the key. tmux, GNU screen, the VS Code integrated terminal, JetBrains terminals, and iTerm2 with a custom key profile can all bind or swallow Shift+Tab before Claude Code sees it. Start the session with claude --permission-mode plan instead, or set permissions.defaultMode to plan.
Is there a way to enter plan mode without the shortcut?
Yes. Prefix a single prompt with /plan to plan just that turn, start the session with claude --permission-mode plan, or set permissions.defaultMode to plan in .claude/settings.json. The VS Code extension also exposes a mode picker in the prompt box.
What does Shift+Tab do after plan mode?
It keeps cycling. One more press leaves plan mode — wrapping back to the default mode on a stock install, or moving to bypass permissions or auto mode if those are enabled for your session. There is no confirmation, and a proposed plan is discarded silently.

Muhammad Kashif

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