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

Status Closed — not planned
Maintainer reply None cached
Activity 3 comments · opened Mar 23, 2026 · 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 ↗