Desktop: Workflow approval prompts every run even in bypassPermissions mode; only 'Allow once' offered (hangs unattended sessions)
Summary
In the Claude Code desktop app, every invocation of the Workflow tool (dynamic multi-agent workflows) shows a per-run approval dialog — even when the session is in bypassPermissions mode from startup. The dialog only offers Deny and Allow once; there is no "Always" / "don't ask again" option. This makes unattended (overnight) sessions hang indefinitely on the first workflow call: if nobody is present to click "Allow once", zero progress is made all night.
Environment
- Claude Code desktop app on Windows 11 Pro (10.0.26200)
- CLI version: 2.1.140
- Auth: claude.ai subscription
Steps to reproduce
- In
~/.claude/settings.json, set:
``json``
{
"permissions": { "defaultMode": "bypassPermissions" },
"skipDangerousModePermissionPrompt": true
}
- Start a fresh desktop session (so the mode is active from startup).
- Ask Claude to run any trivial dynamic workflow (e.g. a one-agent read-only script via the Workflow tool).
Expected
Per https://code.claude.com/docs/en/workflows.md ("Approve the plan before it runs"):
- In bypass permissions mode the run should start immediately with no prompt.
- Where a prompt does appear, the desktop approval card is documented to offer Once / Always / Deny.
Actual
- The approval card appears on every workflow run, regardless of permission mode (verified in a brand-new session with
defaultMode: "bypassPermissions"active from startup). - The card reads: "Allow Claude to run a workflow \<name\>?" with the usage-limit warning box ("Dynamic workflows run many subagents in parallel and can use a lot of your usage limit…").
- Only Deny and Allow once are offered — no "Always" button, so consent can never be persisted.
Other things tried (no effect)
"Workflow"inpermissions.allow(understood this isn't a permissionable tool; listed for completeness)"skipWorkflowUsageWarning": true- Fresh sessions after every settings change
Impact
Autonomous/overnight desktop sessions that use dynamic workflows hard-block on the first Workflow call until a human clicks "Allow once". The only current workarounds are avoiding the Workflow tool entirely in unattended runs or setting disableWorkflows: true, which loses the feature for interactive use as well.