Bug
Subagents spawned via the Agent tool (e.g., Explore agent) prompt for permissions that are explicitly allowed in both project-level and global settings files.
Repro
- Have
Bash(cat:*) in .claude/settings.json (project, git-tracked) and ~/.claude/settings.json (global user settings)
- Start a session in the project directory (not a worktree — main checkout)
- Claude spawns an Explore subagent that runs
Bash(cat /path/to/file.tsx)
- The subagent prompts: "This command requires approval — Do you want to proceed?"
Expected
The subagent should respect the same permission settings as the parent session. Bash(cat:*) is configured at both the project and global level — it should be auto-allowed.
Actual
The subagent ignores configured permissions and prompts the user. Selecting "Yes, and don't ask again for: cat:*" works for that subagent session, but every new subagent prompts again.
This also applies to worktree sessions (via isolation: "worktree" on the Agent tool), where project-scoped user settings (~/.claude/projects/<path>/settings.json) don't apply because the worktree has a different filesystem path. But the core issue is broader — even in the main checkout with global settings, subagents don't inherit permissions.
Environment
- Claude Code v2.1.81
- macOS (Darwin 25.4.0)
- Model: Opus 4.6 (1M context)
Settings context
.claude/settings.json (project, git-tracked) includes:
~/.claude/settings.json (global) includes:
Both files are confirmed present and readable from the working directory.
Bug
Subagents spawned via the Agent tool (e.g., Explore agent) prompt for permissions that are explicitly allowed in both project-level and global settings files.
Repro
Bash(cat:*)in.claude/settings.json(project, git-tracked) and~/.claude/settings.json(global user settings)Bash(cat /path/to/file.tsx)Expected
The subagent should respect the same permission settings as the parent session.
Bash(cat:*)is configured at both the project and global level — it should be auto-allowed.Actual
The subagent ignores configured permissions and prompts the user. Selecting "Yes, and don't ask again for: cat:*" works for that subagent session, but every new subagent prompts again.
This also applies to worktree sessions (via
isolation: "worktree"on the Agent tool), where project-scoped user settings (~/.claude/projects/<path>/settings.json) don't apply because the worktree has a different filesystem path. But the core issue is broader — even in the main checkout with global settings, subagents don't inherit permissions.Environment
Settings context
.claude/settings.json(project, git-tracked) includes:"Bash(cat:*)"~/.claude/settings.json(global) includes:"Bash(cat:*)"Both files are confirmed present and readable from the working directory.