Subagents (Agent tool) don't inherit permission settings — re-prompt for already-allowed tools

Resolved 💬 3 comments Opened Mar 23, 2026 by ajcpwnz Closed Apr 20, 2026

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

  1. Have Bash(cat:*) in .claude/settings.json (project, git-tracked) and ~/.claude/settings.json (global user settings)
  2. Start a session in the project directory (not a worktree — main checkout)
  3. Claude spawns an Explore subagent that runs Bash(cat /path/to/file.tsx)
  4. 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.

View original on GitHub ↗

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