Subagents should inherit settings.local.json permissions
Problem
Subagents (spawned via the Agent tool, e.g., parallel-issue-worker, validator) do not inherit permissions from settings.local.json. They only inherit from .claude/settings.json (project-level).
This means any permissions the user has approved interactively (which get saved to settings.local.json) are not available to subagents. Subagents get stuck waiting for interactive permission approval that never comes, since they run in the background.
Current Workaround
We have to duplicate all permissions from settings.local.json into .claude/settings.json under a permissions key, or use a permission-auto-approve.py PreToolUse hook that outputs {"decision": "allow"}. Neither is ideal:
- Duplicating permissions means maintaining two files and committing potentially user-specific permissions to the repo
- Hook-based auto-approve is unreliable — subagents still get blocked in practice despite the hook returning
{"decision": "allow"}
Expected Behavior
Subagents should inherit the union of permissions from both:
.claude/settings.json(project-level, shared)settings.local.json(user-level, local)
This is the same permission set the parent agent operates with. There's no security reason to restrict subagents further — they're spawned by the parent agent which already has those permissions.
Impact
This is a significant pain point for anyone using parallel agent workflows (e.g., orchestrator spawning multiple parallel-issue-worker agents). Every subagent silently gets stuck on permission prompts, requiring manual re-spawning or workarounds.
Related
- Previously reported as #18950
- Affects all subagent types:
parallel-issue-worker,validator,plan-reviewer, and custom agents
Environment
- Claude Code CLI
- macOS
- Multiple subagent types affected
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗