Desktop launches CLI without --dangerously-skip-permissions despite defaultMode: bypassPermissions
Summary
When ~/.claude/settings.json has permissions.defaultMode: bypassPermissions, the Desktop app does not pass --dangerously-skip-permissions to the CLI subprocess. It then attempts to switch the mode mid-session via RPC, which the CLI rejects, leaving the session stuck in Accept Edits and showing a toast: "No se pudo cambiar el modo de permisos".
Environment
- OS: Windows 11
- Claude Desktop:
1.8555.2.0(C:\Program Files\WindowsApps\Claude_1.8555.2.0_x64__pzs8sxrjxfjjc\) - Bundled CLI:
2.1.149(%APPDATA%\Claude\claude-code\2.1.149\claude.exe) - Locale: es-419
Repro
- Set
~/.claude/settings.json:
``json``
{
"permissions": { "defaultMode": "bypassPermissions" },
"skipDangerousModePermissionPrompt": true
}
- Fully quit Claude Desktop (no
claude.exe/Claude*processes). - Reopen.
- Observe toast: "No se pudo cambiar el modo de permisos. Puedes intentarlo de nuevo."
- Session remains in Accept Edits.
Evidence
From %APPDATA%\Claude\logs\main.log:
2026-XX-XX HH:MM:SS [info] [CCD] LocalSessions.setPermissionMode:
sessionId=local_..., mode=bypassPermissions
2026-XX-XX HH:MM:SS [error] [CCD] Failed to set permission mode for session ...:
Cannot set permission mode to bypassPermissions because the session
was not launched with --dangerously-skip-permissions
at Object.handler (...\app.asar\.vite\build\index.js:461:6164)
Expected
Desktop should propagate defaultMode: bypassPermissions as the --dangerously-skip-permissions launch flag to the CLI subprocess, instead of trying to set it after the fact via RPC.
Workaround
None local. Living with Accept Edits until fixed.
Notes
Issue appeared after reinstalling Desktop to fix an unrelated bug. The settings flag skipDangerousModePermissionPrompt (which just suppresses a confirmation dialog) does not help — the problem is the missing launch flag.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗