Source Intelligence

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

All of v2.1.242 Home All releases olderv2.1.241 v2.1.243newer
Claude Code v2.1.242

Hook commands are parsed to find the script behind them

Under the hood
Useful2 Signal4
Hooks

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

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.

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

See this entry in the whole of v2.1.242 →