Follow Discord
Sweep 22 Oct 2026 · 21:04Z Build v2.1.309 528 read Stable v2.1.308 Latest v2.1.309 Next v2.1.309 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.242 ·

Hook commands are parsed to find the script behind them

Hook commands are now parsed to work out which script they run, without running them.

Under the hood Internal Changes
JSON All of v2.1.242
Under the hoodTier: how much it should matter to you
2Useful: my rating, 1 to 5
4Signal: worth watching, 1 to 5
HooksArea: what it touches
Internal ChangesKind: in v2.1.242,
What probably matters to youSection of the release
What

A new parser reads a hook's shell command and works out whether it ultimately runs an identifiable script file, which lets Claude Code reason about a hook without executing it.

Details
  • Handles quoting, $HOME and ${CLAUDE_PROJECT_DIR} prefixes, interpreter names such as python, bash, node, deno and bun, and uv run.
  • Returns either the interpreter and resolved script path, or a reason it gave up: shell_syntax, unsupported_interpreter, uv_project, args_form, no_path, shell_prefix or unsupported_platform.
  • Refuses paths inside Claude Code's own bookkeeping directories (shell-snapshots, session-env, projects, file-history, backups).
  • Reading a candidate script rejects anything that is not a regular file, is hard-linked (multiply_linked), or is oversized (too_large).
Evidence

unsupported_interpreter

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

See this entry in the whole of v2.1.242 →

Feedback