You'll noticeTier: how much it should matter to you
2Useful: my rating, 1 to 5
2Signal: worth watching, 1 to 5
Plugin HooksArea: what it touches
Bug FixesKind: in v2.1.269,
Bug FixesSection of the release
What
When a tool.check hook (a script that can approve or block a tool call before it runs) denies a tool call, Claude Code no longer just accepts that denial and stops. It now sends the result back through a handler that re-applies any deny-rule overrides, and if the hook's verdict is "ask" rather than a flat denial, it still routes the request through the normal interactive approval flow so you can approve or reject it yourself.
Why
This ensures a hook's "ask" verdict actually reaches you for a decision instead of silently being treated as a hard stop, and keeps deny-rule handling consistent regardless of whether a denial came from a hook or elsewhere.
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 sinceAnthropic's documentation has since written up tool.check, 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…permissionssee the edit
Added sinceA small documentation edit on Automate actions with hooks touched a line naming tool.check after this was published.A [mod](/docs/en/plugins/mods/overview) you install that hooks `tool.check` can approve a call that your `PreToolUse` hook blocked, unless the hook is in managed settings. [Extend permissions with hooks](/docs/en/permissions#extend-permiss…hooks-guidesee the edit
How sure we are
One source agreesOne thing we can check says the same as this entry.
Anthropic's documentation agreesA small documentation edit on Automate actions with hooks touched a line naming tool.check after this was published.