Claude Code v2.1.208: Screen Reader Mode, Vim Remaps, Memory Leak Fixes, and More
Claude Code v2.1.208 ships with accessibility improvements, vim quality-of-life features, corporate deployment support, and a massive sweep of bug fixes — especially around memory leaks and edge cases in streaming, SDK hosts, and background agents.
New Features
- Screen reader mode: Opt-in plain-text rendering. Activate via
claude --ax-screen-reader, setCLAUDE_AX_SCREEN_READER=1, or add"axScreenReader": trueto settings. - Vim insert-mode remaps: The
vimInsertModeRemapssetting lets you map two-key insert-mode sequences — e.g.,jjto Escape in vim mode. - Process wrapper:
CLAUDE_CODE_PROCESS_WRAPPERforces every Claude Code self-spawn (agent view, background service) through a required wrapper executable, enabling corporate launcher compliance. - Mouse-click support: Multi-select menus and "Other" input rows in fullscreen mode now accept mouse clicks.
Key Bug Fixes
- Fast mode: Switching back to a model that supports it now correctly restores fast mode if enabled in settings.
- Background agent replies: Text typed to a background agent when delivery fails is saved and delivered on session restart.
- Context window reset: The context window (and auto-compact indicator) no longer briefly resets to 200k after CLI auto-update, preventing false "100% context used" during long sessions.
- HTTP/2 GOAWAY: Supervised and background sessions no longer crash when a server closes an HTTP/2 connection with GOAWAY while requests are in flight.
- Piped output truncation: Large responses from
claude -pno longer have truncated stream-json/JSON output or missing result messages. - Scientific notation env vars:
CLAUDE_CODE_MAX_OUTPUT_TOKENS=1e6no longer silently becomes 1 — the mantissa is now parsed correctly. - Large markdown tables: Tables over 200 rows now show the first 200 with a "… N more rows" notice, preventing rendering stalls and excessive memory use.
- Edit tool: Now correctly handles files modified after reading when the target text still matches uniquely.
- Read/Grep/Glob: Empty files no longer reported as "shorter than offset"; invalid regex patterns now error instead of returning "No files found"; Grep count mode no longer under-reports when paginated; Glob crashes on null bytes in patterns/paths now show a clear error.
- apiKeyHelper: Script failures now surface within 3 attempts instead of being hidden behind a generic 401 after ~10 silent retries.
- Bedrock streaming: Gateway-transformed responses now error with the content-type and a proxy reference instead of misleading "Truncated event message received".
- /upgrade: Shows the upgrade URL directly instead of a login flow when browser fails to open.
- Windows stream-json: Blank CRLF or whitespace-only lines from Windows-style SDK hosts no longer kill the session.
- Headless stream-json: Non-string
set_modelpayloads incontrol_requestno longer hang permanently — the CLI now responds with an error. - Session resume notices: Orphaned background tasks collapse into a single summary instead of repeated "No completion record was found".
- Remote Control: Terminal-hosted sessions now expose background agents and workflow progress to remote clients immediately, not only after a task starts.
- Agent tool with no tools: If a subagent's
toolslist resolves to nothing, the tool now returns a clear error naming the unrecognized entries. - /usage: No longer shows stale cached bars over fresher data. /mcp: Reclassifies placeholder servers after config edits.
- SDK hosts: "Change directory" no longer fails with "A turn is in progress" on idle sessions with a running background task.
- Workflow save dialog: Now respects
CLAUDE_CONFIG_DIRinstead of hardcoding~/.claude/workflows/. - /release-notes: "Show all" no longer injects the entire changelog into every subsequent request.
- Memory leaks:
- Pasted images in agent view are no longer retained for the screen's lifetime after sending peek replies.
- SDK sessions no longer lose agents defined via the initialize request when a plugin refresh runs before client attach.
- MCP stdio server stderr no longer accumulates up to 64 MB per server.
- LSP documents now capped at 50 via LRU instead of staying open indefinitely.
- Async hook output no longer retained after backgrounding.
- Unbounded growth in headless/SDK sessions from large tool-result payloads fixed.
- Reading files with extremely long single lines using offset/limit no longer blows up memory.
This release is a heavy patch — if you've been hitting memory issues in long Claude Code sessions, stalling on markdown tables, or dealing with background agent reply loss, upgrading is strongly recommended.
📖 Read the full source: GitHub Claude-Code
👀 See Also

Claude App Ranks Second in US App Store After Pentagon Dispute
Anthropic's Claude chatbot app rose to number two among free apps in Apple's US App Store, climbing from outside the top 100 in late January to second place by late February 2026. This surge followed the company's public negotiations with the Pentagon over AI usage restrictions.

Forbes: The AI Layoff Bill Is Coming Due — CTOs Will Pay Twice
Forbes argues that the cost of AI-driven layoffs will hit companies twice: first in severance and morale, then in rehiring when the expected efficiency gains don't materialize.

DeepSeek V4 pricing reality check: 178x cheaper cached tokens vs Opus, but capability lag acknowledged
DeepSeek V4 Pro input at $0.145/M tokens vs Claude Opus 4.7 at $5/M (34x cheaper); cache hits at $0.0036/M vs $0.625/M (173x cheaper). Capability is 3-6 months behind GPT-5.4 and Gemini 3.1 Pro.

AI Is Slowing Down: $3T Revenue Needed by 2030 to Sustain Bubble
Ed Zitron argues AI must generate $3 trillion revenue by 2030. Data centers cost $9.5–15T. Anthropic, OpenAI, NVIDIA projections show massive burn.