Desktop launches CLI without --dangerously-skip-permissions despite defaultMode: bypassPermissions

Resolved 💬 2 comments Opened May 24, 2026 by CGDavid Closed Jun 25, 2026

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

  1. Set ~/.claude/settings.json:

``json
{
"permissions": { "defaultMode": "bypassPermissions" },
"skipDangerousModePermissionPrompt": true
}
``

  1. Fully quit Claude Desktop (no claude.exe / Claude* processes).
  2. Reopen.
  3. Observe toast: "No se pudo cambiar el modo de permisos. Puedes intentarlo de nuevo."
  4. 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.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗