Claude Code v2.1.118 — 10 New Environment Variables: Forked Subagents Ship, Subscription Tiering Takes Shape#
Published on April 23, 2026
Part of the Claude Code Version Tracker series. | Official Env Vars | Official Changelog
Claude Code moved from v2.1.114 to v2.1.118 across four releases, and the standout shift is structural: forked subagents are now enabled on external builds via CLAUDE_CODE_FORK_SUBAGENT=1[1]. What was internal-only multi-agent capability is now a documented, opt-in flag for any Claude Code user. Around that, the release stretch adds standard proxy support, a pair of bridge-reconnection vars that harden Remote Control sessions, rate-limit and subscription-type differentiation, a minimal system prompt mode, and a top-level DISABLE_UPDATES kill-switch for environments that manage updates outside npm.
This release window also coincides with Anthropic's public postmortem on a quality regression that affected Claude Code users throughout March and April — the fixes landed in v2.1.116, the same build that shipped the /resume speed improvements.
What Changed#
| v2.1.114 | v2.1.118 | |
|---|---|---|
| Environment variables | 250 | 260 (+10) |
| Model IDs | 17 | 17 |
| Feature gates | 41 | 41 |
| Dynamic configs | 29 | 29 |
| Slash commands | 24 | 25 |
The Quality Regression Postmortem#
On April 23, Anthropic published a full postmortem[2] acknowledging that Claude Code quality had slipped over the prior month and a half. Boris Cherny, who leads Claude Code, confirmed the regression and the fixes in a Threads post[3]. Three distinct issues compounded each other across the v2.1.114–v2.1.116 window:
Issue 1 — Reasoning effort default lowered (March 4 → April 7). The default reasoning effort was changed from high to medium to address UI freezing from excessive thinking time. Users noticed: the feedback was unambiguous that they preferred intelligence over reduced latency. The default was restored on April 7.
Issue 2 — Thinking history caching bug (March 26 → April 10). A prompt caching optimization shipped with a critical flaw: instead of clearing reasoning history once after session idle periods, the code kept clearing it every turn for the rest of the session. The result was a Claude that lost context as conversations progressed — appearing forgetful and less capable in longer sessions. The bug also triggered unexpected cache misses, which drained usage limits faster than expected.
Issue 3 — Verbosity reduction system prompt (April 16 → April 20). An instruction added to the system prompt to keep responses under specific word counts caused a 3% intelligence drop when tested against broader evaluation suites. It was reverted four days later in v2.1.116.
Timeline: v2.1.116 (April 20) shipped with all three fixes. Anthropic reset usage limits for all subscribers on April 23 as compensation for the accelerated drain caused by the caching bug's cache miss side effect.
What it means for env var watchers: The postmortem commits Anthropic to soak periods and gradual rollouts for intelligence-affecting changes, broader per-model evaluations before system prompt changes land, and internal staff using public builds during testing. These process changes are relevant context for CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT in this release — a var that controls system prompt verbosity. Given the regression caused by an inadvertent verbosity reduction, expect system prompt changes to face much higher internal scrutiny going forward.
Forked Subagents Go External#
The single most significant env var in this release is CLAUDE_CODE_FORK_SUBAGENT. The v2.1.117 changelog is direct: "Forked subagents now enabled on external builds via CLAUDE_CODE_FORK_SUBAGENT=1."[1] Before this, the Agent Teams subagent forking mechanism was gated to internal or managed builds. Setting this flag on a standard external install unlocks the same multi-agent delegation path — spawning subagents as parallel workers, each with their own tool context, rather than running agents in serial within the same session.
This is the same architecture that CLAUDE_INTERNAL_ASSISTANT_TEAM_NAME and CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS backed in v2.1.114. The pipeline is now open to external users: opt in, fork agents, tune stall timeouts if needed. Agent Teams as a product feature may still require a plan; CLAUDE_CODE_FORK_SUBAGENT is the runtime mechanism, not a plan entitlement check.
User-Facing Highlights#
v2.1.116 delivered a 67% speed improvement for /resume on large sessions (40 MB+) and faster MCP startup via concurrent connections. v2.1.117 made model selections persist across restarts, with Opus 4.6 and Sonnet 4.6 defaulting to high effort. v2.1.118 introduced vim visual mode (v for character, V for line), merged /cost and /stats into a single /usage command, added /theme JSON editing for custom themes, and enabled hooks to invoke MCP tools directly — expanding the hook surface from shell commands to the full MCP tool namespace.
WSL users get Windows-side settings inheritance in v2.1.118: Claude Code running under WSL now reads the Windows Claude settings file when no Linux-side settings are present. Auto mode gains support for "$defaults" in allow/deny lists, letting managed deployments layer on top of the default ruleset rather than replace it.
New Environment Variables#
| Variable | Likely Purpose |
|---|---|
CLAUDE_CODE_FORK_SUBAGENT | Set to 1 to enable forked-subagent execution on external builds. Unlocks the Agent Teams multi-agent delegation path that was previously internal-only — subagents run as parallel forked workers rather than serial tasks within a single session context. |
CLAUDE_CODE_SUBSCRIPTION_TYPE | Passes the user's subscription tier into the runtime. Feeds capability checks that gate features by plan — the internal equivalent of "is this user on Pro, Max, or Enterprise?" Different subscription types likely produce different default configs, rate headroom, and feature gate evaluations. |
CLAUDE_CODE_RATE_LIMIT_TIER | Encodes the rate-limit bucket the session belongs to. Distinct from subscription type — a single plan can have multiple limit tiers based on usage patterns or promotional grants. Allows the runtime to apply per-tier backoff and throttling logic without a round-trip to the API to discover limits. |
CLAUDE_CODE_HTTP_PROXY | Standard HTTP proxy URL, Claude-namespaced. Complements v2.1.114's proxy auth helper protocol (CLAUDE_CODE_ENABLE_PROXY_AUTH_HELPER) with the base-case static proxy scenario — no auth helper needed, just a proxy address. Corporate users on plain HTTP proxies who found the v2.1.114 vars overkill now have a direct path. |
CLAUDE_CODE_HTTPS_PROXY | Same pattern as HTTP_PROXY but for TLS connections. Both vars are Claude-namespaced rather than using the conventional HTTP_PROXY/HTTPS_PROXY because Claude Code needs to distinguish its own proxy config from ambient proxy env vars set for other processes in the same shell. |
CLAUDE_BRIDGE_REATTACH_SEQ | A sequence number used when reattaching a Remote Control bridge after a dropped connection. The sequence counter lets both sides detect missed frames and request a replay rather than starting the session over. First evidence of protocol-level reconnection logic in the bridge layer — this is distinct from application-level session resume. |
CLAUDE_BRIDGE_REATTACH_SESSION | The session identifier passed during bridge reattachment. Paired with CLAUDE_BRIDGE_REATTACH_SEQ, it lets a reconnecting mobile or web Remote Control client say "I am session X, resume from sequence N" rather than starting a new bridge. Together these two vars describe a stateful reconnection handshake. |
CLAUDE_CODE_RETRY_WATCHDOG | Controls a watchdog timer that monitors retry loops and kills them if they exceed a threshold. Prevents a stalled retry from consuming the session indefinitely — the retry-side complement to v2.1.114's CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS, which covered stream stalls. Together they close most of the "session hangs silently" surface. |
CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT | Switches to a reduced system prompt, stripping out the non-essential guidance sections that bulk up the default prompt. Useful in latency-sensitive or token-budget-constrained deployments where the full prompt overhead isn't justified — SDK or CI contexts where Claude is given a narrow task and needs to start fast. Note: given the April 23 postmortem's finding that a verbosity reduction caused a 3% intelligence drop, this var should be tested carefully against your task distribution before using in production. |
DISABLE_UPDATES | Explicitly documented in the v2.1.118 changelog. Prevents Claude Code from auto-checking for or applying npm updates. Intended for environments where updates are managed externally — enterprise deployment pipelines, IT-managed workstations, or Docker images that pin a specific version. Without this flag, Claude Code will prompt when a newer version is available. |
What These Tell Us#
Forked subagents leaving internal builds is the structural shift. The Agent Teams architecture has been assembling in the binary since v2.1.114 — stall detection, team name propagation, subagent prompt injection. Making the fork mechanism available via CLAUDE_CODE_FORK_SUBAGENT=1 on external builds is Anthropic opening the gate before the UI product is fully ready. Engineers who want to run parallel subagent workflows can do so today; the Agent Teams product surface will eventually wrap this with plan entitlements and a UI. Expect CLAUDE_CODE_SUBSCRIPTION_TYPE and CLAUDE_CODE_RATE_LIMIT_TIER to become the mechanism by which forked subagent concurrency is capped by tier once the product is generally available.
Subscription and rate-limit vars point toward structural plan differentiation. The v2.1.114 post noted CLAUDE_INTERNAL_ASSISTANT_TEAM_NAME as evidence that Agent Teams was real. CLAUDE_CODE_SUBSCRIPTION_TYPE and CLAUDE_CODE_RATE_LIMIT_TIER go a step further: they describe a runtime that isn't one-size-fits-all. Capability gates, rate headroom, and potentially default model routing will vary by tier without code changes. Combined with CLAUDE_CODE_FORK_SUBAGENT's external unlock, you can read these vars as the scaffolding for a product that charges meaningfully different amounts for meaningfully different throughput.
Bridge and retry hardening finishes the "silent hang" story. CLAUDE_BRIDGE_REATTACH_SEQ, CLAUDE_BRIDGE_REATTACH_SESSION, and CLAUDE_CODE_RETRY_WATCHDOG target the same class of failure: a session that drops mid-flight and gives the user no clear recovery path. The bridge vars add a sequence-aware reconnection handshake to Remote Control; the retry watchdog kills runaway retry loops before they consume the session. Together with v2.1.114's CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS and CLAUDE_SLOW_FIRST_BYTE_MS, Claude Code now has observability and hard timeouts at every major hang point — stream stall, retry loop, bridge drop, and first-byte delay. The pattern suggests a broader engineering push to make session failure modes deterministic rather than "wait until the user kills it."
Sources#
- Claude Code Official Changelog — v2.1.115, v2.1.116, v2.1.117, v2.1.118 release notes
- An update on recent Claude Code quality reports — Anthropic engineering blog, April 23, 2026
- Boris Cherny on Threads — Claude Code quality regression acknowledgment and fix summary
This analysis is conducted for independent security research and interoperability purposes under fair use principles. All trademarks belong to their respective owners. The information presented here documents publicly observable behavior of installed software and is not intended to circumvent any technological protection measures, infringe on intellectual property rights, or encourage unauthorized use. Use these findings at your own discretion.
Related Versions#
- Claude Code v2.1.114 — 20 New Environment Variables — Native binary launcher,
/fewer-permission-prompts, and Agent Teams - Claude Code v2.1.108 — 3 New Environment Variables — Prompt caching TTL and session recap
- Claude Code v2.1.107 — 6 New Environment Variables — Worktrees, away mode, and stream resilience
- Claude Code v2.1.104 — 2 New Environment Variables — Enterprise TLS and SDK OAuth
- Claude Code v2.1.100 — 3 New Environment Variables — Context token limits, Perforce VCS, script caps
Related: Context Window Management Guide | Claude Code Productivity Tips | The Agentic Engineering Playbook