You'll noticeTier: how much it should matter to you
2Useful: my rating, 1 to 5
1Signal: worth watching, 1 to 5
HooksArea: what it touches
ImprovementsKind: in v2.1.275,
ImprovementsSection of the release
What
For plugins, the module field in hooks.json (the file that registers a plugin's hooks, which are scripts that run at specific points in Claude Code) must now point to a file with a recognized code file extension, and every file it imports from the plugin must too. Files with other extensions are rejected and simply not loaded, and a specific error message now lists which extensions are valid.
Why
This catches misconfigured or mistyped plugin hook files early, with a clear error instead of a silent failure to load.
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 hooks.json, on Hooks reference.| [Plugin](/docs/en/plugins/overview) `hooks/hooks.json` | When plugin is enabled | Yes, bundled with the plugin |hookssee the edit
Added sinceA small documentation edit on Debug your configuration touched a line naming hooks.json 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-configsee 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 Debug your configuration touched a line naming hooks.json after this was published.