Follow Discord
Sweep 25 Sep 2026 · 19:33Z Build v2.1.283 504 read Stable v2.1.274 Latest v2.1.283 Next v2.1.283 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.281 ·

/hooks explains disabled, restricted and individual hooks more clearly

The /hooks view gains a per-hook detail pane and clearer wording for when hooks are disabled or restricted by your organization

Group of 4 Use it now New Features
JSON All of v2.1.281
Use it nowTier: how much it should matter to you
4Useful: my rating, 1 to 5
1Signal: worth watching, 1 to 5
HooksArea: what it touches
New FeaturesKind: in v2.1.281,
What probably matters to youSection of the release

What

Hooks are commands Claude Code runs automatically at certain moments, such as before a tool runs. The /hooks view, which lists them, has been reworded and gained a detail pane.

  • When disableAllHooks is set, the view is titled "Hooks" and explains in one sentence that no hook command runs, the status line isn't shown, and tools run without hook checks. It adds " Hooks set by your organization still run." when managed hooks still apply. Before, it said "Hook configuration · disabled" and "All hooks are currently disabled" with a bulleted list.
  • The status line reads "disabled by your organization" or "disabled", with a count of hooks not running.
  • When policy restricts hooks, the view says "Only hooks from managed settings run here." and explains that user, project and local hooks are blocked and not listed, and that managed hooks are not shown either. The read-only note is shorter.
  • A new detail pane for each hook shows its event, matcher, source, plugin, status message and command or script, labels "Script hook" and "MCP tool hook" types, and explains how to change it, for example "Built in to Claude Code. It can't be changed or removed." or "Set by your organization's managed settings. It can't be changed here."

Why

It is now clearer why a hook isn't firing, why a list is empty, where a hook comes from and why some can't be edited, and that organization-managed hooks keep running even when you turn hooks off.

Read from
Names in the bundle/hooks
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.

Added since A small documentation edit on Debug your configuration touched a line naming /hooks after this was published. | Hook never fires | Hooks are defined in a standalone file instead of `settings.json` | There is no standalone hooks file for project or user config. Define hooks under the `"hooks"` key in `settings.json`. Only [plugins](/docs/en/plugins… debug-your-config see the edit
Confirmed since Anthropic's documentation has since written up /hooks, on Troubleshoot the Agent SDK. | Hook not firing, matcher not filtering as expected, hook timeout, tool blocked unexpectedly, modified input not applied, session hooks not available in Python, subagent permission prompts multiplying, recursive hook loops with subagents,… agent-sdk/troubleshooting see the edit
How sure we are
Two sources agreeTwo things we can check say the same as this entry.
Anthropic's documentation agreesAnthropic's documentation has since written up /hooks, on Troubleshoot the Agent SDK.
Anthropic's release notes agreeFixed Ctrl+C or Ctrl+D pressed twice quitting Claude Code instead of closing the dialog in the remaining dialogs and pickers, such as…

See this entry in the whole of v2.1.281 →

Feedback