What
Claude can now render an HTML or Markdown file to a private, shareable web page hosted on claude.ai. The resulting URL can be shared with teammates.
Usage
Artifact(file_path="report.html", favicon="π")
Artifact(file_path="notes.md", favicon="π", label="v2")
Details
- Accepts
.html, .htm, and .md files; Markdown is converted to styled HTML automatically - The
favicon parameter (required) sets the browser-tab emoji icon β use one or two emoji, no markup - The optional
label parameter provides a human-readable version label shown in the version picker - The optional
url parameter lets Claude redeploy to an existing artifact URL the user provides - A strict CSP blocks all external resources β inline all CSS/JS and embed assets as data: URIs
- Same file path β same URL on redeploy; different file path β new URL
- Controlled by the
CLAUDE_CODE_DISABLE_ARTIFACT environment variable and the disableArtifact setting - Gated by feature flag
tengu_cobalt_plinth; enabled for eligible claude.ai accounts
Evidence
Artifact tool implementation (search for "Render an HTML or Markdown file to an Artifact" and uAH = "Artifact")
--plugin-dir-no-mcp Flag #
New
What
A new --plugin-dir-no-mcp flag that loads a plugin directory without also reading its .mcp.json file. Useful when the SDK host already owns and manages the plugin's MCP connections.
Usage
claude --plugin-dir-no-mcp <path>
Details
- Behaves exactly like
--plugin-dir except the engine skips .mcp.json / mcpServers discovery for that plugin - Equivalent behavior is also available as a setting:
noMcp: true in the plugin frontmatter - Intended for SDK hosts that register MCP servers themselves rather than delegating to the engine
Evidence
New flag definition and help text (search for "Like --plugin-dir but the engine will not read this plugin's .mcp.json")
Ultra (Cloud Review) β Improved Auth Error Messages #
New
What
When ultra (cloud review) is unavailable, Claude Code now surfaces specific, actionable error messages depending on the exact auth state rather than a single generic message.
Details
- API key auth β "ultra (cloud review) requires claude.ai account auth. Unset ANTHROPIC_API_KEY β¦ to use ultra."
- Missing profile scope β "ultra (cloud review) requires a full-scope login token β run
claude auth login to use it" - Not yet in rollout β "ultra (cloud review) isn't enabled for your account yet β run
claude auth login to refresh your entitlements" - Unauthenticated entirely β "ultra (cloud review) requires a claude.ai account β sign in to claude.ai to use it"
- All error messages include a link to
https://code.claude.com/docs/en/ultrareview
Evidence
Error routing function (search for "ultra (cloud review) requires claude.ai account auth")
URL Provenance Check for web_fetch #
New
What
web_fetch now enforces a provenance check β it can only retrieve URLs that appeared in a user message or a prior web_fetch result. Attempts to fetch URLs outside this set present a permission prompt asking the user to approve.
Details
- If the user approves, the fetch proceeds; if denied or timed out, Claude receives an error
- Timeout message: "The permission request for this URL was not answered in time. Ask the user to approve the fetch or include the URL in a message, then try again."
- The error type is
PROVENANCE_REQUIRED - Suppressed in bypassPermissions and dontAsk modes
Evidence
Provenance enforcement and prompt (search for "URL not in provenance set. web_fetch can only retrieve URLs that appeared in a user message")
/memories/export Route #
New
What
A new internal /memories/export route has been registered, enabling memory export functionality.
Evidence
New constant (search for "/memories/export")
ShowOnboardingRolePicker Tool (Cowork) #
New
What
A new internal tool for Cowork onboarding that renders an interactive role-picker chip row. Users can tap a chip (e.g. "Legal", "Engineering") to select their role and trigger automatic plugin installation.
Details
- Blocks until the user responds: chip click, free-form text entry, or dismissal
- Returns
{"role": "..."} on selection, {"dismissed": true} on cancel, {} on confirm-without-role - Only enabled in Cowork sessions; not available in normal conversations
- Gated via
KOf (Cowork environment check)
Evidence
Tool definition (search for "Render a clickable role-picker chip row during Cowork onboarding")
CLAUDE_CODE_CHILD_SESSION Environment Variable #
New
What
A new CLAUDE_CODE_CHILD_SESSION environment variable that marks a session as a child session, suppressing certain persistence behaviors (e.g. session data is not persisted when this is set alongside other child-session conditions).
Evidence
New env var check (search for "CLAUDE_CODE_CHILD_SESSION")
CLAUDE_CODE_SKIP_PLUGIN_MCP_SERVERS #
New
What
A new environment variable that, when set, skips MCP server discovery for plugin directories during startup.
Evidence
Log message (search for "CLAUDE_CODE_SKIP_PLUGIN_MCP_SERVERS is set")
Remote Control Status Labels Renamed to /rc #
New
What
The status-bar labels for the Remote Control / remote session feature have been shortened from "Remote Control active / connecting / failed / reconnecting" to /rc active, /rc connectingβ¦, /rc failed, /rc reconnecting.
Evidence
Status label function (search for "/rc active" and "/rc failed")
Chrome Browser Tools: Batch ToolSearch Loading #
New
What
The Chrome browser automation system prompt now explicitly instructs Claude to load all needed tools in a single ToolSearch call using a comma-separated select: query, rather than one call per tool.
Details
- New guidance: "Do NOT load tools one at a time; each separate ToolSearch call wastes a full round-trip"
- The recommended starter set covers
tabs_context_mcp, navigate, computer, read_page, and tabs_create_mcp in one call - Task-specific extras (recording, forms, console debugging) should be added to that same call when the task obviously needs them
Evidence
Updated browser automation prompt (search for "batch every tool you expect to need into ONE ToolSearch call")
Team Memory: Two-Step Save Process Instructions #
New
What
The team memory system prompt has been overhauled with clearer, step-by-step guidance for saving memories. When using indexed memory, the instructions now explicitly describe a two-step process (write the memory file, then add a pointer to the index).
Details
- Step 1: Write memory to its own file using the frontmatter format
- Step 2: Add a pointer entry (
- [Title](file.md) β one-line hook) to the index file - Index entries are capped at ~150 characters
- Clarified that team memory directories already exist β no need to run
mkdir - Read-only sessions now receive: "If the user asks you to remember something, explain that memory is read-only in this session."
Evidence
New team memory prompt builder (search for "Step 1 β write the memory to its own file in")
AWS Region Display Shows Configuration Source #
New
What
The AWS region display in Bedrock configuration now shows where the region came from β environment variable, AWS shared config file, or the built-in default β rather than just the region name.
Details
us-east-1 (from environment) β shown as-is- From
~/.aws/config β shown as us-east-1 (from AWS config) - Default fallback β shown as
us-east-1 (default β set AWS_REGION or add a region to your AWS config)
Evidence
Region source display function (search for "(from AWS config)" and "(default β set AWS_REGION or add a region to your AWS config)")
--bg / --pool Conflict Error Message Improved #
New
What
The error shown when combining --bg with another backend flag now distinguishes between --pool and --cloud.
Details
- Using
--bg with --pool: "Use claude -p '<task>' --pool <pool_id> directly to start a session on the pool." - Using
--bg with --cloud: "Use claude --cloud '<task>' directly to start a cloud session."
Evidence
Updated error message function (search for "--bg and --pool are different backends")
"Help improve our AI models" Renamed #
New
What
The consent UI string "Help improve Claude" has been renamed to "Help improve our AI models" across all display states (ON, OFF, OFF for domain emails).
Evidence
String changes (search for "Help improve our AI models" β previously "Help improve Claude")
Plugin Disuse Tracking #
New
What
Claude Code now tracks the last time each plugin was used (lastUsedAt and lastUsedNumStartups). This data enables the tip system to surface a warning when a plugin hasn't been used in a while.
Details
- Tip shown: "You haven't used the [plugin] in a while. It still adds startup and context cost β review it withβ¦"
- Tracks both calendar days and session count since last use
Evidence
Plugin usage tracking functions (search for "plugin in a while. It still adds startup and context cost")
MCP OAuth Token Clearing: Preserve Client Registration #
New
What
When clearing MCP OAuth tokens, Claude Code can now optionally preserve the client registration (client ID) while discarding only the access/refresh tokens. This avoids a full re-registration flow when tokens simply need refreshing.
Details
- When
preserveClientRegistration: true is passed, only accessToken, refreshToken, expiresAt, and scope are cleared - Log message: "Cleared stored tokens (preserved client registration)"
Evidence
Updated token-clear function (search for "Cleared stored tokens (preserved client registration)")
Fullscreen Feedback Prompt Simplified #
New
What
The fullscreen mode exit survey prompt has been simplified. The old prompt included the parenthetical "(optional, Enter to skip)"; the new prompt is more direct.
Evidence
String change (old: "To help us make fullscreen mode better, what made you switch back? (optional, Enter to skip)" β new: "To help us make fullscreen mode better, what made you switch back?")
Structured Output Retraction Error Messages #
New
What
When a model fallback causes structured output to be retracted and no retry succeeds, Claude Code now surfaces a more specific error message instead of the previous "the cloud agent called StructuredOutput but every attempt failed schema validation."
New message: "the cloud agent called StructuredOutput but no attempt produced a surviving valid output (failed schema validation, or retracted by a model fallback)"
Evidence
Updated error string (search for "retracted by a model fallback and no retry produced a valid result")
Subagent Model Allowlist Warning Improved #
New
What
When a subagent is configured with a model that is not in the availableModels allowlist, the warning message now distinguishes between inheriting the parent model vs. using the default teammate model.
Details
- Subagent case: "Subagent model
X is not in the availableModels allowlist; inheriting the parent model instead" - Teammate case: "Teammate model
X is not in the availableModels allowlist; using the default teammate model instead"
Evidence
New warning functions (search for "Subagent model" and "Teammate model" with allowlist messages)
Trusted Device Error Message Centralized #
New
What
The "not enrolled as a trusted device" error message is now generated from a single function, ensuring consistent text: "this device is not enrolled as a trusted device; run /login to enroll".
Evidence
Centralized message function (search for "this device is not enrolled as a trusted device; run /login to enroll")
Session Status Update Timestamps #
New
What
When a session's status changes, a separate statusUpdatedAt timestamp is now recorded alongside the general updatedAt timestamp, enabling more precise tracking of status transition times.
Evidence
Updated session state function (search for "statusUpdatedAt" alongside "updatedAt")