claudekit / updates / claude-code-2-1-243
[ PATCH · ]

Claude Code 2.1.243

A Loops breakdown lands in `/usage` with per-loop run count, total tokens, tokens per run, and last run, so runaway `/loop` tasks are easy to spot, and a new `modelPicker` setting curates the `/model` picker with an ordered, labeled list of models. `promptCacheTtl` and `subagentPromptCacheTtl` let API-key and cloud-provider users keep a 1-hour prompt cache on the main conversation while subagents stay at 5 minutes, and `/login` gains a keyless Anthropic Console sign-in for organizations that don't allow API keys. Startup time and memory usage improve, the native binary is now zstd-compressed (about 75 MB instead of 340 MB on Linux x64), and fixes land for sessions going silent when the API never starts a response and for remote MCP servers never recovering in non-interactive and SDK sessions.

Official announcement →

This article is a summary based on official documentation.

What changed

Claude Code 2.1.243 shipped on August 24, 2026. The release adds settings organizations need for day-to-day operation (modelPicker, modelPricing, promptCacheTtl) plus markers that make managed state visible, and it cuts the cost of running the client across startup, memory, and download size. A batch of fixes also clears paths that never recovered after a dropped connection or sat silent waiting for a response.

New features

  • Loops breakdown in /usage

    There was no way to see how many tokens a repeating /loop task consumed, so runaway or chatty loops were hard to spot. /usage now includes a Loops breakdown with per-loop run count, total tokens, tokens per run, and last run.

  • modelPicker setting to curate the /model picker

    The /model picker only offered the built-in lineup, with no way to trim it to the models an organization actually uses or reorder them. The new modelPicker setting curates the picker with an ordered, labeled list of models — any id spelling, including Vertex and Bedrock ids — appended to or replacing the built-in lineup.

  • promptCacheTtl and subagentPromptCacheTtl settings

    Prompt cache lifetime wasn’t configurable, so API-key and cloud-provider users were stuck with a short cache even in long conversations. The two new settings let them keep a 1-hour prompt cache on the main conversation while subagents stay at 5 minutes.

  • modelPricing managed setting

    Even with contracted rates in place, /cost, the status line, and telemetry computed cost figures from list price, so the numbers didn’t match actual spend. The modelPricing managed setting supplies an organization’s contracted per-model rates and discount multiplier, and all three use those instead of list price.

  • Keyless sign-in with an Anthropic Console account

    Signing in through Console meant creating an API key, which left organizations that don’t allow API keys with no way in. /login → Anthropic Console now offers “Sign in with your Console account” (recommended) alongside creating an API key.

  • Model and effort level per subagent in /tasks

    There was no way to tell which model or effort level a subagent ran on. /tasks and the agent detail dialogs now show both.

  • Markers for managed and connected state

    It was hard to tell from the UI why a setting hadn’t applied or what your organization controls. /status gains a Skipped sources line listing managed settings sources (for example managed-settings.json) that are present but not applied because a higher-precedence managed source is active. /mcp and /plugins add a managed marker on claude.ai connectors whose authentication is managed by your organization. For Pro and Max users on Claude Code for the web, /status also shows whether GitHub is connected, and a tip points users who haven’t connected it to /web-setup.

Key improvements

  • Faster startup

    Sandbox and MCP bring-up held back the first frame. Neither blocks it now, bare launches skip subcommand registration, and workflow discovery, settings, and trust-store work is cheaper.

  • Smaller native install and auto-update download

    Every native install and auto-update pulled a large payload. The binary is now zstd-compressed — about 75 MB instead of 340 MB on Linux x64 — and it’s roughly 2 MB smaller on top of that from storing the bundled skill and prompt text more compactly.

  • Lower memory usage

    Native builds kept the whole bundle resident. Code is now loaded on demand, cutting roughly 40–70 MB of memory per session, and long-running sessions also see lower peak memory because the runtime garbage-collects sooner as the heap grows.

  • Better /login over SSH

    Over SSH the sign-in URL was slow to appear and pressing c always claimed the copy succeeded. The URL now appears immediately, c reports how the URL was copied, and a hint explains how to select text in fullscreen.

  • Clearer error for effort xhigh/max with thinking off

    The error gave little indication of what was wrong. It now names the level, the setting that disabled thinking, and /effort high as the fix.

  • Quieter /loop output

    Every wake-up printed its own line even when Claude had nothing to do. Consecutive idle wake-ups now fold into a single line in the terminal.

  • Better telemetry attribution to your organization

    Usage telemetry from sessions authenticating with ANTHROPIC_AUTH_TOKEN directly against the Anthropic API, and from the VS Code extension when signed in with a Claude account, wasn’t reliably attributed to the organization. Attribution improves for both, so the organization’s data-handling settings apply.

  • [VS Code] Smarter history trimming in long sessions

    Trimming long-session history could take conversation content with it. Older tool-activity rows are dropped first so your messages and Claude’s replies stay visible.

  • Clearer notice when another terminal holds Remote Control

    The old notice didn’t explain why the session was out of reach. It now says sessions on other machines can’t be seen from, or reach, this one.

Bug fixes

Connections and recovery

  • Remote MCP servers in non-interactive (-p) and SDK sessions never recovering after a dropped connection — they now reconnect automatically or report as failed.
  • Sessions going silent for 10+ minutes when the Anthropic API never starts a response — the request now times out after ~3 minutes, retries once, then shows API Error: No response from API.
  • MCP server sign-in started from the desktop app failing with “Invalid redirect URI” — fixed; it affected servers that support client ID metadata documents (for example Linear).
  • Cross-session messaging silently turning off inside user namespaces and rootless containers after the 2.1.232 socket-directory hardening — fixed.
  • Background subagents not waking when their last background Bash task completes — fixed.

Auto mode and model selection

  • Auto mode staying unavailable at startup when a temporary server-side disable was cached and later flag fetches failed — fixed.
  • Auto mode tool calls being denied as “temporarily unavailable” after about a minute of waiting — fixed; it happened when the API was briefly overloaded and asked the client to retry.
  • The /model picker silently ignoring an Ultracode selection — fixed; picking Ultracode now applies it to the current session.

Sessions and resume

  • /resume only listing the 50 most recent sessions — the picker now loads more as you scroll.
  • Cloud sessions resuming after a mid-turn restart with a pending hook or background-task notification re-sent as the prompt instead of the normal continuation message — fixed.
  • claude --teleport <session> exiting on uncommitted changes — fixed; it now offers to stash them and continue, as the session picker already does.
  • /clear removing the /rename session name from the prompt bar even though the name was kept for the new session — fixed.

Terminal rendering and input

  • Text that hangs outside its container (for example the sign-in URL in /login) losing its leading columns when another part of the screen repaints — fixed.
  • spellcheck not underlining a misspelled word typed directly after an emoji — fixed.
  • Ctrl+R history search and up-arrow history breaking when ~/.claude/history.jsonl contains a malformed entry — fixed.
  • Ctrl+[ not leaving vim INSERT mode in terminals that encode modified keys (modifyOtherKeys / kitty protocol) — fixed.
  • Auth, model-availability, and other client-generated error messages rendering like model output instead of as error lines — fixed.

Settings, hooks, and plugins

  • Hook if conditions like Bash(cat *) firing on unrelated Bash commands when the command contained $() or backtick command substitution followed by more arguments — fixed.
  • Plugin dependencies declared with a marketplace field never resolving when both plugins are loaded together via --plugin-dir — fixed.
  • /reload-plugins keeping the LSP tool after the last LSP plugin is disabled — fixed; it now also warns before an LSP plugin change that would re-read the conversation.
  • --agents silently ignoring invalid JSON or invalid agent definitions — it now exits with a clear error, like --mcp-config.
  • /status showing “Found invalid entries in: .” with no filename when ~/.claude.json has an invalid MCP server entry — fixed.

Organization environments and CI

  • Workload identity federation in CI re-exchanging the single-use token per process — processes in one job now share the exchanged token, and a rejected exchange fails fast with the server’s message.
  • Server-managed companyAnnouncements not showing at startup in a session that began with signing in (for example the first launch after /logout) — fixed.
  • The local IDE connection being routed through HTTPS_PROXY (and sometimes failing) when localhost was listed in NO_PROXY but not lowercase no_proxy — both casings are now honored.
  • Sandbox network-violation details being dropped from the Bash tool result when the blocked command still exited 0 (for example curl printing the proxy’s 403 page) — fixed.
  • The status line rate_limits fields and /usage still showing a rate-limit window’s pre-reset usage percentage after the window reset while the session was idle — fixed.

Web, Remote Control, and VS Code

  • /web-setup repeatedly asking you to log in when an older GitHub CLI (without gh auth token) was already authenticated — fixed.
  • Claude in Chrome losing its connection to Claude Code after an auto-update cleaned up the version it was set up with — fixed; the native host now launches via the stable claude launcher.
  • claude remote-control exiting and stranding attached Remote Control sessions when the server drops its environment mid-session — fixed; it now recovers.
  • Remote Control sessions served by claude remote-control sometimes getting stuck after it was stopped and restarted, for Team and Enterprise members without an admin or owner role — fixed.
  • [VS Code] Sessions started before feature flags were first fetched (for example right after install) opening in the default permission mode instead of auto mode or your configured default mode — fixed.
  • [VS Code] Focus view sections you expanded collapsing on their own during subagent tool activity — fixed.

Notes

  • The sandboxed Bash tool prompt no longer lists allowed network hosts — the change stops Claude from assuming unlisted hosts are blocked. It now attempts the request, so you can approve new hosts as they come up.
  • Computer use on macOS needs Finder access — clicking the desktop, the Dock, or a Finder window now requires granting Finder via the access dialog, like any other app.
  • /model, /fast, and /effort run immediately — on Bedrock, Vertex, and Foundry, and when telemetry is disabled, they no longer queue until the turn ends.
  • The cross-session messaging inbox socket has a 30-second window — connections that send no complete line within 30 seconds are closed. Scripts posting to it should connect once their data is ready.
  • Sonnet 5’s $2/$10 per Mtok is a display change — the /model picker and the bundled claude-api skill now show it as the standard list price rather than a limited-time promo. The price itself did not change.
  • promptCacheTtl targets API-key and cloud-provider users — it exists so they can keep a 1-hour prompt cache on the main conversation while subagents stay at 5 minutes via subagentPromptCacheTtl.
  • modelPricing is a managed setting — an organization’s admins deploy the contracted per-model rates and discount multiplier, not individual users, and /cost, the status line, and telemetry cost figures all follow those values once applied.