Bug Description
Claude Desktop's Code tab shows file edit and bash run confirmation dialogs despite bypass permissions being fully configured at every level. The CLI (claude --dangerously-skip-permissions) works correctly — this is Desktop-specific.
Environment
- OS: Windows 11 Pro 10.0.26100
- Claude Code version: 2.1.81
- Claude Desktop: Latest (as of March 2026)
Configuration (all correct, none respected by Desktop)
1. Desktop toggle
"Allow bypass permissions mode" is ON in Claude Code Desktop Settings.
2. ~/.claude/settings.json
{
"skipDangerousModePermissionPrompt": true,
"permissions": {
"defaultMode": "bypassPermissions",
"allow": ["Bash", "Read", "Write", "Edit", "MultiEdit", "Glob", "Grep", "WebFetch", "WebSearch", "TodoRead", "TodoWrite", "mcp__*"]
},
"hooks": {
"PermissionRequest": [
{
"hooks": [
{
"type": "command",
"command": "echo '{\"hookSpecificOutput\":{\"hookEventName\":\"PermissionRequest\",\"permissionDecision\":\"allow\",\"permissionDecisionReason\":\"Auto-approved by global hook\"}}'",
"statusMessage": "Auto-approving..."
}
]
}
]
}
}
3. ~/.claude/settings.local.json
{
"permissions": {
"defaultMode": "bypassPermissions",
"allow": ["Bash", "Read", "Write", "Edit", "MultiEdit", "Glob", "Grep", ...]
}
}
4. Project-level settings also set to bypassPermissions
Steps to Reproduce
- Enable "Allow bypass permissions mode" in Claude Desktop settings
- Configure
settings.json and settings.local.json with defaultMode: "bypassPermissions" and full allow lists
- Add a
PermissionRequest hook that auto-approves
- Open a project in the Code tab
- Ask Claude to edit any file
Expected Behavior
File edits and bash commands execute without confirmation prompts (bypass mode).
Actual Behavior
Desktop shows "Allow Claude to Edit [file]?" and "Allow Claude to Run [command]?" confirmation dialogs for every operation. The PermissionRequest hook never fires — the Desktop UI intercepts before the hook is evaluated.
Workaround
Using the CLI directly with claude --dangerously-skip-permissions works correctly and respects bypass mode. This issue is specific to the Desktop app's Code tab UI layer.
Additional Context
- Tested with files in both the project directory and the root
~/.claude/ folder — prompts appear everywhere
- Tried both "bypass permissions" and "auto accept edits" modes — neither works in Desktop
- Restarted Claude Desktop after each settings change
- The session opens in bypass mode (confirmed by mode indicator) but prompts still appear
Bug Description
Claude Desktop's Code tab shows file edit and bash run confirmation dialogs despite bypass permissions being fully configured at every level. The CLI (
claude --dangerously-skip-permissions) works correctly — this is Desktop-specific.Environment
Configuration (all correct, none respected by Desktop)
1. Desktop toggle
"Allow bypass permissions mode" is ON in Claude Code Desktop Settings.
2.
~/.claude/settings.json{ "skipDangerousModePermissionPrompt": true, "permissions": { "defaultMode": "bypassPermissions", "allow": ["Bash", "Read", "Write", "Edit", "MultiEdit", "Glob", "Grep", "WebFetch", "WebSearch", "TodoRead", "TodoWrite", "mcp__*"] }, "hooks": { "PermissionRequest": [ { "hooks": [ { "type": "command", "command": "echo '{\"hookSpecificOutput\":{\"hookEventName\":\"PermissionRequest\",\"permissionDecision\":\"allow\",\"permissionDecisionReason\":\"Auto-approved by global hook\"}}'", "statusMessage": "Auto-approving..." } ] } ] } }3.
~/.claude/settings.local.json{ "permissions": { "defaultMode": "bypassPermissions", "allow": ["Bash", "Read", "Write", "Edit", "MultiEdit", "Glob", "Grep", ...] } }4. Project-level settings also set to
bypassPermissionsSteps to Reproduce
settings.jsonandsettings.local.jsonwithdefaultMode: "bypassPermissions"and full allow listsPermissionRequesthook that auto-approvesExpected Behavior
File edits and bash commands execute without confirmation prompts (bypass mode).
Actual Behavior
Desktop shows "Allow Claude to Edit [file]?" and "Allow Claude to Run [command]?" confirmation dialogs for every operation. The
PermissionRequesthook never fires — the Desktop UI intercepts before the hook is evaluated.Workaround
Using the CLI directly with
claude --dangerously-skip-permissionsworks correctly and respects bypass mode. This issue is specific to the Desktop app's Code tab UI layer.Additional Context
~/.claude/folder — prompts appear everywhere