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.139 ·

Hook and Plugin Commands Gain Safer Exec Form

Entry
JSON All of v2.1.139
EntryKind: in v2.1.139,
ChangesSection of the release

Hook command definitions can now use an explicit args array for exec-style invocation. Claude Code validates the common mistake of putting both whitespace in command and also supplying args, and explains how to split executable and arguments correctly.

Usage
{
  "command": "node",
  "args": ["script.js"]
}
Details
  • command is resolved as an executable when args is present.
  • Arguments avoid shell parsing for quotes, $, and backticks.
  • Plugin and hook substitutions now include ${CLAUDE_PROJECT_DIR} in more places, including monitor hooks and plugin command paths.
Evidence

Exec-form hook schema and validation (search for "Argument list for exec form", "Exec form treats \"command\" as a single executable name", "${CLAUDE_PROJECT_DIR}")

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

How sure we are
One source agreesOne thing we can check says the same as this entry.
Anthropic's release notes agreeMCP stdio servers now receive CLAUDE_PROJECT_DIR in their environment, matching hooks. Plugin configs can reference ${CLAUDE_PROJECT_DIR} in…

See this entry in the whole of v2.1.139 →

Feedback