Follow Discord
Sweep 06 Nov 2026 · 01:32Z Build v2.1.319 537 read Stable v2.1.311 Latest v2.1.318 Next v2.1.319 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.281 ·

Plugins: warning for unquoted hook path placeholders, plus marketplace sorting and an 'All' tab

hooks.json validation now warns about unquoted plugin path placeholders, and /plugin gains install-count sorting and an 'All' marketplace tab

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

What

Hooks are commands that run automatically at certain points, such as before or after a tool runs. Checking a plugin's hooks.json now warns when a command-type hook uses ${CLAUDE_PLUGIN_ROOT}, ${CLAUDE_PLUGIN_DATA} or ${CLAUDE_PROJECT_DIR} without quotes around it. These placeholders are replaced with folder paths when the hook runs. The warning suggests quoting the placeholder or using exec form. Exec form means giving the command and its arguments separately.

  • Exec-form hooks (those with args) and PowerShell hooks are not checked.
  • The warning is not behind a gate, so it applies to everyone.

The /plugin browser also gains new helpers:

  • Plugins are sorted by install count (the highest across installCountIds), then by plugin-directory origin, then by name.
  • Each marketplace has filter tabs, headed by an "All" tab.

Why

An unquoted path breaks when the folder name contains a space, which is a common cause of broken plugin hooks. The warning points plugin authors at the problem before users hit it. The new sorting puts widely installed plugins first when browsing.

Read from
Names in the bundlehooks.json
Since it was published

The entry above is what we published on the day. These lines were added later, as Anthropic's own pages caught up, and they sit beside the original rather than replacing it.

Confirmed since Anthropic's documentation has since written up hooks.json, on Configure permissions. That precedence covers hooks in settings files and in a plugin's `hooks/hooks.json`. A [mod](/docs/en/plugins/mods/overview) you install that hooks `tool.check` answers after the rules and the `PreToolUse` hooks have decided, and its answe… permissions see the edit
Added since A small documentation edit on Automate actions with hooks touched a line naming hooks.json after this was published. The reverse is not true: a hook returning `"allow"` doesn't bypass deny rules from settings, and it can't suppress the prompt for MCP tools marked [`requiresUserInteraction`](/docs/en/mcp#require-approval-for-a-specific-tool) or for connec… hooks-guide see the edit
How sure we are
Two sources agreeTwo things we can check say the same as this entry.
Anthropic's documentation agreesA small documentation edit on Automate actions with hooks touched a line naming hooks.json after this was published.
Anthropic's release notes agreeImproved plugin hook-failure errors to name the offending plugin, and added a claude plugin validate warning when a shell-form hook leaves…

See this entry in the whole of v2.1.281 →

Feedback