Skip to content

Subagents should inherit settings.local.json permissions #47221

Description

@commander

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

Environment

  • Claude Code CLI
  • macOS
  • Multiple subagent types affected

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions