[BUG] CLI Flag Precedence: `--dangerously-skip-permissions` overrides `--permission-mode plan` preventing initial Plan Mode startup
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
When launching Claude Code with both --permission-mode plan and --dangerously-skip-permissions flags simultaneously, the application ignores the Plan Mode request and launches directly into "Bypass Permissions" mode.
The intent is to establish "Bypass Permissions" as the baseline permission set (for when the user exits Plan Mode), but to force the initial state to be Plan Mode. Currently, the dangerous flag takes precedence over the mode flag, forcing the session immediately into ⏵⏵ mode instead of ⏸.
What Should Happen?
When both flags are provided:
- The session should initialize in Plan Mode (
⏸). - Upon exiting Plan Mode (via
/exit-plan,EscEsc, or Shift+Tab), the session should revert to the mode dictated by the second flag (Bypass Permissions /⏵⏵), rather than the default "Ask" mode.
Error Messages/Logs
When running the alias `alias cld="claude --permission-mode plan --dangerously-skip-permissions"`:
➜ Desktop cld
▐▛███▜▌ Claude Code v2.1.12
▝▜█████▛▘ Opus 4.5 · Claude Max
▘▘ ▝▝ ~/Desktop
... [Startup hooks] ...
⎿ SessionStart:startup hook succeeded: Success
⎿ SessionStart:startup says: 🌐 🟢 check-claude-service-status: All Systems Operational
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
❯
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
cwd: /Users/user/Desktop
Model: Opus 4.5 v2.1.12
⏵⏵ bypass permissions on (shift+tab to cycle)
**Note:** The bottom status bar shows `⏵⏵ bypass permissions on` immediately, skipping Plan Mode entirely.
Steps to Reproduce
- Open a terminal.
- Run the following command:
``bash``
claude --permission-mode plan --dangerously-skip-permissions
- Observe the bottom status bar.
- Current Result: Status bar shows
⏵⏵ bypass permissions on. - Expected Result: Status bar shows
⏸ plan mode on.
Claude Model
None
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
2.1.12
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
Version: Claude Code v2.1.12
OS: macOS
Workaround found:
Passing /plan as a prompt argument (acting as an initial command) instead of using the mode flag achieves the desired state. The following command works correctly:
claude --dangerously-skip-permissions "/plan"
This successfully launches the tool in Plan Mode (⏸), and upon exiting Plan Mode, correctly drops the user into Dangerous Mode (⏵⏵). This confirms the internal state machine can handle this transition, suggesting the issue is strictly with how the CLI flags are parsed or prioritized during startup.
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗