
Claude Code v2.1.240 to v2.1.245 Major Updates - Addition of modelPicker and promptCacheTtl
This page has been translated by machine translation. View original
This is Ishikawa from the Cloud Business Division. I'll summarize the Claude Code updates from v2.1.240 to v2.1.245 (August 22–25, 2026). Five versions were released over four days, with changes concentrated in v2.1.243. There was a winding path: after rolling back from v2.1.243 to v2.1.241, the release eventually reached v2.1.245. Today, I tried out the modelPicker.
The previous update article is here.
Update Summary
The scope covers 5 versions (v2.1.240–v2.1.245, August 22–25, 2026), with 63 changes listed in the CHANGELOG. The breakdown is 10 new features, 10 improvements, 5 performance, 2 security, 1 breaking change, and 35 fixes, of which 60 belong to v2.1.243. Notable themes are changes that allow behavior to be adjusted via settings, and foundational improvements to startup time, memory, and distribution size.
Highlighted Updates
modelPicker — configurable picker for /model (v2.1.243)
The modelPicker setting has been added. You can specify the models shown in the /model picker as an ordered, labeled list. Model IDs can be in any notation, including Vertex/Bedrock IDs. You can also choose whether to append to the built-in list or replace it entirely.
When there are many available models and you want to align which models a team uses, I think the ability to share instructions via labels will be valuable.
promptCacheTtl / subagentPromptCacheTtl — specify prompt cache TTL (v2.1.243)
Two new settings, promptCacheTtl and subagentPromptCacheTtl, have been added. API key users and cloud provider users can keep the main conversation's prompt cache at one hour while leaving subagents at five minutes.
Those who run a single session for long periods will likely feel the most benefit from extending the main conversation cache to one hour.
Loops breakdown added to /usage (v2.1.243)
A Loops breakdown has been added to /usage. It shows execution count, total tokens, tokens per execution, and last execution for each loop, making it easier to identify /loop tasks that are running out of control or generating large amounts of output.
If you use /loop regularly, it's hard to intuitively grasp which loops are consuming tokens, so having execution count and tokens per execution side by side feels like a useful starting point for tuning.
Fix for startup crash on Linux distributions with glibc 2.44 (v2.1.245)
A startup crash on Linux distributions using glibc 2.44 (Arch Linux, CachyOS, Fedora Rawhide, etc.) has been fixed.
If you're using a rolling-release Linux distribution and it stops launching, isolating the cause is difficult, so upgrading to this version first seems like the fastest approach.
Timeout added for when the API doesn't start responding (v2.1.243)
A problem where a session would become unresponsive for more than 10 minutes when the Anthropic API didn't start responding has been fixed. It now times out after approximately 3 minutes, retries once, and then displays API Error: No response from API.
Being left waiting with no response is the most difficult situation to reason about, so cutting off after 3 minutes and surfacing an explicit error makes it much easier to estimate wait times.
Fix for remote MCP servers not recovering in non-interactive/SDK sessions (v2.1.243)
A problem where remote MCP servers would not recover from a dropped connection in non-interactive (-p) sessions and SDK sessions has been fixed. They will now either automatically reconnect or report a failure.
When running -p in CI or batch jobs, a dropped connection that doesn't recover can take down subsequent processing as well, so having it resolve to either automatic reconnection or a failure report makes it much easier to handle.
Fix for missing sandbox network violation details (v2.1.243)
A problem where sandbox network violation details were missing from Bash tool results when a blocked command exited with code 0 (e.g., when curl outputs a proxy 403 page) has been fixed.
If you judge success solely by exit code, you won't notice that the network was blocked, so anyone with sandboxing enabled should confirm the behavior with this fix.
Target Versions and Period
| Version | Release Date | CHANGELOG Entry |
|---|---|---|
| v2.1.240 | 2026-08-22 | Single line: "Bug fixes and reliability improvements" |
| v2.1.241 | 2026-08-22 | Single line: "Bug fixes and reliability improvements" |
| v2.1.242 | 2026-08-24 | No entry |
| v2.1.243 | 2026-08-24 | 60 entries |
| v2.1.245 | 2026-08-25 | 1 entry |
Note that v2.1.244 is not included because it was not published to the npm registry.
New Features
- Added
modelPickersetting. Allows customizing the/modelpicker with an ordered, labeled model list (v2.1.243) - Added
promptCacheTtl/subagentPromptCacheTtlsettings. Allows setting the main conversation prompt cache to one hour and subagents to five minutes separately (v2.1.243) - Added Loops breakdown to
/usage(execution count per loop, total tokens, tokens per execution, last execution) (v2.1.243) - Added
modelPricingmanaged setting. Organization contract unit prices and discount rates are used in/cost, the status line, and telemetry cost displays instead of list prices (v2.1.243) - Added "Sign in with your Console account" (recommended) keyless sign-in to Anthropic Console via
/login. Allows sign-in even for organizations that don't permit API keys (v2.1.243) - Added
Skipped sourcesrow to/status. Lists managed settings sources (e.g.,managed-settings.json) that are not applied because a higher-priority managed setting is active (v2.1.243) - Added
managedmarker in/mcpand/pluginsfor claude.ai connectors where authentication is managed by the organization (v2.1.243) - Added display of the model (and effort level) each subagent ran on in
/tasksand the agent details dialog (v2.1.243) - Added a row to
/statusindicating whether GitHub is connected for Claude Code on the web (Pro/Max). Directs users to/web-setupif not connected (v2.1.243) - Added hint directing
/web-setupto claude.ai users who haven't connected GitHub for Claude Code on the web (v2.1.243)
Performance
- Improved startup time. Sandbox and MCP startup no longer block the first render; subcommand registration is skipped on bare startup; workflow discovery, settings, and trust store processing are also lighter (v2.1.243)
- Improved download size for native installs and auto-updates. Binary is now zstd-compressed, reducing from approximately 340 MB to approximately 75 MB on Linux x64 (v2.1.243)
- Improved memory usage for native builds. Code is loaded on demand instead of keeping the entire bundle resident, reducing approximately 40–70 MB per session (v2.1.243)
- Improved peak memory usage for long sessions (runtime performs garbage collection earlier as heap grows) (v2.1.243)
- Kept bundled skill and prompt text compact, reducing native binary size by approximately 2 MB (v2.1.243)
Improvements
- Improved
/loginover SSH. The sign-in URL is displayed immediately; theckey now reports how to copy the URL instead of always claiming success; a hint for how to select text in fullscreen is also shown (v2.1.243) - Improved error when using effort
xhigh/maxwith thinking disabled. Now shows the level name, the setting that disabled thinking, and/effort highas a remedy (v2.1.243) - In
/loop, consecutive wake-ups where Claude has nothing to do are now consolidated into a single line (v2.1.243) - Changed
/model,/fast, and/effortto take effect immediately without waiting until the end of a turn, even when using Bedrock, Vertex, Foundry, or when telemetry is disabled (v2.1.243) - Updated the
/modelpicker and the bundledclaude-apiskill to display Sonnet 5's pricing of $2/$10 per million tokens as the standard list price rather than a limited-time promotion (v2.1.243) - Changed the sandboxed Bash tool prompt to no longer enumerate allowed network hosts. This allows requests to unlisted hosts to be tried rather than assumed blocked, and new hosts can be approved (v2.1.243)
- Improved organizational attribution of usage telemetry for sessions authenticating directly to the Anthropic API with
ANTHROPIC_AUTH_TOKEN, ensuring the organization's data handling settings are applied (v2.1.243) - Improved notification when Remote Control resumes a conversation held by another terminal. Now informs the user that sessions on other machines are not visible from here and cannot reach here either (v2.1.243)
- [VS Code] Improved history trimming for long sessions. Old tool execution lines are removed first, preserving user messages and Claude's responses (v2.1.243)
- [VS Code] Improved organizational attribution of the extension's own usage telemetry when signed in with a Claude account, ensuring the organization's data handling settings are applied (v2.1.243)
Security
- Fixed an issue where sandbox network violation details were missing from Bash tool results when a blocked command exited with code 0 (v2.1.243)
- Changed macOS computer use so that clicking the desktop, Dock, or Finder windows requires approving Finder in the access permission dialog, just like any other app (v2.1.243)
Fixes (Highlights)
Excerpting fixes centered on stability and usability (excluding the glibc 2.44 startup crash, API no-response timeout, and remote MCP reconnection covered in the highlighted updates section).
- Fixed tool calls being rejected in auto mode: When the API temporarily requested a retry due to overload, tool calls were rejected as "temporarily unavailable" after waiting about one minute (v2.1.243)
- Fixed hook
ifconditions firing incorrectly: Conditions likeBash(cat *)were firing for unrelated Bash commands when arguments followed command substitution via$()or backticks (v2.1.243) - Fixed
/resumelist stopping at 50 entries: Previously only the most recent 50 sessions were listed; additional sessions now load as you scroll (v2.1.243) - Fixed invalid JSON in
--agentsbeing silently ignored: Invalid JSON or agent definitions are now rejected with a clear error, the same as--mcp-config, instead of being silently ignored (v2.1.243) - Fixed Ctrl+R history search breaking: Invalid entries in
~/.claude/history.jsonlwere breaking Ctrl+R history search and up-arrow history (v2.1.243) - Fixed local IDE connections going through a proxy: Occurred when
localhostwas inNO_PROXYbut not in the lowercaseno_proxy; now checks both cases (v2.1.243) - Fixed background subagents not waking up: Subagents failed to wake up when the last background Bash task completed (v2.1.243)
- Fixed sessions being abandoned when
claude remote-controlexits: Previously exited when the server shut down the environment mid-session; now recovers (v2.1.243) - A quietly welcome fix: Fixed
/clearremoving the session name set by/renamefrom the prompt bar even though the name persists in new sessions (v2.1.243). Having the name disappear every time you used/renameand then/clearwas a subtly annoying behavior, and it's appreciated that small oversights like this are being caught. - Many other minor bugs have also been fixed, including rate limit usage display, Claude in Chrome connectivity, VS Code extension display, plugin and LSP reloading, and
/web-setuplogin.
Breaking Changes
The receiving socket for inter-session messaging now disconnects any connection that does not send a complete single line within 30 seconds (v2.1.243). Scripts that write to the socket must connect only after their data is ready.
The CHANGELOG does not include concrete examples, so the following are created based on the behavior description.
Before the change (up to v2.1.242):
# Example: connect to the socket first, then write a line once data is ready
exec 3<>"$INBOX_SOCKET"
sleep 60 # connect first and wait
printf '%s\n' "$payload" >&3
After the change (v2.1.243 onward):
# Example: prepare data first, connect to the socket, then write a complete line immediately
payload="$(build_payload)" # finalize what to send first
exec 3<>"$INBOX_SOCKET"
printf '%s\n' "$payload" >&3
Trying Out modelPicker
modelPicker is a new feature that lets you customize the model list (/model) with ordered, labeled entries. In general, you add modelPicker to a settings file (such as ~/.claude/settings.json) and list the models you want to display in order with labels.
I'll verify the behavior of v2.1.243's modelPicker by passing it temporarily via --settings. According to the official documentation, each entry under options takes a required model and optional label and description; setting replaceBuiltInOptions to true replaces the built-in list.
{
"modelPicker": {
"options": [
{ "model": "opus", "label": "Production Opus" },
{ "model": "sonnet", "label": "Everyday Sonnet", "description": "Reviews and light implementation" }
],
"replaceBuiltInOptions": true
}
}
Launch an interactive session with claude --settings ./modelpicker-demo.json. Then run /model and confirm that the picker shows "Production Opus" and "Everyday Sonnet" in the specified order, and that the built-in list has been replaced because replaceBuiltInOptions is set to true.
In the example below, Claude is first launched in its default state and the model list is displayed, then modelPicker is configured and launched and the model list is displayed again.

Closing Thoughts
The update frequency of 63 changes in four days is very much in the spirit of Claude Code, but among them, the reduction of the native download size from approximately 340 MB to approximately 75 MB, and the approximately 40–70 MB memory reduction per session, should make deployment to CI and new machines noticeably lighter.
If any of the changes catch your eye, try updating and checking them out.
References



