Follow Discord
Sweep 30 Oct 2026 · 21:36Z Build v2.1.315 533 read Stable v2.1.308 Latest v2.1.314 Next v2.1.315 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.315 ·

Bash tool can pass command text to the shell a new way, with a fallback

Claude Code's Bash tool can now carry the command text into the shell separately in one no-sandbox case, and falls back if the shell rejects it

Group of 2 Under the hood Internal Changes
JSON All of v2.1.315
Under the hoodTier: how much it should matter to you
3Useful: my rating, 1 to 5
3Signal: worth watching, 1 to 5
Bash ToolArea: what it touches
Internal ChangesKind: in v2.1.315,
Internal ChangesSection of the release

Unclear It is not clear what triggers the new path or what it changes in how a command behaves.

What

The Bash tool is how Claude runs commands in a terminal shell for you. Before this release, Claude Code always handed the shell the command as a string for the shell to evaluate. It can now "carry" the command text into the shell another way:

  • buildExecCommand, the step that builds the shell launch, now returns carriedCommandText, and that text is passed into the environment the shell is started with. The command text can also be added to the shell's startup arguments.
  • The carrier is used only in one case: no sandbox (the restricted environment Claude Code can run commands in), no scrubbing of credentials from the environment, and a shell snapshot (a saved copy of your shell's setup) is present. In that case an extra setup step is added in front of the command and a different evaluation step runs.
  • If the shell exits with code 126 and a matching error, Claude Code calls stopCarryingCommandText, stops using the carrier, and records that the carrier was lost.
  • A noBashEnv option is also passed, set to true when BASH_ENV is not set. BASH_ENV is an environment variable that names a file bash runs when it starts.

The Bash tool's own description, as shown to Claude, is 10,545 characters at its longest in the capture taken under this release, unchanged from the release before.

Why

This changes how commands reach the shell in that one setup, so it can affect how a command is run. If a shell refuses the new form with exit code 126, Claude Code switches back to the old method on its own.

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 doubtIt is not clear what triggers the new path or what it changes in how a command behaves.

See this entry in the whole of v2.1.315 →

Feedback