Bash permission patterns with `:*` suffix not auto-allowing commands

Resolved 💬 3 comments Opened Jan 23, 2026 by lmcafee-nvidia Closed Jan 27, 2026

Bash permission patterns with :* suffix not auto-allowing commands

Description

Bash permission rules using the :* (prefix matching with word boundary) syntax in ~/.claude/settings.json still prompt for permission when they should auto-allow.

Steps to Reproduce

  1. Add the following to ~/.claude/settings.json:
{
  "permissions": {
    "allow": [
      "Bash(ls:*)",
      "Bash(pwd)"
    ]
  }
}
  1. Start a Claude Code session
  2. Ask Claude to run ls or ls -la
  3. Observe that permission is still requested despite the rule

Expected Behavior

According to the documentation, Bash(ls:*) should match:

  • ls (end-of-string after prefix)
  • ls -la (space after prefix)
  • ls -l (space after prefix)

And should NOT match:

  • lsof (no word boundary)

Commands matching allowed patterns should execute without prompting.

Actual Behavior

Commands that should match Bash(ls:*) still prompt for user permission.

Environment

  • Claude Code version: 2.1.15
  • OS: Linux (Ubuntu)
  • Settings location: ~/.claude/settings.json

Additional Context

  • No local .claude/settings.json in the project directory that could override
  • Other patterns in the allow list (exact matches like Bash(pwd)) may also be affected
  • The :* suffix is documented to enforce word boundary matching

View original on GitHub ↗

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