Subagents (Agent tool) don't inherit permission settings — re-prompt for already-allowed tools
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:
"Bash(cat:*)"
~/.claude/settings.json (global) includes:
"Bash(cat:*)"
Both files are confirmed present and readable from the working directory.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗