Bash permission matching fails when command contains backslash-escaped spaces

Resolved 💬 5 comments Opened Mar 18, 2026 by boundedagency Closed May 1, 2026

Description

Bash permission patterns fail to auto-approve commands that contain backslash-escaped spaces (\ ) in the command string, even when the permission pattern matches.

Steps to Reproduce

  1. Add Bash(ls *) to the allow list in settings
  2. Run: ls /path/to/Bounded\ Agency\ Applied\ Principles.md
  3. Claude Code prompts for permission instead of auto-approving

Expected Behavior

Bash(ls *) should match any command starting with ls , regardless of how spaces in arguments are escaped.

Actual Behavior

Commands with backslash-escaped spaces prompt for permission. Commands with quoted paths are auto-approved.

Prompts (backslash escapes):

  • ls /Users/king/vault/avault/Bounded\ Agency*
  • ls /Users/king/vault/avault/Bounded\ Agency

Auto-approved (quotes or no spaces):

  • ls "/Users/king/vault/avault/Bounded Agency"*
  • ls "/Users/king/vault/avault/Bounded Agency Applied Principles.md"
  • ls /Users/king/vault/avault/Bounded*
  • ls /Users/king/vault/avault/

Root Cause

The permission matcher appears to not handle backslash-escaped spaces when comparing the command string against the allow pattern. The \ sequences likely break the string matching.

Environment

  • Claude Code in VS Code (Remote SSH extension)
  • macOS (Darwin 25.3.0)

View original on GitHub ↗

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