What
CLAUDE_CODE_ENABLE_FUNCTION_HOOKS is an environment variable, a setting passed to a program when it starts. Several places that used it have changed:
- Claude Code no longer adds
CLAUDE_CODE_ENABLE_FUNCTION_HOOKS: "1"when it builds the environment for a program it launches. It now passes the copied environment through unchanged. - A fixed
CLAUDE_CODE_ENABLE_FUNCTION_HOOKSentry in the list of variables passed along to other processes was replaced by a shared list. - The check that decides whether function hooks are on no longer reads the variable directly. It now goes through a different check.
- The message shown when hooks modules are turned off is shorter. It used to say the variable could be set to 0 in a settings file or the environment to turn them off, and set to 1 to force them on over a rollout that served off. It now says only that the rollout switch served off. For installed plugins it adds that built-in plugins load regardless. For plugin tests it says they run only while the switch is on.
- A new
apply-project-settingssubcommand check was also observed in the same area.
The variable's name now appears 2 times in the program instead of 12. That suggests the override was removed or reduced, but the members did not confirm it.
Why
If you or a plugin's tests relied on setting CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 to force hooks modules on, check that it still has an effect. The error message no longer offers it as an option.
Something disagreesSomething we can check disagrees with this entry, or the writer said they could not settle it.
The writer flagged doubt
Whether `CLAUDE_CODE_ENABLE_FUNCTION_HOOKS` still turns hooks modules on or off is not settled.