{"version":"2.1.319","anchor":"claude-code-disable-feature-flags-added-as-a-switch-alongsid","canonical_anchor":"claude-code-disable-feature-flags-added-as-a-switch-alongsid","heading":"CLAUDE_CODE_DISABLE_FEATURE_FLAGS turns off downloaded feature flags alongside DISABLE_GROWTHBOOK","tier":"use","area":"Internals","scope":"both","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.319\/e\/claude-code-disable-feature-flags-added-as-a-switch-alongsid","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.319","markdown":"### CLAUDE_CODE_DISABLE_FEATURE_FLAGS turns off downloaded feature flags alongside DISABLE_GROWTHBOOK\n\nA new CLAUDE_CODE_DISABLE_FEATURE_FLAGS variable joins DISABLE_GROWTHBOOK, messages name whichever is set, and self-hosted runners pass it on\n\n**Unclear.** Whether setting CLAUDE_CODE_DISABLE_FEATURE_FLAGS actually stops the flag download, and whether DISABLE_GROWTHBOOK still works everywhere, is not confirmed.\n\n**What**\n\nFeature flags are settings Claude Code downloads from Anthropic to turn features on or off. An environment variable is a named value you set outside Claude Code, for example in your shell.\n\n- A new variable name, `CLAUDE_CODE_DISABLE_FEATURE_FLAGS`, appears next to `DISABLE_GROWTHBOOK`. A helper reports which one is turning feature flags off: `CLAUDE_CODE_DISABLE_FEATURE_FLAGS` if it is set, otherwise `DISABLE_GROWTHBOOK`. Where the flag-loading code itself reads the new variable was not traced.\n\n- The `no_flags` message used to say that `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` or `DISABLE_GROWTHBOOK` turns flags off. It now names whichever one is active. When neither of the two flag variables is set, it names `CLAUDE_CODE_DISABLE_FEATURE_FLAGS`.\n\n- Direct `DISABLE_GROWTHBOOK` checks now go through the helper. These are in the Remote Control error text, the flag diagnostics and the telemetry gating. The Remote Control message names whichever variable is set, with no special `DISABLE_GROWTHBOOK` case. The diagnostics are relabelled as `featureFlagsEnabled`, `featureFlagsDisabledBy` and `featureFlagCount`.\n\n- A self-hosted runner is a machine you run yourself to carry out remote sessions. It now passes `CLAUDE_CODE_DISABLE_FEATURE_FLAGS` and `CLAUDE_RUNNER_OFFERS_NEW_MACHINE` to the sessions it starts. It now works out the value of `DISABLE_GROWTHBOOK` for those sessions instead of copying its own. It also has a new way to respond when a session asks for a new machine.\n\n**Why**\n\nThere is now a name for opting out of downloaded feature flags that does not refer to GrowthBook. Messages tell you which variable is doing it. If you run self-hosted runners and rely on `DISABLE_GROWTHBOOK`, the value your sessions receive is now worked out by the runner, not copied straight through.\n\n- Area: Internals\n- Names: `CLAUDE_CODE_DISABLE_FEATURE_FLAGS`, `DISABLE_GROWTHBOOK`\n- Tier: Use it now\n- Useful: 5\/5\n- Signal: 3\/5\n- Scope: both\n- Heads-up: no"}