UI/UX: "Bypass permissions" mode should be toggleable via Shift+Tab without requiring the startup flag
Title: UI/UX: "Bypass permissions" mode should be toggleable via Shift+Tab without requiring the startup flag
Description
Currently, the "bypass permissions" mode is not available in the interactive UI permission mode cycle (toggled via Shift+Tab) unless the claude session is explicitly started with the --dangerously-skip-permissions flag. This is inconsistent with other modes like "accept edits" and "plan mode," which can be toggled on and off from the UI at any time.
This feature request is to allow users to cycle into "bypass permissions" mode during a session, providing a more consistent and flexible user experience.
Steps to Reproduce
Scenario 1: Standard Startup (Current Behavior)
- Run
claudein your terminal. - Observe the initial prompt.
- Press
Shift+Tabrepeatedly to cycle through the available permission modes.
Actual Result:
The cycle toggles between the default state, "accept edits on," and "plan mode on." The "bypass permissions" option is completely absent from this cycle.
➜ claude
╭───────────────────────────────────────────────────╮
│ ✻ Welcome to Claude Code! │
│ │
│ /help for help, /status for your current setup │
│ │
│ cwd: /Users/user │
╰───────────────────────────────────────────────────╯
╭──────────────────────────────────────────────────────────────────────────────────╮
│ > Try "how do I log an error?" │
╰──────────────────────────────────────────────────────────────────────────────────╯
? for shortcuts
<< After pressing Shift+Tab >>
...
╭──────────────────────────────────────────────────────────────────────────────────╮
│ > Try "how do I log an error?" │
╰──────────────────────────────────────────────────────────────────────────────────╯
⏵⏵ accept edits on (shift+tab to cycle)
<< After pressing Shift+Tab again >>
...
╭──────────────────────────────────────────────────────────────────────────────────╮
│ > Try "how do I log an error?" │
╰──────────────────────────────────────────────────────────────────────────────────╯
⏸ plan mode on (shift+tab to cycle)
Scenario 2: Startup with Flag (Illustrates the feature exists)
- Run
claude --dangerously-skip-permissionsin your terminal. - Observe that the session starts in "bypass permissions" mode.
- Press
Shift+Tabrepeatedly.
Actual Result:
The "bypass permissions on" option is now included in the cycle, along with the other modes.
➜ claude --dangerously-skip-permissions
╭───────────────────────────────────────────────────╮
│ ✻ Welcome to Claude Code! │
│ │
│ /help for help, /status for your current setup │
│ │
│ cwd: /Users/user │
╰───────────────────────────────────────────────────╯
╭──────────────────────────────────────────────────────────────────────────────╮
│ > Try "fix lint errors" │
╰──────────────────────────────────────────────────────────────────────────────╯
⏵⏵ bypass permissions on (shift+tab to cycle)
Expected Behavior
When starting claude without any special flags, pressing Shift+Tab should cycle through all available permission modes, including "bypass permissions."
The cycle should be:
Default → Accept Edits → Plan Mode → Bypass Permissions → Default
This would allow a user to dynamically enable this mode from within the interactive session, which aligns with the behavior of the other modes.
Rationale
- Consistency: It makes the UI behavior for all permission modes consistent.
- User Experience: It's more convenient for users who might decide mid-session that a task is safe and want to bypass permissions without having to exit and restart the entire session.
- Discoverability: It makes the "bypass permissions" mode more discoverable to users who may not be aware of the
--dangerously-skip-permissionsflag.
While the "dangerous" nature of the mode is important, the UI could still present a warning the first time a user toggles this mode on in a session, preserving the safety aspect while improving flexibility.
Environment (Please fill in)
- Claude Code Version: [e.g., 1.0.86]
- Operating System: macOS
This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗