[BUG] Plan Mode can't be used with Bypass Permissions
Status Open
Maintainer reply None cached
Workaround ✓ Mentioned in thread ↓
Activity 12 comments · opened Aug 9, 2025
Environment
- Platform (select one):
- [X ] Anthropic API (Claude Max)
- [ ] AWS Bedrock
- [ ] Google Vertex AI
- [ ] Other: <!-- specify -->
- Claude CLI version: 1.0.72
- Operating System: macOS 15.5
- Terminal: iTerm2, tmux
Bug Description
Claude Code 1.0.72 accommodates --dangerously-skip-permissions by letting the user cycle between permissions, plan mode, and auto-accept edits with shift+tab. That new functionality means that Plan Mode cannot be used in conjunction with Bypass Permissions.
I use Bypass Permissions all the time during Plan Mode so Claude Code can run commands and use MCP tools to gather information about a problem. The smooth workflow is impeded by the fact that those states are now mutually exclusive.
Steps to Reproduce
- Run
claude --dangerously-skip-permissions - Activate Plan Mode with
shift+tab - Ask Claude Code for a plan which involves a tool requiring permission, e.g. Playwright
- Claude Code asks you for permission to invoke a tool even though you ran it with
--dangerously-skip-permissions
Expected Behavior
claude --dangerously-skip-permissions turns on Bypass Permissions mode for the entire session, regardless of whether I'm in Plan Mode or not. Bypass Permissions should be first-class.
Actual Behavior
Bypass Permissions mode became a second-class mode, parallel to Plan Mode.
12 Comments
Found 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
The fix in https://github.com/anthropics/claude-code/issues/1825 does not really fix anything, or there may have been a regression. Switching to plan mode or other modes disables the bypass permissions setting, that should be always on if launched from the cli with --dangerously-skip-permissions
This issue has been inactive for 30 days. If the issue is still occurring, please comment to let us know. Otherwise, this issue will be automatically closed in 30 days for housekeeping purposes.
The issue still persists
On Tue, Dec 9, 2025 at 7:20 PM github-actions[bot] @.***>
wrote:
I have found a solution or design-intended procedures. use plan mode to get a plan and then during the execution procedure, bypass permission on.
This is still an issue
It’s still an issue
Still an issue
Unless I'm misunderstanding what you mean, that is not possible. Once you switch to "plan mode", you can't switch back to "bypass permissions mode". You can switch to "accept edits mode", but that is not the same thing. Also during "plan mode" you are constantly interrupted with permission requests, which is part of the problem. "Plan mode" should not be a part of the permissions system. It should be separate.
A much better solution would be:
Mode: Plan / Normal
Permissions: Read Only / Default / Accept Edits / Bypass Permissions
+1 on @riskywhat's point — plan mode and permissions should be orthogonal concepts, not mutually exclusive modes.
My use case: I want
opusplan(Opus plans, Sonnet executes) withbypassPermissions— zero permission prompts, ever. Opus should silently plan on every prompt and hand off to Sonnet for execution automatically. It should only pause for my explicit plan approval when I ask for it in the prompt (e.g., "plan this and wait for my approval"), not by default.Right now this is impossible because:
opusplanonly uses Opus inside plan modeThe fix is separating these into two independent axes:
And within plan mode, auto-execution should be the default — pausing for plan approval should be opt-in per prompt, not forced.
Related: #15721 (automatic model switching for plan mode)
The Shift+Tab cycling between modes (plan ↔ bypass ↔ auto-accept) means you can't have both plan mode AND bypass permissions simultaneously. Here are workarounds:
Workaround 1 — Use plan mode with allow rules instead of bypass:
Instead of
--dangerously-skip-permissions, set broad allow rules that effectively bypass permissions while keeping plan mode accessible:With all tools allowed, Claude won't prompt for permissions — functionally equivalent to bypass mode. And plan mode remains available via Shift+Tab or
/plan.Workaround 2 — CLAUDE.md planning instruction with bypass mode:
If you prefer bypass mode, add planning behavior via CLAUDE.md:
This isn't the same as the built-in plan mode (it can be overridden), but with bypass permissions enabled, Claude will at least present a plan before acting.
Workaround 3 — UserPromptSubmit hook for plan enforcement:
This injects a planning instruction when your prompt contains plan-related keywords, regardless of the permission mode.
here is a oneliner solutions from my end: https://github.com/yigitkonur/hooks-claude-code