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
- Add
Bash(ls *)to the allow list in settings - Run:
ls /path/to/Bounded\ Agency\ Applied\ Principles.md - 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)
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗