{"version":"2.1.275","anchor":"plugin-hook-modules-loading-gains-a-built-ins-only-mode","canonical_anchor":"installed-non-built-in-plugins-hooks-modules-gated-behind","heading":"Installed plugins' hook modules now gated behind a rollout flag","tier":"soon","area":"Plugins","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.275\/e\/plugin-hook-modules-loading-gains-a-built-ins-only-mode","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.275","markdown":"### Installed plugins' hook modules now gated behind a rollout flag\n\nHook code from installed (non-built-in) plugins now loads only when a rollout flag or override env var is on\n\n**Unclear.** The `tengu_plugin_hooks_modules` gate controls this, but nothing has been read about it, so it's unclear how widely or when built-ins-only mode actually applies.\n\n**What**\n\nA plugin's hooks module (the code that lets a plugin react to events like tool calls) is now skipped for all plugins except Claude Code's own built-in ones, unless a rollout flag called `tengu_plugin_hooks_modules` is turned on. Built-in plugins always load their hooks regardless of the flag. When the flag is off, Claude Code logs a message explaining that the installed plugin's hook module was not loaded because the rollout flag is off. Internally, the loading path computes a `builtinsOnly` flag and passes it into hook registration.\n\nThe gate can be overridden by setting the environment variable `CLAUDE_CODE_ENABLE_FUNCTION_HOOKS`, which forces hook modules to load even when the rollout flag is off.\n\n**Why**\n\nThis limits which plugins can run custom hook code by default, likely as a staged rollout for hook support in third-party (installed) plugins. If a plugin's hooks stop firing, check whether this rollout flag is on, or set `CLAUDE_CODE_ENABLE_FUNCTION_HOOKS` to force them on.\n\n- Flag `tengu_plugin_hooks_modules`: Off by default, switched on for this account (read for one account on one subscription tier against v2.1.275; this account: on, anonymous baseline: on, compiled default: off) 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.\n- Area: Plugins\n- Tier: Nothing to try yet\n- Useful: 4\/5\n- Signal: 3\/5\n- Present in the build but not switched on"}