Release notes
Claude Code v2.1.285
What's changed
- Added
CLAUDE_CODE_DISABLE_WEB_FETCHenvironment variable to turn off the WebFetch tool - Added
claude --desktopto open the Claude desktop app on the current directory, or on a session with--continue/--resume <id> - Added
claude plugin configure <plugin>to show a plugin's options and which are unset, or save new values read from stdin with--values-stdin - Added
<server>.<key>=<value>toclaude plugin install --config, so a bundled.mcpbMCP server's own settings can be set at install time and it starts without visiting/plugin→ Configure - Added
allowedProvidersmanaged setting to limit which API providers a machine may use (Anthropic API, a custom endpoint, Bedrock, Mantle, Vertex AI, Foundry, Claude Platform on AWS, or a Cloud gateway) - Added
CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIESenvironment variable to cap re-sends of a non-streaming fallback request that timed out - Fixed
claude -pwithCLAUDE_CODE_FORK_SUBAGENT=1: a subagent's own Agent call now runs in the foreground, so the subagent gets the child's result - Fixed plugin and marketplace installs and updates over SSH ignoring the ssh program set in
GIT_SSHor in your git config'score.sshCommand - Fixed Claude Code refusing to start when the OS denies reading the managed settings file; it now warns and starts without that file's policies. Other read errors and unparseable files stop every session
- Fixed cloud sessions that restarted after their conversation was compacted refusing the next update to an artifact the session had already read or published
- Fixed
claude plugin disableandenablewith a fullname@marketplaceid changing a settings entry in another letter case instead of the installed plugin's own - Fixed files attached to a message sent over Remote Control being left out after a single failed download; a network error, timeout or server error is now retried up to twice
- Fixed switching models mid-session with a
set_modelrequest (such as the Agent SDK'ssetModel) leaving the new model on the built-in output-token limit and auto-compact window until restart - Fixed redacted logs and transcripts showing part of a URL password that contains
@, or all of it when the URL writes its@as%40 - Fixed SSH passphrase and new-host prompts from worktree and
/teleportfetches taking over the terminal; these fetches now fail fast instead of asking - Fixed switching off an MCP server added mid-session in SDK and
-psessions leaving its tools available - Fixed
claude -p --permission-prompt-tool: a background subagent's permission request now goes to the prompt tool instead of being auto-denied - Fixed
claude mcp listandclaude mcp get, and the not-found error ofclaude mcp remove,loginandlogout, printing line breaks and terminal escape sequences from MCP server names and values - Fixed sandbox auto-allow asking for approval on every run of many inline scripts (
python3 -c,node -e) just because they contain= - Fixed fork subagents not keeping the session's plan mode or
dontAskmode: a fork now runs under its parent's permission mode and cannot exit plan mode - Fixed
claude remote-control --helpsaying--[no-]chromedefaults to the machine's/chromesetting; spawned sessions keep Claude in Chrome off unless--chromeis passed - Fixed background subagents in auto mode prompting a second, redundant reply after each report
- Fixed cloud session creation and
/remote-envreading only the newest 20 of an account's environments - Fixed Remote Control marking a message as read as soon as it arrived instead of when Claude started on it, and losing a message still queued when the terminal quit (it now arrives on the next resume)
- Fixed installing a plugin with
claude plugin installor/pluginputting it into an installed plugin's cache or data folder when their ids differ only in.,-,@or (macOS, Windows) capitals; the install is now refused - Fixed hooks and SDK permission callbacks seeing a missing or outdated plan on ExitPlanMode when the plan was written in the same response
- Fixed the first reply in cloud sessions arriving tens of milliseconds late, a regression in 2.1.283
- Fixed sessions that authenticate with
ANTHROPIC_AUTH_TOKENagainst the Anthropic API never loading the organization's policy - Fixed a failed
agent(),parallel()orpipeline()call that a workflow script awaits later, or not at all, being treated as an unhandled promise rejection, which could end a background session - Fixed synchronous hooks hanging Claude Code while a background process the hook started (for example
some-daemon &) kept its output open; the hook now finishes shortly after its own process exits - Fixed WebFetch reporting a rate-limited domain safety check as a network or enterprise policy block
- Fixed the fullscreen ctrl+o transcript freezing briefly when opened on turns with hundreds of file reads or searches; tool calls still running when the transcript opens now show their results when they finish
- Fixed Amazon Bedrock mid-stream
modelTimeoutExceptionandserviceUnavailableExceptionerrors showing a raw JSON body instead of the error message - Fixed
/autofix-prand/schedulesaying the Claude GitHub App is not installed on a repository whose install status had not been checked yet - Fixed dismissing a row (x) in
/artifactsunlinking its file from the artifact, so publishing the same file again created a new artifact instead of updating it - Fixed Artifact tool publishes after a conversation rewind (Esc Esc) overwriting a file's newer content that Claude had read only in the rewound turns; the publish is now refused until Claude re-reads the file
- Fixed an
Artifactallow rule ("don't ask again") letting the Artifact tool publish a file outside the working directories without asking; add the file's folder with--add-dirfor the rule to cover it - Fixed
/costand SDKmodelUsagereporting a turn under the wrong model when the server answered a refusal with a different fallback model than the client expected - Fixed the Artifact tool so that publishing a page no longer lets Claude overwrite its source file without re-reading it when Claude's earlier read was cut short or the file had changed since
- Fixed auto mode skipping its classifier for Artifact tool asset uploads and reads of someone else's artifact when you had approved that artifact earlier in another permission mode
- Fixed a misleading "core.worktree is set" error from
/ultrareviewwhen the project folder briefly could not be read - Fixed
/ultrareviewon macOS and Linux failing to upload the working tree from a git worktree whose per-worktree config setscore.longpaths - Fixed the Artifact tool sometimes reporting a publish as a conflict with another session after retrying a temporary server error, when the first attempt had actually succeeded
- Fixed
/ultrareviewuploads including uncommitted changes to credential files whose name has a colon before the extension, such asserver:8443.key - Fixed a rare auth failure when two sessions recover a login refresh lock left by a crashed process at the same time
- Fixed the PowerShell tool's permission check skipping deny and ask rules, and caching that failure for later checks, when its command parser failed to start (for example when the machine was out of memory)
- Fixed
/ultrareviewuploads on macOS and Linux running slowly on some unusual file names, and their credential-file check missing file or folder names with many backup or editor marks - Fixed a cancelled shell command or hook still starting, and running to its end, when the cancel arrived while it was being set up
- Fixed vim mode: after editing in the external editor (Ctrl+G),
xorr
…