Skip to content

Skills/subagents do not inherit user-level permissions from settings.json #18950

Description

@thomast73

User-level permissions configured in ~/.claude/settings.json under permissions.allow are not being inherited by skills/subagents. All bash commands require permission prompts when executed within a skill, even though those same commands are auto-approved when used in the main conversation.

Steps to Reproduce

  1. Configure user-level permissions in ~/.claude/settings.json:
{
  "permissions": {
    "allow": [
      "Bash(test)",
      "Bash(git rebase)",
      "Bash(mvn verify)",
      "Bash(grep)",
      "Bash(head)",
      "Bash(lsof)",
      "Bash(sleep)",
      "Bash(tail)",
      "Bash(echo)"
    ]
  }
}
  1. Restart Claude Code to load permissions
  2. Verify permissions work in main conversation (e.g., ls command runs without prompt)
  3. Run a skill that uses these commands
  4. Observe: All bash commands prompt for permission despite being in the allow list

Expected Behavior

Skills should inherit user-level permissions from settings.json. Commands in the permissions.allow list should be auto-approved without prompting.

Actual Behavior

Skills prompt for permission on every bash command. Example commands that prompted:

  • test -f pom.xml
  • grep with head pipeline
  • git rebase team/master
  • mvn spring-boot:run
  • lsof commands
  • sleep and tail commands

Environment

  • Claude Code version: 2.1.12
  • OS: macOS 26.2 (25C56)
  • Settings file: ~/.claude/settings.json

Workaround

Select option 2 to create workspace-level permissions, but this defeats the purpose of user-level permissions.

Impact

Significantly degrades user experience when using skills, requiring manual approval of dozens of commands.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions