Release notes
Tweaking settings and dodging phone buzzes is smoother now. A new /config key=value syntax lets you change any setting by typing it straight into the prompt — e.g. /config thinking=false to flip thinking (the switch that makes Claude reason an extra step before answering), no menu-diving required — and it works in interactive mode, -p one-shot commands, and Remote Control (steering the desktop app from your phone). On macOS there's a new sandbox.allowAppleEvents opt-in (a switch that's off by default until you turn it on); enabling it lets sandboxed commands (sandbox: the mechanism that traps a program inside a restricted zone) finally send Apple Events (messages macOS apps use to ask each other to do things). There's also a new CLAUDE_CLIENT_PRESENCE_FILE environment variable (a hidden switch you set before launching) that points at a marker file so mobile push notifications stay silent while you're at the machine — no more double-buzz from phone and desktop at once. Like a universal remote gaining three new buttons: tap to dim the lights, tap to let one appliance talk to another, and auto-mute the bedroom TV the moment you sit on the couch.
When Claude writes long paragraphs, the text now trickles in line by line instead of you staring at nothing until the first line break finally triggers a whole block at once; streaming (responses appearing word by word as they generate) reads far more smoothly. And if the connection drops while it's mid-thinking, you used to get a blunt "Connection closed while thinking" message — now it automatically retries and reconnects without you having to resend anything. The bundled Bun runtime (the JavaScript engine Claude Code runs on top of) has also been upgraded to 1.4. Like watching a livestream that used to freeze and buffer every time the signal hiccuped, forcing you to hit refresh yourself — now it reconnects on its own, and the camera got swapped for a newer model too.
When you've spawned a pile of subagents (extra agents Claude splits off to handle small chores), the panel used to get cluttered; now idle ones auto-hide after 30 seconds, the list caps at 5 rows with scroll hints, and keyboard shortcuts appear in the footer. The timers are fixed too: a subagent's "Thinking" readout used to actually show the parent agent's (the one that spawned it) accumulated time, and now shows its own; and when a subagent is blocked waiting on a nested agent, the panel stops ticking up the seconds and honestly shows "waiting" instead. Like an office bulletin board that used to leave idle interns' name tags pinned up forever and log their overtime under the team lead — now idle tags retract on their own and everyone's hours are their own.
Opening Claude Code is faster and steadier now. A small slowdown accidentally introduced in 2.1.169 — roughly 120ms (milliseconds, thousandths of a second) added on every launch in fresh environments — is gone: when no MCP servers (MCP server, the bridge Claude uses to plug in external tools) are configured, your first prompt no longer pointlessly waits for the remote settings fetch. When the account settings fetch is sluggish on a bad network, the terminal used to go blank and stall for up to 15 seconds; not anymore. If .claude.json (Claude's settings file) has corrupted null project entries in it, startup used to outright crash with TypeError: Cannot read properties of null; it now survives. And on macOS, when Spotlight (the system-wide search) is busy reindexing, the interface used to freeze the instant a session started — even Ctrl+C went ignored — and that's fixed too. Like starting a car that used to make you wait on cold mornings and occasionally threw a dashboard error or froze; now one turn of the key and it purrs to life.
Whether a connection is actually live is now clearer. claude mcp get / list used to stubbornly flash a green "✓ Connected" tick even when fetching the tool list failed — a lie; now it honestly shows "! Connected · tools fetch failed" with the error detail attached. After Remote Control connects, it used to leave a stale "connecting…" line hanging around; it now confirms the connection explicitly in the transcript. The MCP OAuth (an authorization-login method) browser page also got restyled to match Claude Code's look and auto-closes once it succeeds. Like a package tracker that used to claim "delivered" when the parcel was actually lost on the porch — now it honestly reads "delivered but sign-off failed, reason: X," and the shipping webpage closes itself when you're done.
Several connection and file issues that cost you time or data are fixed. AWS awsCredentialExport credentials (the keys proving you're a legitimate user) used to refresh frantically every minute when they neared expiry, and now also accept the JSON shape that aws configure export-credentials outputs. On custom ANTHROPIC_BASE_URL (a self-hosted API endpoint) and Foundry (an enterprise channel), prompt caching (the mechanism that caches repeated content to save money and time) used to miss the cache entirely because an attestation token (a verification marker) changed every single turn; it now reads the cache. Write/Edit writing to network drives or cloud-synced folders used to spit out 0-byte or truncated broken files; that's normal now. And when another Claude Code process (process, a second copy of the program running at the same time) runs the 30-day cleanup in the background, your long-idle sessions no longer mysteriously lose their history. Like a bank where the passbook used to get reprinted every minute, coupons wouldn't scan, and the occasional transfer came out as a blank entry — everything's normal now.
A few model-switching and delegation logics got untangled. When you run /recap (the recap-the-conversation feature) or fork (copy a conversation into a new branch) right after switching models, it used to keep running on the old model for a turn; now it uses the new one immediately. Foreground subagents used to spawn nested subagents (one inside another) without limit; they now obey the same 5-level depth cap as background subagents. And the API retry banner "Retrying in 0s · attempt N/10" used to linger on screen even after the retry succeeded; it disappears now. Like switching in a new chef who'd let the old one plate one more dish before handing over, apprentices who'd bounce a task between each other forever (now capped at five bounces), and a "remaking it" sign that comes down the moment the food is done instead of staying up.
Several landmines on different platforms and unusual setups are cleared. On macOS, auth flows (the sequence of login steps that grant permissions) using open, osascript, or a browser used to fail with error -600 because of a missing Apple Events entitlement (Apple's formal permission for apps to call each other); it's now been added. On Windows, ExitWorktree (the leave-a-worktree feature) used to refuse removing a clean worktree (worktree, the Git feature that spins up parallel copies of one project) with "Could not verify worktree state" because bare git couldn't be resolved; it now removes them properly. When ~/.claude/settings.json is a relative symlink living under another symlink (symlink, a file that points elsewhere like a shortcut), setting changes like /effort or /model used to throw ENOENT (a file-not-found error); they work now. And on Windows/OneDrive, when the agents directory (the folder holding your custom agents) already existed, creating an agent used to throw "EEXIST: file already exists"; it creates fine now. Like home renovation where certain wall types used to throw a blanket error the moment you drove in a nail — now solid walls, partition boards, and walls that already have holes all take nails without complaint.
Three clipboard (the place the system parks what you copy) bugs are fixed. In fullscreen, if you first made a native-terminal selection by modifier+drag (dragging while holding a key) and then hit Ctrl+C, it used to overwrite the clipboard with the app's prior selection; it no longer does. Ctrl+V, when the clipboard held text, used to show "No image found in clipboard" and refuse to paste; it now pastes the text normally. And on Linux, /copy and copy-on-select (copy the moment you select) used to fail to detect a clipboard utility that was installed after Claude Code started; they detect it now. Like a photocopier that used to copy over your originals with the previous job, refused anything but images when you fed it plain text, and didn't recognize a freshly installed paper tray — all working now.
A pile of small readability-affecting display issues are fixed. The line numbers from your IDE (editor plugin, like IntelliJ or VS Code) selection used to be off by one in context reminders; they're accurate now. Tab-indented code in the Write create-file preview used to render with wrong indentation; it's correct now. AskUserQuestion (the feature where Claude asks you back) preview content used to get cut off at the dialog edge; it now word-wraps, and a typed "Other" free-text answer in a multi-select question used to be silently dropped on submit; it's now preserved. /stats "Most active day" and the daily token (a usage unit) chart used to show one day early in UTC-negative timezones (regions behind world-standard time, like the Americas); they're accurate now. Opening a URL in fullscreen now requires Cmd+click (macOS) / Ctrl+click, matching native terminals. The Improved N memories line no longer lists individual files outside verbose mode. Input messages queued until your turn ends now get a full-width background highlight. And on Ghostty (a terminal app), the activity spinner's pulse used to dwell on the wrong glyph size; it's normal now. Like a sloppily laid-out report where the line numbers were one off, tables spilled past the margin, dates were a day early, and even the loading animation flickered in size — now everything lines up.
Original changelog
Original changelogThree new switches: change any setting in one line, allow Apple Events, and mute phone pushes while you sit at the desk
Added `/config key=value` syntax to set any setting from the prompt (e.g. `/config thinking=false`) — works in interactive, `-p`, and Remote Control
Added `sandbox.allowAppleEvents` opt-in setting that lets sandboxed commands send Apple Events on macOS
Added `CLAUDE_CLIENT_PRESENCE_FILE` environment variable: point it at a marker file to suppress mobile push notifications while you're at the machine
Original changelogLong replies now stream line by line, dropped connections self-retry, and the bundled engine got upgraded
Improved streaming of long paragraphs: text now appears line-by-line instead of waiting for the first line break
Improved auto-retry: API connection drops mid-thinking now automatically retry instead of showing "Connection closed while thinking"
Upgraded the bundled Bun runtime to 1.4
Original changelogThe subagent panel is tidier: idle agents auto-hide, and timers no longer blame the wrong agent
Improved the subagent panel: idle subagents auto-hide after 30s, the list caps at 5 rows with scroll hints, and keyboard hints now show in the footer
Fixed subagent "Thinking" duration showing the parent agent's elapsed time instead of the subagent's own
Fixed subagents blocked on a nested agent showing a ticking elapsed time instead of "waiting" in the agent panel
Original changelogStartup is snappier: faster launch, no more 15-second blank screens, no crashes or freezes
Fixed a startup regression (~120ms per launch in fresh environments, introduced in 2.1.169): the first prompt no longer waits for the managed-settings fetch when no MCP servers are configured
Fixed startup blocking with a blank terminal for up to 15 seconds when the account settings fetch is slow on a degraded network
Fixed startup crash (`TypeError: Cannot read properties of null`) when `.claude.json` contains corrupted null project entries
Fixed macOS TUI freezing at session start (Ctrl+C unresponsive) when Spotlight is busy reindexing
Original changelogConnection status stops lying: MCP honestly reports fetch failures, and Remote Control drops the stuck "connecting…" line
Improved the MCP OAuth browser page to match Claude Code's visual style and auto-close on success
Fixed `claude mcp get`/`list` showing `✓ Connected` when tools/list fails; they now show `! Connected · tools fetch failed` with the error detail
Fixed `/remote-control` leaving a stale "connecting…" line; it now confirms in the transcript once connected
Original changelogCredentials stop refreshing every minute, caching reads correctly, and files stop coming out 0-byte
Fixed AWS `awsCredentialExport` credentials with a short remaining lifetime causing credential refreshes every minute, and now accepts the JSON shape from `aws configure export-credentials`
Fixed prompt caching not reading on custom `ANTHROPIC_BASE_URL` and on Foundry due to a per-request attestation token changing every turn
Fixed Write/Edit producing 0-byte or truncated files on network drives and cloud-synced folders
Fixed long-running idle sessions losing their history when another Claude Code process ran the 30-day transcript cleanup
Original changelogModel switches take effect immediately, subagents stop chaining infinitely, and the retry banner stops lingering
Fixed foreground subagents spawning unbounded nested chains; they now respect the same 5-level depth limit as background subagents
Fixed `/recap` and conversation forks using the previous model immediately after a model switch
Fixed the API retry indicator ("Retrying in 0s · attempt N/10") staying on screen after the retry succeeded
Original changelogmacOS auth, Windows, and symlinked settings files all stop erroring out
Fixed `open`, `osascript`, and browser-based auth flows failing with error -600 on macOS by adding the Apple Events entitlement
Fixed ExitWorktree refusing to remove a clean worktree with "Could not verify worktree state" when bare `git` cannot be resolved on Windows
Fixed settings changes (such as `/effort` or `/model`) failing with ENOENT when `~/.claude/settings.json` is a relative symlink under a symlinked `~/.claude`
Fixed agent creation failing with "EEXIST: file already exists" when the agents directory already exists (Windows/OneDrive)
Original changelogCopy/paste stops misbehaving: Ctrl+C won't clobber the clipboard, Ctrl+V pastes text, and Linux copy works
Fixed Ctrl+C in fullscreen after a native terminal selection (modifier+drag) overwriting the clipboard with the app's prior selection
Fixed Ctrl+V showing "No image found in clipboard" instead of pasting when the clipboard contains text
Fixed `/copy` and copy-on-select on Linux not detecting a clipboard utility installed after Claude Code started
Original changelogA batch of display polish: line numbers, indent previews, dialog boxes, dates, and the spinner all line up
Changed fullscreen mode URL opening to require Cmd+click (macOS) / Ctrl+click, matching native terminal behavior
Changed the `Improved N memories` line to no longer list individual files outside verbose mode
Fixed IDE selection line numbers in context reminders being off by one (IntelliJ and VS Code)
Fixed AskUserQuestion preview content being cut off at the dialog edge instead of word-wrapping
Fixed AskUserQuestion multi-select questions silently dropping a typed "Other" free-text answer when submitting
Fixed `/stats` "Most active day" and daily token chart dates showing one day early in UTC-negative timezones
Fixed tab-indented code rendering with incorrect indentation in the Write (create-file) preview
Fixed user prompts queued mid-turn not showing a full-width background highlight in the transcript
Fixed the activity spinner's pulse dwelling on the wrong glyph size in Ghostty