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_DISABLE_SUBSTITUTION_RM_PROMPT

env in the build documented JSON

A Claude Code environment variable, read out of the shipped bundle. It has been in the build since v2.1.281, including the newest one read.

Set to 1 to turn off the critical-path check for a recursive rm whose target is entirely the output of a command substitution, such as rm -rf "$(pwd)". The other critical-path checks keep running. Set it in the environment that launches Claude Code, since Claude Code ignores a copy delivered through a settings env block. Requires Claude Code v2.1.281 or later

Anthropic's own wording. Read off Environment variables, captured 2026-09-28.

First seen v2.1.281 23 Sep 2026
Last seen v2.1.322 10 Nov 2026
Builds38 / 161on this box, as of v2.1.322
Written about v2.1.281 first named in a changelog, 23 Sep 2026
v2.1.281in the build not in the build never minedv2.1.322

In the changelogs

6

Releases whose published page names CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT.

  1. v2.1.321
    Shell permission checks now cover more cp, mv and rm cases

    Claude Code now checks where cp and mv really write, looks inside ${HOME} in rm targets, and lets deny rules override rm checks

    found in this entry's text

  2. v2.1.319
    Stricter shell permission checks for rm and Windows paths

    Claude Code now asks before an rm on a Windows path it cannot place, and checks nested commands and auto mode commands more closely

    found in this entry's text

  3. v2.1.305
    Approval prompt for rm on a command's output now checks more of the command

    The approval check for a recursive rm aimed at a command's output now also looks at extra parts of the command

    found in this entry's text

  4. v2.1.288
    New CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT switch for inline shell deletions

    Setting CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT skips a new permission check for rm in inline shell scripts

    found in this entry's text

  5. v2.1.281
    rm -r on command-substitution output now always prompts (tengu_iridescent_boot, CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT)

    rm -r on a path made entirely of $(...) or backtick output now always asks, and permission rules cannot auto-allow it

    found in this entry's text, named in this entry

  6. v2.1.281
    rm -r on a command-substitution target now always asks, unless an env var or flag turns it off

    A recursive rm aimed at the output of a command substitution now always asks you first, and permission rules cannot auto-allow it

    found in this entry's text

First cited

1

The earliest release whose published evidence quoted CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT was v2.1.281, 23 Sep 2026. That is the oldest release this project wrote about it, so it is a floor on the name's age and not the release that introduced it. It is not a presence reading: which builds carried the name is the table below.

ReleaseDateThe span that was quoted
v2.1.28123 Sep 2026CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT

Presence across releases

1
BuildsHow manyDatesReading
v2.1.281 – v2.1.32238 builds23 Sep 2026 → 10 Nov 2026 ◆in the build

Build by build

38

One row per release since the first build this name was read out of. Absent means the build was read and the name was not in it, never mined means no bundle for that release was ever archived, and a declared type or a default is only ever what that release's own bundle stated.

BuildDateStateThe record behind it
v2.1.28123 Sep 2026·addedverdict: added · bool
v2.1.28224 Sep 2026·presentverdict: present · bool
v2.1.28325 Sep 2026·presentverdict: present · bool
v2.1.28428 Sep 2026·presentverdict: present · bool
v2.1.28529 Sep 2026·presentverdict: present · bool
v2.1.28630 Sep 2026·presentverdict: present · bool
v2.1.2871 Oct 2026·presentverdict: present · bool
v2.1.2882 Oct 2026·presentverdict: present · bool
v2.1.2893 Oct 2026·presentverdict: present · bool
v2.1.2905 Oct 2026·presentverdict: present · bool
v2.1.2916 Oct 2026·presentverdict: present · bool
v2.1.2926 Oct 2026·presentverdict: present · bool
v2.1.2937 Oct 2026·presentverdict: present · bool
v2.1.2948 Oct 2026·presentverdict: present · bool
v2.1.2958 Oct 2026·presentverdict: present · bool
v2.1.2969 Oct 2026·presentverdict: present · bool
v2.1.29914 Oct 2026·presentverdict: present · bool
v2.1.30014 Oct 2026·presentverdict: present · bool
v2.1.30115 Oct 2026·presentverdict: present · bool
v2.1.30216 Oct 2026·presentverdict: present · bool
v2.1.30318 Oct 2026·presentverdict: present · bool
v2.1.30419 Oct 2026·presentverdict: present · bool
v2.1.30520 Oct 2026·presentverdict: present · bool
v2.1.30621 Oct 2026·presentverdict: present · bool
v2.1.30721 Oct 2026·presentverdict: present · bool
v2.1.30822 Oct 2026·presentverdict: present · bool
v2.1.30922 Oct 2026·presentverdict: present · bool
v2.1.31023 Oct 2026·presentverdict: present · bool
v2.1.31126 Oct 2026·presentverdict: present · bool
v2.1.31227 Oct 2026·presentverdict: present · bool
v2.1.31430 Oct 2026·presentverdict: present · bool
v2.1.31530 Oct 2026·presentverdict: present · bool
v2.1.31631 Oct 2026·presentverdict: present · bool
v2.1.3172 Nov 2026·presentverdict: present · bool
v2.1.3183 Nov 2026·presentverdict: present · bool
v2.1.3196 Nov 2026·presentverdict: present · bool
v2.1.3219 Nov 2026·presentverdict: present · bool
v2.1.32210 Nov 2026·presentverdict: present · bool

Read out of the published npm bundle release by release, and out of Anthropic's own documentation as this site captured it. Nothing on this page is a description anybody here wrote about what the environment variable does. All environment variables.

Feedback