Follow Discord
Sweep 03 Nov 2026 · 22:27Z Build v2.1.318 536 read Stable v2.1.311 Latest v2.1.318 Next v2.1.318 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.317 ·

Shell command safety checks hold more kinds of commands for permission

The checker that decides which shell commands need your approval gains rules for csh/tcsh, makefiles, awk, loops, zsh disable and unexpanded ~

Group of 4 You'll notice Improvements
JSON All of v2.1.317
You'll noticeTier: how much it should matter to you
1Useful: my rating, 1 to 5
1Signal: worth watching, 1 to 5
PermissionsArea: what it touches
ImprovementsKind: in v2.1.317,
ImprovementsSection of the release

What

Before Claude runs a shell command, Claude Code checks it to decide whether it can run straight away or must be held until you approve it. That checker got stricter in several places.

New options are passed to the command parser: cShellsHeld, commandAfterConditional, shortLoopLists, disableHeld, makeHooksHeld and unexpandedTilde. One finding saw several of these set to on. Another found each one read through a server-controlled switch whose names and defaults were not traced, so they may not apply to every account. Before, the options ended at fields such as runsTextHeld and substitutionHeredocs.

The new and tightened checks cover:

  • Scripts that may run through csh or tcsh, with refusals such as 'it is written for csh or tcsh, whose text this machine cannot verify'.
  • Makefiles and awk scripts. Held results now carry a cause of c_shell, makefile or awk.
  • zsh disable and enable.
  • ~ in PATH and class-path values, and git --exec-path=~, with the message 'this '~' is not your home directory'. Before, the exec-path case was let through.
  • git bisect run and git submodule foreach, which now check the raw, unexpanded text of the commands they run.
  • su -s/--shell and runuser, which now check the shell value.
  • direnv exec, which gets a heldStanding flag.
  • awk, sed and php script files given with attached flags.
  • gcloud compute ssh, whose --command, --zone and --project values are now checked.
  • Environment variable assignments, which fall back to a second check when the first finds nothing.

Why

More compound, unusual or disguised shell commands will now stop for your approval instead of running automatically, including in auto mode and with allow lists. Expect some extra permission prompts for commands of these kinds.

See this entry in the whole of v2.1.317 →

Feedback