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

Hooks get new rules for allowing, asking and refusing tool permissions

Hook and plugin permission decisions now go through tool.check, can allow a hook's own ask, turn a plugin deny into an ask, and attach a refusal

Group of 5 Use it now Internal Changes
JSON All of v2.1.307
Use it nowTier: how much it should matter to you
3Useful: my rating, 1 to 5
2Signal: worth watching, 1 to 5
Auto ModeArea: what it touches
Internal ChangesKind: in v2.1.307,
What probably matters to youSection of the release

What

A hook is a command you or a plugin set up to run automatically at certain moments. PreToolUse hooks run before a tool is used and can block it; PermissionRequest hooks run when a tool use needs a permission decision. This release changes how their answers combine:

  • PreToolUse and PermissionRequest hook decisions (allow, ask or deny) are now routed through a tool.check path in a permission engine, and handlers can answer for the engine.
  • A plugin's tool.check deny no longer always blocks. If the tool is not a protected one, the original check is recomputed, and if that would have asked you, you get an ask with a refusal attached instead. Before, the plugin's result was used directly.
  • An ask raised by a hook can now carry hooksMayAllow and refusal, and a PermissionRequest hook may now allow such an ask, under strict checks. Before, that hook could only deny. Headless and no-prompt runs, where nobody can answer, consult hooks before denying.
  • The prompt for a blocked browser action now sets hooksMayAllow to false, next to personOnly and defaultToNo, so hooks cannot approve it.
  • A new hookAskFloor setting keeps a hook's ask in place, and stops hook-approved automatic allowing, when a sandboxOverride applies.
  • The auto mode decision record gains skippedOnAllowRule.
  • The error log text now reads 'PermissionRequest hook failed before a hook's ask for', replacing 'PermissionRequest hook failed before an ask of a person for'.

Why

Hook and plugin authors should check their setups: a plugin deny may now show you a prompt instead of an outright block, and a PermissionRequest hook can now approve asks that other hooks raised. Some prompts, such as blocked browser actions, remain for a person only.

Read from
Feature flag
tengu_auto_mode_config Not enough to say

Nothing here resolved what this flag was doing on this version, so nothing here should be read as on or off.

This account: no value returned · anonymous baseline: no value returned · compiled default in v2.1.307: not a boolean we can read

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

Read once, for one account on one subscription tier, against v2.1.307. It isn't a statement about your account. What a flag value here can and cannot tell you

See this entry in the whole of v2.1.307 →

Feedback