{"version":"2.1.304","anchor":"new-env-vars-passed-through-to-bridgesdk-children-projects","canonical_anchor":"new-env-vars-to-skip-plugin-local-mcp-servers-and-gate-plugi","heading":"New environment variables for low-resource warnings, plugin MCP servers and child sessions","tier":"use","area":"Configuration","scope":"both","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.304\/e\/new-env-vars-passed-through-to-bridgesdk-children-projects","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.304","markdown":"### New environment variables for low-resource warnings, plugin MCP servers and child sessions\n\nNew environment variables add low disk and memory warnings, limit plugin MCP servers, and pass startup and project details to child sessions\n\n**What**\n\nAn environment variable is a setting handed to a program from outside, usually by whatever starts it. This release adds several, mostly aimed at hosted setups and programs that embed Claude Code:\n\n- `CLAUDE_CODE_WARN_DISK_FREE_GIB` and `CLAUDE_CODE_WARN_MEMORY_FREE_GIB` set thresholds, in GiB, for a new low-resource watchdog. It reads free memory from \/proc\/meminfo, container limits from cgroups and free disk space. When free space drops below a threshold it adds a critical \"Low disk space\" or \"Low memory\" reminder to the session, so Claude is told too. The disk threshold defaults to 0. Both are forced to 0, which switches them off, when an untraced check returns true. A server flag, `tengu_ccr_memory_watchdog`, adds reporting of memory use.\n\n- `CLAUDE_CODE_SKIP_PLUGIN_LOCAL_MCP_SERVERS` drops plugin MCP servers (outside tool providers bundled with plugins) other than sse, http and ws ones, logging \"only sse, http and ws servers load while CLAUDE_CODE_SKIP_PLUGIN_LOCAL_MCP_SERVERS is set\".\n\n- `CLAUDE_CODE_SKIP_PLUGIN_MCP_BUNDLES` and `CLAUDE_CODE_SKIP_PLUGIN_MCP_SERVERS_EXCEPT` were added to the list of known names; no code reading them was seen.\n\n- `CLAUDE_CODE_MCP_SERVE_ENABLED_PLUGINS` is new and is passed on to child processes.\n\n- `CLAUDE_CODE_SDK_READS_STARTUP_MARKS` makes Claude Code print `startup_mark` lines before its initialize response, for the SDK's startup() and prewarm().\n\n- `CLAUDE_CODE_BRIDGE_CHILD_PROJECTS_ENTRYPOINT` is set to \"1\" by the bridge, the part that starts child sessions, only for a child with the `projectThreadChild` role when a new check (minified `KOr`) passes; otherwise it is left unset. The child reads and clears it at startup and, in the right host mode, records `bridge_projects_entrypoint_name` or `host_name_kept`. It appears 13 times in this build and not at all in the previous one.\n\n- `CLAUDE_CODE_ATTRIBUTION_PROJECT` is new.\n\n- `CLAUDE_CODE_PERSONAL_CONFIG_FIX` is read by a new function.\n\nThese names were added to the lists that decide which variables are passed to, or removed from, child processes. `CLAUDE_CODE_ATTRIBUTION_PROJECT` and two of the SKIP_PLUGIN variables (not the _EXCEPT one) are removed from child environments, matched regardless of upper or lower case, as `CLAUDE_CODE_PLUGIN_DIRS` already was. A related feature-name list gains `bridge_projects_entrypoint_name` and `projects_reply_gate_policy`.\n\n**Why**\n\nIf you run Claude Code in a container or host it for others, you can now have both you and Claude warned before disk or memory runs out, and keep plugins from starting local MCP servers. The bridge and SDK variables are plumbing for host programs and do nothing unless something sets them.\n\n- Area: Configuration\n- Tier: Use it now\n- Useful: 5\/5\n- Signal: 4\/5\n- Scope: both\n- Heads-up: no"}