Subagents should inherit settings.local.json permissions

Resolved 💬 3 comments Opened Apr 13, 2026 by commander Closed Jun 11, 2026

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:

  1. .claude/settings.json (project-level, shared)
  2. 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

View original on GitHub ↗

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