# Claude Code 2.1.208: screen reader mode, memory-leak and long-session performance work

> Adds an opt-in plain-text screen reader mode plus vim insert-mode remaps and a corporate process-wrapper hook. The bulk of the release is memory-leak and performance work in long sessions, headless/SDK piping, and background agents.

| | |
|---|---|
| **Tool** | Claude Code |
| **Version** | 2.1.208 |
| **Kind** | release |
| **Published** | 2026-07-13 |
| **Observed** | 2026-08-11 |
| **Significance** | 3/5 |
| **Breaking** | no |
| **Categories** | feature, fix |

## What changed


- Screen reader mode: `claude --ax-screen-reader`, `CLAUDE_AX_SCREEN_READER=1`, or `"axScreenReader": true`
- New `vimInsertModeRemaps` setting for two-key insert-mode sequences (e.g. `jj` to Escape)
- New `CLAUDE_CODE_PROCESS_WRAPPER`: routes every Claude Code self-spawn through a required wrapper executable
- Mouse clicks work in fullscreen multi-select menus and "Other" input rows
- Memory: MCP stdio stderr capped (was up to 64 MB per server), LSP documents LRU-capped at 50, file edit read cache bounded to 16 MB, async hook output and large headless tool results no longer retained
- Transcript size cut up to 79x in edit-heavy sessions by pruning superseded file-history backups; checkpoint disk usage bounded
- Up to 7x faster tool rounds in print/SDK sessions with many MCP tools; permission rule matchers compiled once and cached
- Fixed the context window resetting to 200k after an auto-update, causing false "100% context used" on resume
- Fixed truncated stream-json output from `claude -p`, blank CRLF lines killing stream-json sessions, and hangs on non-string `set_model` control requests
- Fixed `CLAUDE_CODE_MAX_OUTPUT_TOKENS` and similar vars reading `1e6` as `1`
- Fixed the Edit tool failing on files modified after read when the target text still matches uniquely
- Fixed Read/Grep/Glob edge cases: empty-file offset error, invalid regex reported as no matches, paginated count under-reporting, null bytes in paths
- Fixed `/release-notes` injecting the whole changelog into subsequent requests
- Fixed `apiKeyHelper` failures hidden behind a generic 401 after ~10 silent retries
- Markdown tables over 200 rows render the first 200 with a truncation notice
- Background agents: completed agents stay in `/tasks` until cleanup, cold attach shows the transcript immediately, older daemons no longer restart newer workers on the old binary

Note: the source entry is truncated mid-bullet at the end.


## Sources

- [changelog_md](https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md) — retrieved 2026-08-11

## Community

_No curated reactions recorded. Facts and community takes are kept in separate layers
and never blended._

---
Canonical: https://changelogs.info/claude-code/2-1-208
Entity: https://changelogs.info/claude-code
Event ID: `evt_2026-07-13_claude-code_2-1-208`
Licence: event synthesis © changelogs.info, CC BY 4.0. Linked sources belong to their vendors.
