Claude Code v2.1.114 — Native Launcher, Fullscreen TUI, /ultrareview, and 20 New Environment Variables#
Published on April 20, 2026
Part of the Claude Code Version Tracker series. | Official Env Vars | Official Changelog
Claude Code moved from v2.1.107 to v2.1.114 across seven releases, and this is the biggest stretch of user-visible wins in months[1]. Fullscreen TUI with flicker-free rendering (/tui fullscreen). Cloud-based PR review (/ultrareview). 1-hour prompt caching (ENABLE_PROMPT_CACHING_1H). Session recap when you come back from lunch. A dedicated xhigh effort level for Opus 4.7 with an interactive slider. The CLI now spawns a native binary instead of bundled JavaScript. And a pile of the small fixes that have been grinding on power users — clear errors on stalled subagents, clickable wrapped URLs, readline-compatible Ctrl+A/E in multiline input, glob patterns and cd <project> no longer prompting for permission. Under the hood, the binary gained 20 new environment variables and one new model snapshot (claude-opus-4-6-20251101) — the plumbing behind Agent Teams, a proxy auth helper subprocess, and a server-side Advisor tool.
What Changed#
| v2.1.107 | v2.1.114 | |
|---|---|---|
| Environment variables | 230 | 250 (+20) |
| Model IDs | 16 | 17 (+1) |
| Feature gates | 41 | 41 |
| Dynamic configs | 29 | 29 |
| Slash commands | 24 | 24 |
User-Facing Highlights#
Rendering and the TUI#
/tui fullscreen(v2.1.110) switches the current conversation into a flicker-free fullscreen mode. Combined with v2.1.113's native binary, this is the biggest rendering overhaul of the 2.1 line.autoScrollEnabledconfig lets you pin the viewport.- Shift+↑/↓ extends selection past the visible edge in fullscreen (v2.1.113) — a small thing that matters a lot when copying long tool output.
Ctrl+A/Ctrl+Enow move to the start/end of the current logical line in multiline input, matching readline (v2.1.113).Ctrl+Uclears the entire buffer,Ctrl+Yrestores it (v2.1.111).Ctrl+Lforces a full redraw. WindowsCtrl+Backspacedeletes the previous word.- OSC 8 wrapped URLs stay clickable when they break across lines (v2.1.113) — no more "select, strip newline, paste" dance.
- "Auto (match terminal)" theme (v2.1.111) picks dark/light from your terminal rather than Claude's own setting.
- Fixes for iTerm2 + tmux tearing, washed-out 16-color palette over SSH/mosh (Ghostty, Kitty, Alacritty, WezTerm, foot, rio, Contour), garbled startup in macOS Terminal.app, missing cursor when
NO_COLORis set, and/helpdropping its tab bar at short heights.
/ultrareview, /effort, and Opus 4.7 xhigh#
/ultrareview(v2.1.111) runs comprehensive code review in the cloud with parallel multi-agent analysis. No args reviews your current branch;/ultrareview <PR#>fetches and reviews a GitHub PR. v2.1.113 parallelized its checks, added a diffstat to the launch dialog, and gave it an animated launching state.- Opus 4.7 xhigh (v2.1.111) sits between
highandmaxeffort./effortwithout arguments now opens an interactive slider with arrow-key navigation. Other models fall back tohighwhen you pick xhigh. - Auto mode for Max subscribers with Opus 4.7 (v2.1.111), and auto mode no longer requires
--enable-auto-mode. - v2.1.112 was a one-line hotfix for "claude-opus-4-7 is temporarily unavailable" in auto mode.
Prompt caching, context, and reliability#
ENABLE_PROMPT_CACHING_1H(v2.1.108) opts into 1-hour prompt cache TTL on API key, Bedrock, Vertex, and Foundry — the formerENABLE_PROMPT_CACHING_1H_BEDROCKis deprecated but still honored.FORCE_PROMPT_CACHING_5Mforces the 5-minute TTL. Subscribers who setDISABLE_TELEMETRYno longer fall back to 5-minute TTL when they should be getting the hour.- Session recap (v2.1.108) — returning to a long session now gets an automatic catch-up summary, manually invokable with
/recap. Extended to telemetry-disabled users (Bedrock, Vertex, Foundry) in v2.1.110. - Subagents that stall mid-stream now fail with a clear error after 10 minutes instead of hanging silently (v2.1.113) — tunable via the new
CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS. - Non-streaming fallback retry cap from v2.1.110 was reverted in v2.1.111 — it traded long waits for outright failures during API overload, and users noticed.
- Compacting a resumed long-context session no longer fails with "Extra usage is required for long context requests" (v2.1.113).
- MCP concurrent-call timeout: a message for one tool call could silently disarm another call's watchdog. Fixed (v2.1.113).
Permissions and sandboxing#
- Read-only Bash with glob patterns (e.g.,
ls *.ts) and commands starting withcd <project-dir> &&no longer trigger permission prompts (v2.1.111).cd <current-directory> && git …is treated as a no-op and doesn't prompt either (v2.1.113). /less-permission-promptsskill (v2.1.111) scans your transcripts for repeated read-only Bash and MCP calls and proposes a prioritized allowlist for.claude/settings.json.- Security hardening (v2.1.113):
/private/{etc,var,tmp,home}on macOS are now dangerous removal targets underBash(rm:*); deny rules match commands wrapped inenv/sudo/watch/ionice/setsid;Bash(find:*)allows no longer auto-approve-exec/-delete; BashdangerouslyDisableSandboxno longer silently skipped the permission prompt. sandbox.network.deniedDomainssetting (v2.1.113) blocks specific domains even when a broader wildcardallowedDomainsrule would permit them.Open in editorhardened against command injection from untrusted filenames (v2.1.110).
Remote Control, SDK, and observability#
- Remote Control parity —
/context,/exit,/reload-plugins,@-file autocomplete,/extra-usage, and subagent transcript streaming all now work from mobile/web clients. - Push notification tool (v2.1.110) — Claude can send mobile push notifications when Remote Control and "Push when Claude decides" are enabled.
- SDK/headless distributed tracing —
TRACEPARENT/TRACESTATEare read from the environment and stitched into spans (v2.1.110). OTEL_LOG_RAW_API_BODIES(v2.1.111) emits full request/response bodies as OpenTelemetry log events for debugging.- Headless
--output-format stream-jsonnow includesplugin_errorson the init event when plugins are demoted.
Agent behavior and ergonomics#
- Plan files named after your prompt (v2.1.111) —
fix-auth-race-snug-otter.mdinstead of "two random words". Small, delightful. - Model can discover and invoke built-in slash commands like
/init,/review,/security-reviewvia the Skill tool (v2.1.108). /modelwarns before switching mid-conversation (v2.1.108) — the next response re-reads history uncached./resumepicker defaults to current directory,Ctrl+Ashows all projects (v2.1.108).--resume/--continuenow resurrect unexpired scheduled tasks (v2.1.110).- Typo suggestions —
claude udpatenow prompts "Did you meanclaude update?" (v2.1.111). - LSP diagnostics from before an edit no longer appear after it (v2.1.111) — fixed the nasty bug where the model would re-read a file it had just edited.
@file suggestions no longer re-scan the entire project every turn in non-git directories (v2.1.111).- v2.1.114's lone entry: fixed a crash in the permission dialog when an Agent Teams teammate requested tool permission.
Windows-specific#
- PowerShell tool progressively rolling out; opt in with
CLAUDE_CODE_USE_POWERSHELL_TOOL(v2.1.111 — also available on Linux/macOS ifpwshis on PATH). CLAUDE_ENV_FILEand SessionStart hook env files now apply on Windows (previously no-op).- Drive-letter paths in permission rules are now root-anchored and case-insensitive for the drive letter.
New Environment Variables#
| Variable | Likely Purpose |
|---|---|
CLAUDE_CODE_REPL | Boolean toggle for the new native REPL path introduced in v2.1.113. Forces on or off regardless of entrypoint detection. The escape hatch for users who want to pin themselves to the old JS launcher while native-binary bugs shake out. |
CLAUDE_REPL_VARIANT | Selects which REPL implementation to load. Multiple variants coexist in the native binary; this key lets Anthropic A/B-test REPL behavior without separate builds. |
CLAUDE_CODE_DECSTBM | Enables use of DECSTBM (VT100 Set Top and Bottom Margins) for scrolling regions in the TUI. This is the mechanism behind v2.1.110's flicker-free fullscreen rendering — it lets the terminal pin a header and input while the middle region scrolls. Falls back to the tengu_marlin_porch gate when unset. |
CLAUDE_CODE_BS_AS_CTRL_BACKSPACE | Treats a bare backspace keypress as Ctrl+Backspace (delete-word). Default heuristic: on Windows unless the terminal is mintty or cygwin. Exists because Windows terminals report modifier keys inconsistently and the default is surprising enough to need an escape hatch. |
CLAUDE_CODE_TUI_JUST_SWITCHED | Set to "fullscreen" immediately after the user runs /tui fullscreen. The next render reads this value to show a one-time hint confirming the switch, then clears the flag. The mechanism behind the smooth "just switched" onboarding moment. |
CLAUDE_CODE_FORCE_FULLSCREEN_UPSELL | Forces the fullscreen TUI upsell prompt to appear even past the normal fullscreenUpsellSeenCount cap and the tengu_ochre_hollow gate. Internal test/demo affordance. |
CLAUDE_CODE_ENABLE_PROXY_AUTH_HELPER | Must be set to "1" to enable the proxy auth helper subsystem. Lets Claude Code shell out to an external program to fetch proxy credentials dynamically — for Kerberos/Negotiate, rotating tokens, or interactive SSO. |
CLAUDE_CODE_PROXY_AUTH_HELPER_TTL_MS | Cache TTL for credentials returned by the proxy auth helper. Parsed as integer milliseconds; zero or negative falls back to default. Helpers can be expensive to invoke (interactive prompts, network calls), so results are cached. |
CLAUDE_CODE_PROXY_URL | Full proxy URL, injected into the auth helper subprocess's environment. Namespaced (CLAUDE_CODE_) because the helper protocol is Claude-specific and must not collide with standard HTTPS_PROXY. |
CLAUDE_CODE_PROXY_HOST | Proxy hostname, passed alongside the URL so helpers that route credentials by hostname (common in corporate environments with multiple proxies) don't need to re-parse. |
CLAUDE_CODE_PROXY_AUTHENTICATE | Carries the WWW-Authenticate challenge from the proxy into the helper subprocess. Lets helpers implement challenge-response schemes by reading what the proxy actually asked for. |
CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS | Default 600,000ms (10 minutes). Directly backs v2.1.113's "subagents that stall mid-stream now fail with a clear error after 10 minutes" changelog bullet. Tune this up for long-running research tasks, down for tight CI. |
CLAUDE_BG_BACKEND | Set to "daemon" to route background work through a daemon backend instead of the default in-process implementation. The code path is wrapped around EIO/EPIPE error handling, suggesting pipe/socket IPC with graceful degradation. First evidence of a long-running daemon in the Claude Code architecture. |
CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH | Enables automatic background refresh when the runtime detects plugins need updating. Without this, plugin refresh is synchronous and can delay session startup. With it, refresh moves off the critical path — prep for plugins that change more frequently. |
CLAUDE_CODE_ENABLE_APPEND_SUBAGENT_PROMPT | Authorizes SDK callers to append a custom string to a subagent's system prompt via options.appendSubagentSystemPrompt. Without this flag, the option is ignored. Capability gate for internal tooling and specific enterprise customers. |
CLAUDE_CODE_ENABLE_EXPERIMENTAL_ADVISOR_TOOL | Enables the experimental Advisor Tool — a server-side tool with its own advisorModel config option. Requires first-party auth; falls back to the tengu_sage_compass2 gate. The "Sage" / "Compass" codenames have previously appeared for deep-research capabilities, so this is the in-session interface to that reasoning surface. |
CLAUDE_API_SKILL_DESCRIPTION | Registration hook for the built-in "claude-api" skill that bundles Anthropic SDK documentation (Python, TypeScript, Java, Go, Ruby, PHP, C#, curl) plus shared references on models, prompt caching, managed agents, and tool use. Overrides the default skill description. This is how Claude Code stays current on SDK code without relying on stale model training. |
CLAUDE_CODE_SYSTEM_PROMPT_GB_FEATURE | Names a GrowthBook feature flag whose value overrides the system prompt — but only when CLAUDE_CODE_REMOTE is set. Anthropic can A/B-test remote-session prompts without shipping new binaries, while local sessions stay on the stable prompt. |
CLAUDE_INTERNAL_ASSISTANT_TEAM_NAME | Passes the current Agent Teams team name (prefixed assistant-) to a spawned child process. Agent Teams surfaces in the binary with the string "Agent Teams is not yet available on your plan" and "Teammates cannot spawn other teammates" — this variable propagates team identity across process boundaries. Backs v2.1.114's fix for the teammate permission-dialog crash. |
CLAUDE_SLOW_FIRST_BYTE_MS | Default 30,000ms. Logs a "Slow first byte: no stream chunk" observability event when the API connection opens but produces no stream chunks within this window. Complements v2.1.107's byte watchdog with a lighter-touch signal before the harder stream-abort fires. |
What These Tell Us#
The native binary transition rewrote the launcher layer, and the TUI wins flow from it. Five variables (CLAUDE_CODE_REPL, CLAUDE_REPL_VARIANT, CLAUDE_CODE_DECSTBM, CLAUDE_CODE_BS_AS_CTRL_BACKSPACE, CLAUDE_CODE_TUI_JUST_SWITCHED) trace v2.1.113's cutover from a JavaScript launcher to a native per-platform binary. DECSTBM is what makes fullscreen mode flicker-free; the REPL variants let Anthropic ship A/B experiments in the native runtime without separate builds; the TUI_JUST_SWITCHED signal is the thin wire that makes /tui fullscreen feel guided. The readline-compatible Ctrl+A/E fix, Windows Ctrl+Backspace, and the long-URL-wrapping fix all sit on this new foundation. Expect more terminal-level polish that the Node.js launcher couldn't easily touch.
Proxy auth became a protocol, not a flag. Five variables (CLAUDE_CODE_ENABLE_PROXY_AUTH_HELPER, CLAUDE_CODE_PROXY_AUTH_HELPER_TTL_MS, CLAUDE_CODE_PROXY_URL, CLAUDE_CODE_PROXY_HOST, CLAUDE_CODE_PROXY_AUTHENTICATE) define a helper-subprocess contract: Claude Code invokes a configured external program, passes it the proxy URL, host, and WWW-Authenticate challenge, reads credentials from stdout, caches the result. Corporate Kerberos/Negotiate, rotating tokens, and interactive SSO can now all be handled by a customer-written helper. Combined with v2.1.104's OS CA trust default and v2.1.113's sandbox.network.deniedDomains, the enterprise deployment story is being systematically closed out.
Agent Teams is real, and the infrastructure to support it is shipping alongside. CLAUDE_INTERNAL_ASSISTANT_TEAM_NAME, CLAUDE_CODE_ENABLE_APPEND_SUBAGENT_PROMPT, CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS, and CLAUDE_BG_BACKEND describe a multi-agent orchestration layer with stall detection, a daemon backend option, and team identity propagation. The binary explicitly enforces a two-level hierarchy ("Teammates cannot spawn other teammates"). v2.1.114's single changelog bullet — a crash fix in the teammate permission dialog — is the first user-visible surface of this. The Advisor Tool (gated by sage_compass2) plugs a server-side reasoning model into the teammate workflow. Claude Code is moving from an interactive pair programmer toward an agent platform where delegated, concurrent work is the default.
Every release is quietly compounding on QoL. Read the v2.1.113 notes end to end and the pattern is unmistakable — dozens of small fixes (emoji toast counts, /insights EBUSY on Windows, markdown tables with pipes in code spans, /copy not aligning columns for Notion, queued messages appearing twice) plus targeted security hardening plus two or three flagship features. The seven-release stretch from v2.1.108 to v2.1.114 ships three flagship features (fullscreen TUI, /ultrareview, 1-hour prompt caching), an architecture migration (native binary), and roughly 80 individually-named fixes. This is what mature developer-tool velocity looks like.
Sources#
- Claude Code Official Changelog — v2.1.108, v2.1.109, v2.1.110, v2.1.111, v2.1.112, v2.1.113, v2.1.114 release notes
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.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
- Claude Code v2.1.96 — No New Environment Variables — Bedrock auth hotfix
- Claude Code v2.1.94 — 5 New Environment Variables — Mantle auth, MCP sandboxing, team onboarding
Related: Context Window Management Guide | Claude Code Productivity Tips | The Agentic Engineering Playbook