ExitPlanMode fails when plan mode toggled via Shift+Tab after starting with --dangerously-skip-permissions

Open 💬 3 comments Opened Mar 10, 2026 by pstaylor-patrick

Bug Description

When starting Claude Code with --dangerously-skip-permissions and then manually toggling into plan mode via Shift+Tab, the ExitPlanMode confirmation flow fails to transition back to act mode. Responding "yes" to the exit plan mode prompt does not actually exit plan mode — the session remains stuck in read-only plan mode.

Steps to Reproduce

  1. Start Claude Code with claude --dangerously-skip-permissions
  2. Press Shift+Tab to toggle into plan mode
  3. Give Claude a task — it creates a plan and calls ExitPlanMode
  4. Respond "yes" to confirm exiting plan mode
  5. Expected: Claude exits plan mode and begins implementation (act mode with bypass-permissions)
  6. Actual: Claude remains in plan mode. System reminders continue showing "Plan mode still active"

Environment

  • Claude Code version: 2.1.72
  • Terminal: Ghostty (minimal config, window-padding-y = 0,24 only)
  • Shell: zsh (macOS Darwin 23.6.0)
  • Alias used: claude --dangerously-skip-permissions (via shell alias)
  • skipDangerousModePermissionPrompt: true in ~/.claude/settings.json

Notes

  • No custom keybindings configured (~/.claude/keybindings.json does not exist)
  • No Ghostty input keybindings that could intercept the "yes" response
  • The issue appears to be in how Claude Code handles the permission mode state transition when plan mode was entered via Shift+Tab toggle (as opposed to starting with --permission-mode=plan)

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗