Every environment variable, and where it lived
1,448 environment variables One tick per build on this box, oldest on the left. A gap is a build the environment variable was not in.○ not in v2.1.308, ◇ we found no documentation describing it.
Environment variableWhat it doesSpan v2.1.138 → v2.1.308 Status
TERMINATOR_UUID ◇ When set (and no earlier check in terminal detection matched, such as TERM_PROGRAM, TMUX or VTE_VERSION), the terminal is reported as terminator. Its presence is also recorded as hasTerminatorUuid in an environment detection payload.v2.1.138 or earlier → v2.1.308 ◆in the build
TERMUX_VERSION ◇ Marks a Termux environment. When set together with PREFIX, the background daemon directory cc-daemon-<uid> is created under $PREFIX/tmp instead of /tmp, as is the fallback cc-socks-<uid> socket directory used when the usual socket path under XDG_RUNTIME_DIR would be too long. The sockets-directory ownership check also accepts the directory two levels above $PREFIX as a trusted root.v2.1.138 or earlier → v2.1.308 ◆in the build
TEST_ENABLE_SESSION_PERSISTENCE ◇ No description from anybody.v2.1.138 or earlier → v2.1.308 ◆in the build
TEST_GRACEFUL_FS_GLOBAL_PATCH ◇ Read by the bundled graceful-fs library: any non-empty value makes it patch the shared fs module object in place and export that, once, instead of exporting a patched clone.v2.1.138 or earlier → v2.1.308 ◆in the build
TILIX_ID ◇ When set (and no earlier check in terminal detection matched, such as TERM_PROGRAM, TMUX, TERMINATOR_UUID or KITTY_WINDOW_ID), the terminal is reported as tilix. Its presence is also recorded as hasTilixId in an environment detection payload.v2.1.138 or earlier → v2.1.308 ◆in the build
TMP ◇ Working-tree upload now refuses linked worktrees and checkouts sitting in temporary scratch directories.v2.1.160 → v2.1.308 ◆in the build
TMPDIR ◇ Working-tree upload now refuses linked worktrees and checkouts sitting in temporary scratch directories.v2.1.160 → v2.1.308 ◆in the build
TMUX ◇ More environment variables go through the central registry that handles allowlisting and scrubbing.v2.1.138 or earlier → v2.1.308 ◆in the build
TMUX_PANE ◇ The tmux pane Claude Code runs in. When TMUX is also set, Claude Code asks tmux display-message for this pane's session:window.pane address and stores it as tmux in its session pid file. The tmux teammate backend uses it as the current pane id and as the target when looking up the leader window, and falls back to asking tmux when it is unset.v2.1.138 or earlier → v2.1.308 ◆in the build
TRACEPARENT ◇ NO_PROXY is now in the same list of environment variables as SHELL, TRACEPARENT and GIT_CONFIG_NOSYSTEMv2.1.138 or earlier → v2.1.308 ◆in the build
TRACESTATE ◇ The W3C tracestate header that goes with TRACEPARENT: it is read alongside TRACEPARENT when extracting a parent trace context from the environment. When Claude Code injects trace context into a subprocess environment, it drops an inherited TRACESTATE and writes the propagator's value when there is one.v2.1.138 or earlier → v2.1.308 ◆in the build
ULTRAPLAN_PROMPT_FILE ◇ No description from anybody.v2.1.160 → v2.1.308 ◆in the build
USE_API_CLEAR_TOOL_RESULTS ◇ No description from anybody.v2.1.160 → v2.1.211 ○gone
USE_API_CLEAR_TOOL_USES ◇ No description from anybody.v2.1.160 → v2.1.211 ○gone
USE_API_CONTEXT_MANAGEMENT ◇ No description from anybody.v2.1.138 or earlier → v2.1.308 ◆in the build
USE_BUILTIN_RIPGREP ◇ More environment variables go through the central registry that handles allowlisting and scrubbing.v2.1.138 or earlier → v2.1.308 ◆in the build
USE_LOCAL_OAUTH ◇ Boolean (1, true, yes or on). When true, the Claude in Chrome bridge connects to ws://localhost:8765 instead of wss://bridge.claudeusercontent.com, as LOCAL_BRIDGE does, taking precedence over USE_STAGING_OAUTH, and the bridge client gets devUserId: "dev_user_local". The tool host helper check also stops treating an ANTHROPIC_BASE_URL on localhost, 127.0.0.1 or [::1] as sending traffic elsewhere when it is true.v2.1.138 or earlier → v2.1.308 ◆in the build
USE_STAGING_OAUTH ◇ Boolean (1, true, yes or on). When true, the Claude in Chrome bridge connects to wss://bridge-staging.claudeusercontent.com instead of wss://bridge.claudeusercontent.com; USE_LOCAL_OAUTH or LOCAL_BRIDGE take precedence and use ws://localhost:8765. The self-hosted runner sets it to 1 for sessions whose API base URL contains staging.v2.1.138 or earlier → v2.1.308 ◆in the build
USER ◇ When Claude Code is launched in diskless mode, your statusLine and fileSuggestion commands no longer runv2.1.138 or earlier → v2.1.308 ◆in the build
USER_TYPE ◇ The launcher now handles USER_TYPE specially when setting up the environment it passes down.never mined ·never mined
USERNAME ◇ Session cleanup now tracks which machine a process belongs to, so container ids stop colliding.v2.1.138 or earlier → v2.1.308 ◆in the build
USERPROFILE ◇ Working-tree upload now refuses linked worktrees and checkouts sitting in temporary scratch directories.v2.1.138 or earlier → v2.1.308 ◆in the build
UV_THREADPOOL_SIZE ◇ When Claude Code initializes an HTTP transport to an MCP server, it writes an Environment: log line for that server that includes UV_THREADPOOL_SIZE (shown as default when unset or empty), next to NODE_OPTIONS and the proxy variables. Claude Code does not otherwise read it.v2.1.138 or earlier → v2.1.308 ◆in the build
VCR_RECORD ◇ No description from anybody.v2.1.138 or earlier → v2.1.308 ◆in the build
VERCEL ◇ When the value is 1, true, yes or on (case-insensitive, trimmed), Claude Code's deployment-environment detection reports vercel, provided none of the earlier checks (Codespaces, Gitpod, Coder, DevPod, Daytona, Google Cloud Workstations, Cloud9, Replit, Glitch) matched first.v2.1.138 or earlier → v2.1.308 ◆in the build
VERTEX_REGION_CLAUDE_5_OPUS ◇ Opus 5 is now the default Opus, with a 1M-context option in the model picker.never mined ·never mined
VISUAL ◇ Vim mode no longer opens in VISUAL mode on first mountv2.1.138 or earlier → v2.1.308 ◆in the build
VITALS_EMITTER_BIN ◇ Hosted cloud sessions can spawn a separate health-reporting helper, which never resolves on a normal install.v2.1.239 → v2.1.308 ◆in the build
VOICE_STREAM_BASE_URL ◇ Session reset and model fallback use named stores, and cert env vars go through one accessor.v2.1.138 or earlier → v2.1.308 ◆in the build
VSCODE_GIT_ASKPASS_MAIN ◇ Claude Code reads this path for IDE detection: a value containing cursor identifies Cursor (labelled Cursor (remote) in one display path), Windsurf or Devin install paths identify Windsurf or Devin Desktop, and antigravity identifies Antigravity. A value containing .vscode-server, .cursor-server, .windsurf-server or .devin-server marks the session as running under a remote IDE server, as the same text in PATH also does. It is also on the list of terminal variables that a background session spawn removes from the inherited environment unless the dispatch request supplies its own value.v2.1.138 or earlier → v2.1.308 ◆in the build
VTE_VERSION ◇ Startup telemetry now records your mouse mode, Linux clipboard tool and whether VTE is set.v2.1.138 or earlier → v2.1.308 ◆in the build
WAYLAND_DISPLAY ◇ On Wayland, clipboard and primary-selection writes now happen in order, not simultaneously.v2.1.161 → v2.1.308 ◆in the build
WEBSITE_SITE_NAME ◇ When WEBSITE_SITE_NAME or WEBSITE_SKU is non-empty, Claude Code's deployment-environment detection reports azure-app-service, provided no earlier check matched (development environments, hosting platforms such as Vercel and Fly.io, AWS, Cloud Run and GOOGLE_CLOUD_PROJECT).v2.1.138 or earlier → v2.1.308 ◆in the build
WEBSITE_SKU ◇ When WEBSITE_SITE_NAME or WEBSITE_SKU is non-empty, Claude Code's deployment-environment detection reports azure-app-service, provided no earlier check matched (development environments, hosting platforms such as Vercel and Fly.io, AWS, Cloud Run and GOOGLE_CLOUD_PROJECT).v2.1.138 or earlier → v2.1.308 ◆in the build
WEZTERM_PANE ◇ No description from anybody.v2.1.296 → v2.1.308 ◆in the build
WINDIR ◇ More Windows environment variables, such as SYSTEMROOT, COMSPEC and PSMODULEPATH, now get special handling when set in settings envv2.1.242 → v2.1.252 ○gone
WSL_DISTRO_NAME ◇ Claude Code no longer always treats WSL_DISTRO_NAME being set as proof it runs under WSL, and can fall back to checking the systemv2.1.138 or earlier → v2.1.308 ◆in the build
WSL_INTEROP ◇ On Linux, Claude Code's environment detection reports the platform as wsl when WSL_DISTRO_NAME or WSL_INTEROP is non-empty; with neither set, it decides from the kernel version string.v2.1.157 → v2.1.308 ◆in the build
WT_SESSION ◇ No description from anybody.v2.1.138 or earlier → v2.1.308 ◆in the build
XDG_CACHE_HOME ◇ No description from anybody.v2.1.251 → v2.1.308 ◆in the build
XDG_CONFIG_HOME ◇ Remote settings can now supply many more environment variables, including auth tokens and home directory paths.v2.1.138 or earlier → v2.1.308 ◆in the build
XDG_DATA_HOME ◇ No description from anybody.v2.1.208 → v2.1.308 ◆in the build
XDG_RUNTIME_DIR ◇ The messaging socket lives under XDG_RUNTIME_DIR with locked-down permissions and refuses to hijack a live one.v2.1.138 or earlier → v2.1.308 ◆in the build
XDG_STATE_HOME ◇ No description from anybody.v2.1.251 → v2.1.308 ◆in the build
XTERM_VERSION ◇ When set, Claude Code's environment detection reports the terminal as xterm, provided no earlier check matched (the IDE checks, TERM=xterm-ghostty, a kitty TERM, TERM_PROGRAM, TMUX, STY, KONSOLE_VERSION, GNOME_TERMINAL_SERVICE). It is also on the list of terminal variables that a background session spawn removes from the inherited environment unless the dispatch request supplies its own value.v2.1.138 or earlier → v2.1.308 ◆in the build
ZDOTDIR ◇ Policy-helper environment scrubbing moved into its own module and now strips more variablesv2.1.242 → v2.1.308 ◆in the build
ZED_TERM ◇ When set, Claude Code treats the terminal as supporting strikethrough text (unless TERM_PROGRAM is Apple_Terminal or TERM is linux), and its synchronized-output check reports the terminal as likely supporting it with the source env: ZED_TERM, unless an earlier check decides first, such as a set TMUX. It is also on the list of terminal variables that a background session spawn removes from the inherited environment unless the dispatch request supplies its own value.v2.1.138 or earlier → v2.1.308 ◆in the build
ZELLIJ ◇ Zellij is now detected as a terminal multiplexer alongside tmux and screen.v2.1.138 or earlier → v2.1.308 ◆in the build
Nothing on this page matches that. Press Enter to search every environment variable.