Unclear It is not clear what the extra step does to hooks that are not your organization's, or whether you will notice any difference.
What
Hooks are your own scripts or commands that Claude Code runs at set points, such as before a tool runs. Managed settings are settings an organization sets for everyone on its machines. Claude Code now decides, before each hook runs, whether it belongs to the organization or to the person using it:
- A hook counts as the organization's when it comes from managed policy or from an enterprise plugin (a plugin being an add-on package).
- Hooks that are not the organization's are run through an extra wrapper. Managed ones are not.
- The same check now covers command hooks, the
statusLinecommand and thefileSuggestioncommand. - A hook whose owner cannot be told is treated as the organization's, and an error is logged.
- Organization hooks that send HTTP requests have the variables in their headers filled in from a combined set of environment variables.
- The managed settings'
env(environment variables set by the organization) is now read on its own. If it cannot be read, Claude Code logs that no variable a person's plugin wrote is read as the organization's. - The older global-config
envlist is now captured once at launch. - Claude Code now also records the managed policy's hooks at startup, or the word "unreadable" if reading them fails, alongside the existing user hooks record.
Before, hooks ran directly with no record of who they belonged to.
Why
In organizations that use managed settings, a variable or hook added by a person's plugin can no longer be mistaken for one the organization set. This lays the ground for treating organization hooks and personal hooks differently.
It is not clear what the extra step does to hooks that are not your organization's, or whether you will notice any difference.