{"version":"2.1.319","anchor":"shell-parser-rejects-unquoted-braces-and-under-zsh-styl","canonical_anchor":"shell-parser-rejects-unquoted-braces-and-under-zsh-styl","heading":"More shell commands with braces now ask for permission","tier":"notice","area":"Bash Safety","scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.319\/e\/shell-parser-rejects-unquoted-braces-and-under-zsh-styl","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.319","markdown":"### More shell commands with braces now ask for permission\n\nCommands with an unquoted { or } starting a word, or a $[ ] expression, can now ask for permission instead of running as safe\n\n**Unclear.** It is not stated when Claude Code uses this stricter reading, for example whether only when your shell is zsh.\n\n**What**\n\nBefore running a shell command, Claude Code reads it to decide whether it is safe to run without asking you. Under a stricter, zsh-style way of reading commands, it now treats these as unreadable and asks for permission:\n\n- a word that starts with an unquoted `{` or `}`; the message suggests quoting the brace\n\n- a `$[ ]` expression, an old form of arithmetic; the message suggests writing `$(( ))` instead\n\n**Why**\n\nCommands Claude Code cannot read reliably are no longer treated as safe, so you are asked about them first.\n\n- Area: Bash Safety\n- Tier: You'll notice\n- Useful: 1\/5\n- Signal: 1\/5\n- Scope: individual\n- Heads-up: yes"}