Claude Code v2.1.284: Claude Sonnet 5.5, Auto Mode by Default on Every Plan, and Ultracode as Its Own Toggle
Claude Code v2.1.284 adds Claude Sonnet 5.5 as the default Sonnet model on the Anthropic API, starts interactive sessions in auto mode by default on every plan, and makes Ultracode a separate /effort toggle.
Claude Code v2.1.284 is a large release that adds Claude Sonnet 5.5 as the default Sonnet model on the Anthropic API and makes auto mode the default permission mode for interactive terminal and VS Code sessions on every plan and provider. Ultracode becomes a separate toggle in /effort, /mcp reconnect all arrives, and the Claude apps gateway gains spend-limit dollar amounts and new authentication options. The rest of the release fixes response-stream handling, MCP, plugins, VS Code and Claude Tag issues.
What’s New
Claude Sonnet 5.5 is the new default Sonnet model
Claude Sonnet 5.5 (claude-sonnet-5-5) is now available and is the default Sonnet model on the Anthropic API. The changelog lists a 1M context window and pricing of $2/$10 per million tokens, with cache reads at $0.20 per million tokens.
Auto mode by default on every plan and provider
Interactive terminal and VS Code sessions now start in auto mode when no permission mode is configured, on every plan and provider; permissions.defaultMode still overrides it. Auto mode’s prompt before a read outside the working directories also gains a “Yes, but ask again next time” answer, which allows that one read while still asking about later ones.
Ultracode becomes its own toggle
Ultracode is now a separate toggle in /effort (Tab, or /effort ultracode [on|off]); it no longer forces xhigh effort and stays on at any effort level. New effortSlider:decreaseEffort, increaseEffort and toggleUltracode keybinding actions let you rebind the slider’s arrow and Tab keys in keybindings.json, and in VS Code an Ultracode on/off switch under the Effort slider replaces the slider’s Ultracode stop.
/mcp reconnect all and /rate-limit-options
In the interactive terminal, /mcp reconnect all retries every MCP server that failed to connect or needs authentication at once. For claude.ai subscribers, /rate-limit-options now appears in /help and the command menu, so the usage-limit notices that mention it point to a command you can find.
Claude apps gateway: spend amounts and authentication options
When the gateway runs this version or later, its spend limit in /usage and the status line shows dollar amounts (for example “$271.40 / $500.00 spent this month”), and the status line’s rate_limits.spend_limit gains used_usd, limit_usd and period. The gateway also adds certificate client authentication (private_key_jwt) with its identity provider and auth: { google: {} } for telemetry.forward_to destinations, which exports telemetry straight to Google Cloud’s OTLP endpoint using the gateway’s Google Cloud credentials. It now warns at startup when a managed policy’s availableModels is empty, or leaves out the model Claude Code starts on without setting model or enforceAvailableModels.
VS Code: message timestamps and plugin errors
VS Code can show the time above each prompt and response, with a date line where the day changes (the Claude Code: Show Message Timestamps setting, off by default), and the Manage plugins rows now show plugin load errors and notes with a popup to disable, uninstall or copy the error. CLAUDE_CONFIG_DIR in the claudeCode.environmentVariables setting now applies only when it is an absolute path, and it is passed to terminals that continue the chat.
Fixes and Improvements
- Response streams: A damaged response stream no longer shows raw errors such as “JSON Parse error” or “undefined is not an object”, or writes the word “undefined” into an answer; it is now retried or reported as an interrupted response.
- Retries: An overloaded or server error arriving right after a thinking block is now retried instead of ending the turn, and retries after a dropped connection mid-response now share one budget with the request’s other retries, so a failing request gives up sooner.
- Compaction: When a compacted request is still too long, Claude Code now compacts once more, keeping less of the recent conversation, instead of leaving “Prompt is too long” errors in place.
- Models: In sessions that pin an Opus model with
ANTHROPIC_DEFAULT_OPUS_MODELormodelOverrides, safety-related model switches on the Anthropic API now go to the model the API picks for each kind of flag, not the pinned model. The notice shown when a Sonnet model’s safeguards flag a message now explains why and offers editing and retrying. - Explore subagent: Explore no longer switches to Opus on the Claude API when the session runs a model ID Claude Code doesn’t recognize, such as a custom model behind a proxy; it now inherits that model.
- MCP: MCP tool calls in a resumed session no longer fail with “No such tool available” while their server is still connecting; the call now waits up to 10 seconds. The non-interactive first turn also still waits up to 2s for connecting MCP servers named by
--allowedToolsor anmcp_toolhook, even whenCLAUDE_CODE_MCP_STARTUP_WAIT_MSis0. - MCP:
claude mcp addnow refuses and says what to do when managed settings restrict MCP servers to plugins, instead of reporting success and saving a server that never loads. - Rules and imports: Rules symlinked into
.claude/rulesfrom outside the project are no longer skipped without the external-imports approval prompt, and a.claudedirectory symlinked from outside the project now asks for the same approval. - Managed settings: Under managed
allowManagedPermissionRulesOnly, plugins from marketplaces, claude.ai and npm can no longer pre-approve their own tools viaallowed-tools; only plugins from an official Anthropic source or a source that managed settings vouch for keep that pre-approval. - Foundry:
ANTHROPIC_FOUNDRY_RESOURCEis no longer interpolated into the Foundry endpoint host unvalidated; a value that is not a plain resource name is now refused. - Auto-memory: Invisible characters and tags that imitate Claude Code’s own markup are neutralized in
MEMORY.mdand recalled memory notes before they reach Claude. - Plugins and hooks: The
/pluginconfigure screen now offers a true/false choice for boolean options and refuses invalid number input, and{"decision":"block"}returned by Elicitation and ElicitationResult hooks now declines the MCP elicitation, as exit code 2 does. - Usage limits: Usage-limit warnings no longer suggest
/upgradeto users already on the highest Max plan; the warnings and/upgradeitself now point at/usage-creditswhen it is available. /recap:/recapnow declines with a short notice when it arrives relayed from a chat thread (your own included) or from a routine or webhook; typed in the terminal, the Claude apps, Remote Control,-por an SDK host, it runs as before.- Fullscreen: The scroll position no longer jumps to the previous message or the bottom when a reply finishes streaming while you are scrolled up, and on macOS and Linux
[in transcript mode no longer erases the terminal output above the session. - Windows: The Bash tool no longer fails with many plugins enabled: plugin
bin/directories that don’t exist are no longer added to PATH, and inherited entries aren’t added twice. - VS Code: Escape no longer stops every background agent when no turn is running, and typing
/modeland Enter now opens the model selector instead of printing usage text. - Claude Tag: Threads, channel defaults and DMs can now use model family choices such as “Opus (latest)”, so the choice follows the newest model in that family.
This release contains 100 changes in total; see the full changelog for the complete list.
How to Update
- Check your installed version:
claude --version - Update in place:
claude update - Interactive terminal and VS Code sessions without a configured permission mode now start in auto mode on every plan and provider; set
permissions.defaultModeif you want a different default. Ultracode is now a separate toggle in/effortand no longer forces xhigh effort.