Skip to content

AI CODING ASSISTANTS

Exit Plan Mode in Claude Code: Every Way Out

There are two kinds of exit from plan mode in Claude Code: discard, which writes nothing, and approve, which commits the plan and drops you into an editing mode.

There are two fundamentally different ways to exit plan mode in Claude Code, and they are not variations on the same action. Discarding — another Shift+Tab — leaves plan mode without approving anything and writes nothing. Approving — picking one of the plan's approve options — commits the plan and drops the session into an editing mode. This guide maps every documented exit to whether it keeps the plan and which permission mode you end up in. Verified against Claude Code 2.1.247 on 2026-08-30.

Key takeaways

  • Discard exits (Shift+Tab past plan) write nothing and discard a proposed plan silently — no confirmation, no recovery.
  • Approve exits keep the plan and switch the session to an editing mode: auto, acceptEdits, or the default Manual mode, depending on the option.
  • Esc and No, keep planning are not exits — they cancel the current proposal and keep you in plan mode.
  • Approving also renames the session from the plan and, with showClearContextOnPlanAccept, can clear the research context in the same step.
  • Only the approve path leaves a record: across 26 real transcripts, 4 plan-mode turns produced exactly 1 ExitPlanMode tool call.

The two ways to exit plan mode

Every route out of plan mode is one of two kinds:

KindHowKeeps the plan?Lands you in
DiscardShift+Tab past planNo — discarded silentlyNext mode in the cycle
DiscardEsc at the approval promptNoStill in plan (dismisses the proposal only)
ApproveYes, and use auto modeYesauto (or acceptEdits / bypassPermissions)
ApproveYes, manually approve editsYesdefault (Manual)
RefineNo, keep planning / refine with UltraplanYes, as working stateStill in plan

The mechanics of the Shift+Tab cycle itself — press counts, why optional modes never move plan — are in the plan mode shortcut. What plan mode blocks while you are in it is in Claude Code plan mode. This article is only about the exit.

Discard: leave without approving

From plan mode, one more Shift+Tab cycles you out. On a stock install that wraps back to the default Manual mode; if bypassPermissions or auto are enabled for the session, it moves to those instead. Either way you are no longer in plan mode, and any plan Claude had proposed is gone.

This is the right exit when the plan is wrong and you want to start over in a normal editing mode. It is the wrong exit if you were only trying to dismiss this proposal and keep planning — for that, see cancelling versus leaving below.

Approve: which mode you land in

When a plan is ready, Claude presents it with a set of options. The two that actually exit plan mode are the first two, and the difference between them is the permission mode the session inherits:

Terminal
node scripts/check-exit-plan-mode.mjs
# → approve  Approve: Yes, and use auto mode        -> auto     [records plan]
# → approve  Approve: Yes, manually approve edits   -> default  [records plan]
# → discard  Shift+Tab (cycle past plan)            -> next mode in cycle
# → discard  Esc at the plan approval prompt        -> plan (proposal dismissed)

The first option's label and destination change with your account and how the session started:

First option readsWhenLands you in
Yes, and use auto modeAuto mode is availableauto
Yes, auto-accept editsAuto mode is not availableacceptEdits
Yes, and bypass permissionsSession started with bypass enabledbypassPermissions

Same key position, materially different consequences — read the label, not the position. The full decision context for what the session becomes after each is in auto mode vs plan mode.

Plan mode exit paths mapped to the permission mode each one leaves the session in
Every documented exit from plan mode, and the permission mode it leaves the session in.

What happens to the planning context

By default, approving a plan carries all the exploration that produced it into execution — every file Claude read to build the plan stays in context. The setting that changes this:

~/.claude/settings.json
{
  "showClearContextOnPlanAccept": true
}

With it enabled, the approval list gains a first option that approves the plan and clears the planning research context in one step. The reasoning is that the plan is the compressed conclusion of that research; the research itself is dead weight once the decision is made, and carrying it forward is exactly the kind of context that shows up as a slow session. This is covered in more depth, alongside where the plan text actually goes, in where are Claude Code plans stored.

Cancelling a plan versus leaving plan mode

"Cancel plan" and "exit plan mode" get searched as if they were the same thing. They are not:

  • Cancel the current proposal, keep planning: press Esc at the approval prompt, or choose No, keep planning. The proposal is dismissed, you stay in plan mode, and you can revise your request.
  • Leave plan mode entirely: Shift+Tab to discard and switch modes, or approve to commit and switch modes.

There is no separate "cancel" key that exits plan mode. If you want out without approving, the cancel is the discard — another Shift+Tab.

What approving records

Approving a plan has three side effects beyond the mode change:

  • The session is renamed from the plan content, unless you already set a name with --name or /rename. A session named after its plan is one you can find again with /resume.
  • An ExitPlanMode tool call is recorded in the session transcript. This is the only exit that leaves any trace — discarding writes nothing.
  • The session leaves plan mode immediately and Claude begins acting on the plan in the mode you chose.

The transcript evidence lines up with how rarely this path is taken. Across 26 session transcripts on this machine, 1,180 turns carried a permission mode and only 4 were in plan mode — and those 4 produced exactly 1 ExitPlanMode record. Every other time plan mode was entered, it was left by discarding, which is why nothing was written.

Best practices

  • 1. Decide discard-or-approve before you touch the key. They switch the session to different modes and only one keeps the plan.
  • 2. Save before you discard. Ctrl+G while the plan is on screen is the only trivial way to get the text out.
  • 3. Read the first approve option's label every time. It is auto mode, accept-edits, or bypass permissions depending on your account and session — not a fixed choice.
  • 4. Enable showClearContextOnPlanAccept. Approving then drops the research and keeps the decision.
  • 5. Use Esc / No, keep planning when you only meant to dismiss one proposal. That is not an exit and keeps you in plan mode.

Common mistakes

  • Mistake 1: Cycling out to "come back to it later." There is nothing to come back to — the plan is discarded the moment you leave. Fix: Ctrl+G and save first.
  • Mistake 2: Reading the approve dialog by position. The first option's consequence ranges from "review every edit" to "bypass permissions". Fix: read the label.
  • Mistake 3: Expecting plan mode to persist after approval. Approving exits it. If the next task also needs planning, cycle back with Shift+Tab or prefix /plan.
  • Mistake 4: Confusing Esc with an exit. Esc dismisses the proposal and leaves you in plan mode. To leave the mode you still need a Shift+Tab or an approval.

Conclusion

Treat the exit as a two-way fork: discard with Shift+Tab when the plan is wrong and you want a clean editing mode, or approve when it is right — and then read the label to know whether you are landing in auto mode, accept-edits, or Manual. Save anything worth keeping with Ctrl+G before you discard, because cycling out is silent and final. For the cycle mechanics see the plan mode shortcut; for where an approved plan's text lives afterward, see where are Claude Code plans stored.

Frequently asked questions

How do I exit plan mode in Claude Code?
Two ways. Press Shift+Tab to cycle out without approving, which discards any proposed plan and switches the session to the next mode in the cycle. Or approve a plan, which exits plan mode into whichever editing mode the approve option you chose describes. Approving is the only exit that records the plan.
How do I cancel a plan without leaving plan mode?
Press Esc at the plan approval prompt, or choose No, keep planning. Both dismiss the current proposal but keep you in plan mode so you can revise the request. Cancelling a plan and leaving plan mode are different actions.
Does exiting plan mode delete the plan?
If you exit by cycling out with Shift+Tab, yes — the proposed plan is discarded silently, with no confirmation and no recovery. If you exit by approving, the plan is kept and recorded in the session transcript. Press Ctrl+G to open the plan in your editor and save a copy before you cycle out.
What permission mode am I in after I approve a plan?
Whichever the approve option described. Yes, and use auto mode leaves you in auto mode; Yes, manually approve edits leaves you in the default Manual mode. When auto mode is unavailable the first option reads Yes, auto-accept edits and leaves you in accept-edits mode instead.
Does leaving plan mode change my context or session name?
Cycling out changes nothing but the mode. Approving exits plan mode, names the session from the plan content unless you already set a name, and — if showClearContextOnPlanAccept is enabled — can also clear the planning research context in the same step.

Muhammad Kashif

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