Follow Discord
Sweep 22 Oct 2026 · 04:32Z Build v2.1.308 527 read Stable v2.1.308 Latest v2.1.308 Next v2.1.308 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.242 ·

Plugin hooks modules: a JavaScript engine for plugin hooks, off unless enabled remotely

Plugin hooks.json gains a modules key for code-registered hooks, off unless enabled remotely.

Nothing to try yet Notable In Development
JSON All of v2.1.242
Nothing to try yetTier: how much it should matter to you
3Useful: my rating, 1 to 5
5Signal: worth watching, 1 to 5
PluginsArea: what it touches
In DevelopmentKind: in v2.1.242,
What probably matters to youSection of the release

A full JavaScript hook engine with register(on, options) and chained next() sits behind tengu_plugin_hooks_modules, off by default.

What

A plugin can now ship a JavaScript module that registers hooks in code with register(on, options), instead of only declarative matchers in hooks.json. That file gains a modules key alongside hooks, and either or both may be present. The engine loads and evaluates the module, dispatches each hook event through a chain with next(), reports failures, and reloads or prunes when a plugin is disabled. It is controlled by tengu_plugin_hooks_modules, whose built-in fallback is off, so nothing loads unless server config turns it on.

Details
  • A plugin manifest may declare a hooks module path, and hook config parsing now returns both the matchers and the modules.
  • The gate also drives a new plugin-types entry in the capability and notice map.
Evidence

`hooks.json must have hooks (the hook matchers) or modules (hooks modules), or both, var Lnt = "tengu_plugin_hooks_modules"`

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

Read from
Names in the bundlemodules
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 modules, on Hooks reference. Your [PostToolUse hook](#posttooluse) then receives the changed files in `tool_response.bashEditDiff`. The list covers what changed under the repository while the command ran. Files that Git ignores and files in submodules aren't listed. R… hooks see the edit
What has happened since
Flag reading moved The flag server now returns on for tengu_plugin_hooks_modules, read as this account. A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.
Flag reading moved The flag server now returns off for tengu_plugin_hooks_modules, read as this account. A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.
Flag reading moved The flag server now returns on for tengu_plugin_hooks_modules, read as this account. A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.
Flag reading moved The flag server now returns off for tengu_plugin_hooks_modules, read as this account. A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.
Flag reading moved The flag server now returns on for tengu_plugin_hooks_modules, read as this account. A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.
Flag reading moved The flag server now returns off for tengu_plugin_hooks_modules, read as this account. A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.
Flag reading moved The flag server now returns on for tengu_plugin_hooks_modules, read as this account. A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.
Flag reading moved The flag server now returns off for tengu_plugin_hooks_modules, read as this account. A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.

See this across every release →

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 modules, on Hooks reference.
The name it cites is new in this buildNew in this build: tengu_plugin_hooks_modules

See this entry in the whole of v2.1.242 →

Feedback