{"version":"2.1.290","anchor":"subprocess-env-now-applies-settings-env-before-filtering","canonical_anchor":"subprocess-env-now-applies-settings-env-before-filtering","heading":"Environment variables from settings are applied earlier for programs Claude Code starts","tier":"notice","area":"Settings","scope":"both","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.290\/e\/subprocess-env-now-applies-settings-env-before-filtering","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.290","markdown":"### Environment variables from settings are applied earlier for programs Claude Code starts\n\nEnvironment variables from your settings are now added before Claude Code filters the environment it passes to programs it starts\n\n**Unclear.** Exactly which settings variables now reach child programs that did not before, or the reverse, is not settled.\n\n**What**\n\nWhen Claude Code starts another program, such as a shell command, it builds an environment for it: the set of named values, like `PATH`, that the program can read. Claude Code now adds the environment variables defined in your settings before it removes the ones it does not pass on. Before, only colour-related settings values were added, and they were added last.\n\nThe merge now treats names that differ only in upper and lower case as the same name, and filters Windows-style names. `CLAUDE_CODE_PERFORCE_MODE` is protected so that it is kept when it is set to a true-like value.\n\n**Why**\n\nVariables you set in your settings may now reach the programs Claude Code starts differently than before. If a command behaves differently with respect to an environment variable, check what your settings define.\n\n- Area: Settings\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 1\/5\n- Scope: both\n- Heads-up: yes"}