Follow Discord
Sweep 10 Nov 2026 · 02:18Z Build v2.1.322 539 read Stable v2.1.311 Latest v2.1.322 Next v2.1.322 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.281 ·

rm -r on the output of a command substitution now always asks for approval

Commands like rm -rf $(...) now always stop for approval, even with broad allow rules, unless an env var or flag turns this off

Group of 2 Use it now Notable New Features
JSON All of v2.1.281
Use it nowTier: how much it should matter to you
5Useful: my rating, 1 to 5
3Signal: worth watching, 1 to 5
Bash SafetyArea: what it touches
New FeaturesKind: in v2.1.281,
What probably matters to youSection of the release

Unclear The finding names CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT but does not say how it affects this prompt.

What

A command substitution is a piece of a shell command, written as $(...) or in backticks, that is replaced by another command's output when it runs. A recursive rm (-r or -R) whose target is entirely such output now always stops for your approval. The message says "Dangerous rm operation detected: the target is the output of a command substitution ($(...) or backticks) and cannot be checked before the command runs." It tells you to run the substitution first and then remove the literal paths it prints.

Why

Claude Code cannot know in advance what such a command will delete. Commands like rm -rf $(find ...) now wait for you even if you have broad allow rules.

Read from
Feature flag
tengu_iridescent_boot Not enough to say

Nothing here resolved what this flag was doing on this version, so nothing here should be read as on or off.

This account: no value returned · anonymous baseline: no value returned · compiled default in v2.1.281: on

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

Read once, for one account on one subscription tier, against v2.1.281. It isn't a statement about your account. What a flag value here can and cannot tell you

Since it was published

The entry above is what we published on the day. These lines were added later, as Anthropic's own pages caught up, and they sit beside the original rather than replacing it.

Added since A small documentation edit on All settings touched a line naming CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT after this was published. * [`CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT`, `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT`, and `CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT`](/docs/en/env-vars#variables), which Claude Code reads from the launch environment only, are igno… settings-reference see the edit
Confirmed since Anthropic's documentation has since written up CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT, on Choose a permission mode. To turn off the check on a target that is only command substitution output, set [`CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT=1`](/docs/en/env-vars#variables) in the environment that launches Claude Code. permission-modes see the edit
How sure we are
Something disagreesSomething we can check disagrees with this entry, or the writer said they could not settle it.
The writer flagged doubtThe finding names `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` but does not say how it affects this prompt.
Anthropic's documentation agreesAnthropic's documentation has since written up CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT, on Choose a permission mode.
Anthropic's release notes agreeFixed a recursive rm whose target is only command-substitution output, such as rm -rf "$(pwd)", running unprompted in auto and…
The name it cites is new in this buildNew in this build: CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT

See this entry in the whole of v2.1.281 →

Feedback