What it is
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.
Presence across releases
1Build by build
18One 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.
First cited
2The 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 above.
Names beside it
Every environment variable in the inventory starting claude_code_enable, up to twelve of them.
CLAUDE_CODE_ENABLE_APPEND_SUBAGENT_PROMPTNo description from anybody. v2.1.138
CLAUDE_CODE_ENABLE_AUTO_MODEAccepted for compatibility with older releases and has no effect. Auto mode is available by default on every provider, including Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, and signed-in [Claude apps gateway](/docs/en/claude-apps-gateway) sessions. In v2.1.158 through v2.1.206, setting this to 1 was required to make [auto mode](/docs/en/permission-modes#eliminate-prompts-with-auto-mode) available on those providers v2.1.158
CLAUDE_CODE_ENABLE_AWAY_SUMMARYOverride [session recap](/docs/en/interactive-mode#session-recap) availability. Set to 0 to force recaps off regardless of the /config toggle. Set to 1 to force recaps on when [awaySummaryEnabled](/docs/en/settings-reference#awaysummaryenabled) is false. Takes precedence over the setting and /config toggle v2.1.138
CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESHSet to 1 to refresh plugin state at turn boundaries in [non-interactive mode](/docs/en/headless) after a background install completes. Off by default because the refresh changes the system prompt mid-session, which invalidates [prompt caching](/docs/en/prompt-caching) for that turn v2.1.138
CLAUDE_CODE_ENABLE_CFCRestricted sessions skip Claude in Chrome browser wiring, same as safe mode. v2.1.138
CLAUDE_CODE_ENABLE_DESIGN_MCPNo description from anybody. v2.1.179
CLAUDE_CODE_ENABLE_DESIGN_SYNCNo description from anybody. v2.1.166
CLAUDE_CODE_ENABLE_EXPERIMENTAL_ADVISOR_TOOLThe experimental advisor override no longer skips per-model eligibility checks, only the rank requirement. v2.1.138
CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTELSet to 1 to route the "How is Claude doing?" session quality survey to your own [OpenTelemetry collector](/docs/en/monitoring-usage) when Anthropic-bound nonessential traffic is blocked. Survey ratings are emitted only as OTEL events to your configured collector. No survey data is sent to Anthropic in this mode. Applies when CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC, DISABLE_TELEMETRY, or DO_NOT_TRACK is set, and has no effect otherwise. CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY and the organization product feedback policy take precedence v2.1.138
CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMINGControls whether tool call inputs stream from the API as Claude generates them. With this off, a large tool input such as a long file write arrives only after Claude finishes generating it, which can look like it's hanging. Enabled by default on the Anthropic API. On Amazon Bedrock and Google Cloud's Agent Platform, enabled per model where the deployed container supports it. Set to 0 to opt out. Set to 1 to force on when routing through a proxy via ANTHROPIC_BASE_URL, ANTHROPIC_VERTEX_BASE_URL, or ANTHROPIC_BEDROCK_BASE_URL. Off by default on Microsoft Foundry and [gateway](/docs/en/llm-gateway) connections v2.1.138
CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERYSet to 1 to populate the /model picker from your gateway's /v1/models endpoint when ANTHROPIC_BASE_URL points at an Anthropic-compatible gateway such as LiteLLM, Kong, or an internal proxy. Off by default because gateways backed by a shared API key would otherwise show every user every model the key can access. Discovered models are still filtered by an [availableModels](/docs/en/settings-reference#availablemodels) allowlist the session receives; deliver the list through [MDM or a managed settings file](/docs/en/managed-settings#delivery-mechanisms), since [server-managed delivery is not available on gateway configurations](/docs/en/server-managed-settings#platform-availability) v2.1.138
CLAUDE_CODE_ENABLE_LAUNCH_COMPOSERNo description from anybody. v2.1.193
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.