Skip to content

Built-in Plan agent ignores parent settings.json permissions and repeatedly prompts for pre-approved tools #10906

@PaulRBerg

Description

@PaulRBerg

Description

The built-in Plan agent repeatedly asks for permissions for tools that are already approved in my root ~/.claude/settings.json file. This makes the Plan agent workflow frustrating and interrupts the planning process.

Environment

  • Claude Code Version: 2.0.28+ (Plan agent introduced in this version)
  • Platform: macOS (Darwin 25.0.0)
  • Configuration: Extensive permissions.allow list in ~/.claude/settings.json

Current Behavior

When Claude Code invokes the built-in Plan agent (subagent), it repeatedly requests permissions for Bash tools that are already approved in my root settings.json file.

I've noticed that it happens most often with piped (|) commands.

Expected Behavior

Built-in subagents like Plan should inherit or respect the permissions already configured in settings.json, similar to how the main Claude conversation respects these settings.

Root Cause Analysis

Based on documentation review:

  1. Subagents have their own separate tool permissions
  2. The tools field inheritance (when omitted) only applies to custom subagents
  3. Built-in subagents like Plan have predefined tool configurations that don't inherit from parent settings
  4. Users cannot customize built-in subagent permissions

Related Issues

This issue is related to but distinct from:

However, this specifically affects built-in agents like Plan, not just custom subagents or MCP scenarios.

Proposed Solution

  1. Option A: Built-in subagents should inherit permissions from parent settings.json by default
  2. Option B: Provide a way to configure built-in subagent permissions (e.g., .claude/agents/plan.override.md)
  3. Option C: Add a setting like "builtinAgentsInheritPermissions": true

Workarounds Attempted

None available. Cannot modify built-in agent configurations.

Impact

  • Interrupts workflow with repeated permission prompts
  • Makes Plan mode less useful despite being a valuable feature
  • Undermines the purpose of pre-configuring extensive permission lists

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions