165 Environment Variables in Claude Code 2.1.69 — What Changed in 50 Versions#
Published on March 5, 2026
Back in January 2025, I extracted 83 undocumented environment variables from Claude Code v2.1.19's binary. Fifty versions later, I reran the same extraction on v2.1.69 and the count nearly doubled: 165 env vars, 16 model IDs, and 41 Statsig feature gates.
Here is what is new, what got removed, and why it matters.
The Numbers#
| v2.1.19 (Jan 2025) | v2.1.69 (Mar 2026) | |
|---|---|---|
| Environment variables | 83 | 165 |
| Model IDs in binary | — | 16 |
| Statsig feature gates | ~16 known | 41 |
| Dynamic configs | ~9 known | 30+ |
Biggest New Additions#
Plugin Ecosystem (6 new vars)#
Claude Code now has a full plugin system. Six new env vars control it:
| Variable | Purpose |
|---|---|
CLAUDE_CODE_PLUGIN_CACHE_DIR | Local cache directory for downloaded plugins |
CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS | Git clone timeout for plugin installation |
CLAUDE_CODE_PLUGIN_SEED_DIR | Seed directory for pre-installed plugins |
CLAUDE_CODE_PLUGIN_USE_ZIP_CACHE | Use zip-based caching instead of git |
CLAUDE_CODE_SYNC_PLUGIN_INSTALL | Install plugins synchronously (block until done) |
CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS | Timeout for synchronous plugin install |
This aligns with the enabledPlugins setting in settings.json where you can toggle community and official plugins.
mTLS / Enterprise Proxy Support (3 new vars)#
Mutual TLS support for enterprise environments:
| Variable | Purpose |
|---|---|
CLAUDE_CODE_CLIENT_CERT | Path to client certificate for mTLS |
CLAUDE_CODE_CLIENT_KEY | Path to client private key |
CLAUDE_CODE_CLIENT_KEY_PASSPHRASE | Passphrase for encrypted client key |
If your org uses a corporate proxy with mutual TLS, these are the vars you need.
Background Tasks and Cowork (5 new vars)#
| Variable | Purpose |
|---|---|
CLAUDE_AUTO_BACKGROUND_TASKS | Enable automatic background task execution |
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS | Disable background tasks entirely |
CLAUDE_CODE_ENABLE_TASKS | Enable the task system |
CLAUDE_CODE_IS_COWORK | Indicates running in cowork (multi-agent) mode |
CLAUDE_CODE_USE_CCR_V2 | Use Claude Code Router v2 for cowork sessions |
Context Window Controls (5 new vars)#
Fine-grained control over auto-compaction — the system that compresses your conversation when hitting token limits:
| Variable | Purpose |
|---|---|
CLAUDE_AFTER_LAST_COMPACT | Internal marker: post-compaction state |
CLAUDE_AUTOCOMPACT_PCT_OVERRIDE | Override the auto-compaction trigger percentage |
CLAUDE_CODE_DISABLE_PRECOMPACT_SKIP | Disable skipping pre-compaction checks |
CLAUDE_CODE_DISABLE_1M_CONTEXT | Disable the extended 1M token context window |
CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS | Max tokens for file read output |
If you read my context window management guide, CLAUDE_AUTOCOMPACT_PCT_OVERRIDE is particularly interesting — it lets you control exactly when compaction triggers.
Multi-Provider Auth (7 new vars)#
Claude Code now has explicit env vars for each cloud provider:
| Variable | Purpose |
|---|---|
CLAUDE_CODE_USE_BEDROCK | Use Amazon Bedrock as backend |
CLAUDE_CODE_USE_VERTEX | Use Google Vertex AI as backend |
CLAUDE_CODE_USE_FOUNDRY | Use Anthropic Foundry as backend |
CLAUDE_CODE_SKIP_BEDROCK_AUTH | Skip Bedrock authentication |
CLAUDE_CODE_SKIP_VERTEX_AUTH | Skip Vertex AI authentication |
CLAUDE_CODE_SKIP_FOUNDRY_AUTH | Skip Foundry authentication |
CLAUDE_CODE_CUSTOM_OAUTH_URL | Custom OAuth endpoint URL |
Fast Mode and UI Controls#
| Variable | Purpose |
|---|---|
CLAUDE_CODE_DISABLE_FAST_MODE | Disable the /fast toggle that uses the same model with faster output |
CLAUDE_CODE_DISABLE_TERMINAL_TITLE | Stop Claude Code from setting the terminal title |
CLAUDE_CODE_STREAMING_TEXT | Control streaming text display |
CLAUDE_CODE_QUESTION_PREVIEW_FORMAT | Format for permission question previews |
CLAUDE_CODE_SEARCH_HINTS_IN_LIST | Show search hints in tool list |
Remote and Server Mode (4 new vars)#
| Variable | Purpose |
|---|---|
CLAUDE_CODE_REMOTE_MEMORY_DIR | Memory directory for remote sessions |
CLAUDE_CODE_REMOTE_SEND_KEEPALIVES | Send keepalive pings in remote mode |
CLAUDE_CODE_SPAWNED_BY_SERVER | Indicates process was spawned by a server |
CLAUDE_CODE_RESUME_INTERRUPTED_TURN | Resume an interrupted agent turn |
What Got Removed (6 vars)#
| Removed Variable | Replacement / Notes |
|---|---|
CLAUDE_BASH_NO_LOGIN | Replaced by CLAUDE_CODE_SHELL_PREFIX |
CLAUDE_CODE_AGENT_SWARMS | Replaced by CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS |
CLAUDE_CODE_SIMPLETON | Renamed to CLAUDE_CODE_SIMPLE |
CLAUDE_CODE_SESSION_ID | Likely internalized / no longer exposed |
CLAUDE_CODE_PROFILE_QUERY | Likely merged into general profiling |
MAX_THINKING_TOKENS | Likely controlled via API settings now |
Model IDs in the Binary#
The v2.1.69 binary contains references to these model IDs:
claude-3-haiku-20240307
claude-3-opus-20240229
claude-3-sonnet-20240229
claude-3-5-haiku-20241022
claude-3-5-sonnet-20240620
claude-3-5-sonnet-20241022
claude-3-7-sonnet-20250219
claude-4-opus-20250514
claude-code-20250219
claude-haiku-4-5-20251001
claude-opus-4-20250514
claude-opus-4-1-20250805
claude-opus-4-5-20251101
claude-sonnet-4-20250514
claude-sonnet-4-5-20250514
claude-sonnet-4-5-20250929
The full Claude 4.x model family is visible — from Sonnet 4 through Opus 4.5.
New Dynamic Configs#
Several new Statsig dynamic configs appeared, revealing internal feature toggles:
| Config ID | Value | Likely Purpose |
|---|---|---|
| 522643335 | variant: "interactive_menu" | Interactive menu UI mode selector |
| 4008157471 | variant: "user_intent" | User intent classification system |
| 3148619311 | fromMarketplace: true | Plugin marketplace integration |
| 2719998910 | fallback_available_warning_threshold: 0.5 | Model fallback warning threshold |
| 3855860696 | scheduledDelayMillis: 5000, maxExportBatchSize: 200 | Telemetry export batching config |
| 4189951994 | tokenThreshold: 0.92 | Auto-compaction triggers at 92% of context window |
The tokenThreshold: 0.92 in config 4189951994 is worth noting — it confirms that auto-compaction triggers at 92% capacity, earlier than the ~95% many assumed.
How to Run This Yourself#
The extraction script lives at scripts/claude-code-extractor.py in the turboai.dev repo:
# Check your version
claude --version
# Run full extraction
python3 scripts/claude-code-extractor.py --all
# Just env vars
python3 scripts/claude-code-extractor.py --env-vars
# Just model IDs
python3 scripts/claude-code-extractor.py --models
The script reads from ~/.local/bin/claude (the binary) and ~/.claude/statsig/ (cached feature flags). No network requests needed.
What This Tells Us About Claude Code's Direction#
Fifty versions of env var growth paint a clear picture:
- Plugin ecosystem is real — Six new vars for plugin management means Anthropic is building an extensible platform, not just a CLI tool.
- Enterprise is a priority — mTLS, multi-provider auth (Bedrock/Vertex/Foundry), and org-level UUIDs show serious enterprise investment.
- Multi-agent is maturing — Swarms became Agent Teams, cowork got a v2 router, and background tasks enable truly autonomous agent workflows.
- Context management is getting smarter — Five new compaction-related vars suggest ongoing work on the 1M context window and how to manage it efficiently.
I plan to rerun this extraction periodically. The docs and raw JSON results are in docs/EXTRACTION_RUNS.md and docs/extractions/ for reproducibility.
Previously: 83 Undocumented Claude Code Environment Variables (v2.1.19)
Related: Context Window Management Guide | Claude Code Productivity Tips