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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions