Background subagents don't prompt for tool permissions before launching
Bug: Background subagents auto-deny tools instead of prompting before launch
Expected behavior
Per the docs:
"Background subagents run concurrently while you continue working. Before launching, Claude Code prompts for any tool permissions the subagent will need, ensuring it has the necessary approvals upfront. Once running, the subagent inherits these permissions and auto-denies anything not pre-approved."
Actual behavior
When launching a background agent (run_in_background: true) that needs tools not in settings.permissions.allow (e.g., Bash, Write, Edit), the behavior is inconsistent:
- Sometimes the permission prompt appears (observed once in our first batch of 6 agents)
- Sometimes no prompt is shown and tools are silently auto-denied (observed in multiple subsequent attempts within the same session, even after approving the tool in the main conversation)
Reproduction steps
We observed this across 4 rounds of testing with 6 different plugin-defined agent types. Bash, Write, and Edit were NOT in settings.permissions.allow.
Round 1 — Simple echo commands (6 agents in parallel, background):
- 5/6 succeeded — Bash was prompted and approved
- 1/6 failed — needed Write tool, which was NOT prompted for
Round 2 — Realistic prompts (agents launched one-by-one, background):
- 6/6 failed — Bash denied for all, no prompts shown
- This was in the SAME session where Bash was approved in Round 1
Round 3 — Pre-auth attempt (approved Bash/Write/Edit interactively in main conversation, then launched 6 background agents):
- 6/6 failed — permissions granted in the parent conversation did NOT propagate to background subagents
Round 4 — Single background agent (isolated test, later in session):
- Bash auto-denied, no prompt shown
Round 5 — Another single background agent (even later in session):
- Bash succeeded — permission from earlier in the session carried over this time
Key observations
- Permission propagation to background agents is inconsistent within a single session
- Approving a tool in the main conversation does not reliably grant it to background agents
- The Write tool was never prompted for, even when an agent clearly needed it (Round 1)
- The same tool (Bash) was denied in Rounds 2-4 but worked in Rounds 1 and 5
Environment
- Claude Code CLI
- macOS (Darwin 24.6.0)
- Model: claude-opus-4-6
- Plugin-defined agent types (via
subagent_typeparameter)
Impact
The inconsistency makes background agents unreliable for real tasks. Users cannot predict whether their agents will have the permissions they need, making it difficult to use background agents for anything requiring Bash, Write, or Edit.
🤖 Generated with Claude Code
This issue has 9 comments on GitHub. Read the full discussion on GitHub ↗