Follow Discord
Sweep 06 Nov 2026 · 01:32Z Build v2.1.319 537 read Stable v2.1.311 Latest v2.1.318 Next v2.1.319 Feeds RSS JSON llms.txt llms-full.txt Unofficial

CLAUDE_CODE_ENABLE_FUNCTION_HOOKS

env gone JSON

A Claude Code environment variable, read out of the shipped bundle. It was in the build from v2.1.259 and was gone by v2.1.287.

A new environment variable can force plugin function hooks on or off, overriding the remote feature gate.

Not Anthropic's. This is the line from the earliest changelog entry here that named it, v2.1.259.

First seen v2.1.259 2 Sep 2026
Last seen v2.1.286 30 Sep 2026, gone by v2.1.287
Builds25 / 159on this box, as of v2.1.319
Written about v2.1.259 first named in a changelog, 2 Sep 2026
v2.1.259in the build not in the build never minedv2.1.319

In the changelogs

11

Releases whose published page names CLAUDE_CODE_ENABLE_FUNCTION_HOOKS.

  1. v2.1.287
    Claude Code stops setting CLAUDE_CODE_ENABLE_FUNCTION_HOOKS for processes it starts

    CLAUDE_CODE_ENABLE_FUNCTION_HOOKS is no longer added to child processes, and the function hooks check no longer reads it directly

    found in this entry's text

  2. v2.1.287
    Plugin hooks modules 'turned off' message no longer mentions an environment variable

    The message shown when plugin hooks modules are off now blames only the rollout switch and no longer mentions CLAUDE_CODE_ENABLE_FUNCTION_HOOKS

    found in this entry's text

  3. v2.1.286
    Plugin test error now explains how hooks modules were turned off

    When hooks modules are off, testing a plugin now says whether a setting, an environment variable or a rollout switch turned them off

    found in this entry's text, named in this entry

  4. v2.1.286
    Plugin hooks modules message now reads as if they are on by default

    The notice shown when plugin hooks modules are off no longer calls them early access and instead names the setting or rollout that turned them off

    found in this entry's text

  5. v2.1.283
    Write live mods for Claude Code that reload inside your session

    A new bundled skill writes mods (plugins adding panes, status lines, toasts or hooks) that reload live once you agree for the session

    found in this entry's text

  6. v2.1.283
    Hook modules that don't match a tool call are skipped earlier

    Claude Code now checks hook modules against key fields of a tool call itself and skips those that don't match, instead of sending every call to every module

    found in this entry's text

  7. v2.1.280
    Hooks modules (plugin tests) early-access gate and messages

    Plugin hook tests now give a specific reason when they can't run: rollout off, or disabled locally

    found in this entry's text

  8. v2.1.280
    Hooks-module skip reasons now surface to the plugin author via a notification channel, not just debug logs

    Plugins are now notified directly when their hooks module is skipped, not just via a debug log line

    found in this entry's text, named in this entry

  9. v2.1.275
    Installed (non-built-in) plugins' hooks modules gated behind a new rollout flag, off by default

    Hooks modules for installed (non-built-in) plugins now require a rollout flag, off by default

    found in this entry's text, named in this entry

  10. v2.1.259
    CLAUDE_CODE_ENABLE_FUNCTION_HOOKS env override

    A new environment variable can force plugin function hooks on or off, overriding the remote feature gate.

    found in this entry's text, named in this entry

  11. v2.1.259
    Plugin hooks as JS modules — gated off by default

    Plugins can load hooks from real JS modules with per-action permission checks, but the rollout gate defaults off.

    found in this entry's text, named in this entry

First cited

6

The earliest release whose published evidence quoted CLAUDE_CODE_ENABLE_FUNCTION_HOOKS was v2.1.259, 2 Sep 2026. That is the oldest release this project wrote about it, so it is a floor on the name's age and not the release that introduced it. It is not a presence reading: which builds carried the name is the table below.

ReleaseDateThe span that was quoted
v2.1.2592 Sep 2026CLAUDE_CODE_ENABLE_FUNCTION_HOOKS
v2.1.2592 Sep 2026overridden by the CLAUDE_CODE_ENABLE_FUNCTION_HOOKS environment variable
v2.1.28022 Sep 2026hooks modules are not turned on for installed plugins in this process (early access: set CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 in its environment to load them); built-in plugins load regardless
v2.1.28022 Sep 2026hooks modules are not turned on in this build yet (early access); set CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 to run a plugin's tests
v2.1.28630 Sep 2026CLAUDE_CODE_ENABLE_FUNCTION_HOOKS is 0 in a settings file or in its environment
v2.1.28630 Sep 2026hooks modules are turned off in this process: CLAUDE_CODE_ENABLE_FUNCTION_HOOKS is 0 in a settings file or in its environment, or the rollout switch served off

Presence across releases

2
BuildsHow manyDatesReading
v2.1.259 – v2.1.28625 builds2 Sep 2026 → 30 Sep 2026 ◆in the build
v2.1.287 – v2.1.31930 builds1 Oct 2026 → 6 Nov 2026 ○not in the build

Build by build

55

One row per release since the first build this name was read out of. Absent means the build was read and the name was not in it, never mined means no bundle for that release was ever archived, and a declared type or a default is only ever what that release's own bundle stated.

BuildDateStateThe record behind it
v2.1.2592 Sep 2026·addedverdict: added · triBool
v2.1.2603 Sep 2026·presentverdict: present · triBool
v2.1.2614 Sep 2026·presentverdict: present · triBool
v2.1.2636 Sep 2026·presentverdict: present · triBool
v2.1.2658 Sep 2026·presentverdict: present · triBool
v2.1.2668 Sep 2026·presentverdict: present · triBool
v2.1.2679 Sep 2026·presentverdict: present · triBool
v2.1.26810 Sep 2026·presentverdict: present · triBool
v2.1.26911 Sep 2026·presentverdict: present · triBool
v2.1.27012 Sep 2026·presentverdict: present · triBool
v2.1.27114 Sep 2026·presentverdict: present · triBool
v2.1.27214 Sep 2026·presentverdict: present · triBool
v2.1.27315 Sep 2026·presentverdict: present · triBool
v2.1.27416 Sep 2026·presentverdict: present · triBool
v2.1.27517 Sep 2026·presentverdict: present · triBool
v2.1.27618 Sep 2026·presentverdict: present · triBool
v2.1.27718 Sep 2026·presentverdict: present · triBool
v2.1.27819 Sep 2026·presentverdict: present · triBool
v2.1.28022 Sep 2026·presentverdict: present · triBool
v2.1.28123 Sep 2026·presentverdict: present · triBool
v2.1.28224 Sep 2026·presentverdict: present · triBool
v2.1.28325 Sep 2026·presentverdict: present · triBool
v2.1.28428 Sep 2026·presentverdict: present · triBool
v2.1.28529 Sep 2026·presentverdict: present · triBool
v2.1.28630 Sep 2026·presentverdict: present · triBool
v2.1.2871 Oct 2026·removedverdict: removed
v2.1.2882 Oct 2026·absent—
v2.1.2893 Oct 2026·absent—
v2.1.2905 Oct 2026·absent—
v2.1.2916 Oct 2026·absent—
v2.1.2926 Oct 2026·absent—
v2.1.2937 Oct 2026·absent—
v2.1.2948 Oct 2026·absent—
v2.1.2958 Oct 2026·absent—
v2.1.2969 Oct 2026·absent—
v2.1.29914 Oct 2026·absent—
v2.1.30014 Oct 2026·absent—
v2.1.30115 Oct 2026·absent—
v2.1.30216 Oct 2026·absent—
v2.1.30318 Oct 2026·absent—
v2.1.30419 Oct 2026·absent—
v2.1.30520 Oct 2026·absent—
v2.1.30621 Oct 2026·absent—
v2.1.30721 Oct 2026·absent—
v2.1.30822 Oct 2026·absent—
v2.1.30922 Oct 2026·absent—
v2.1.31023 Oct 2026·absent—
v2.1.31126 Oct 2026·absent—
v2.1.31227 Oct 2026·absent—
v2.1.31430 Oct 2026·absent—
v2.1.31530 Oct 2026·absent—
v2.1.31631 Oct 2026·absent—
v2.1.3172 Nov 2026·absent—
v2.1.3183 Nov 2026·absent—
v2.1.3196 Nov 2026·absent—

Read out of the published npm bundle release by release, and out of Anthropic's own documentation as this site captured it. Nothing on this page is a description anybody here wrote about what the environment variable does. All environment variables.

Feedback