Claude docs changes for May 7th, 2026 [diff]
Executive Summary
- Dreams (Research Preview): New Managed Agents API feature for memory consolidation — asynchronously reads memory stores and past session transcripts to produce a deduplicated, reorganized memory store.
- Webhooks for Managed Agents: New guide and CLI API reference for subscribing to session and vault lifecycle events via webhooks.
- Hooks now run in parallel (Agent SDK): SDK hooks fire concurrently rather than sequentially; for permission decisions, the most restrictive result wins.
planmode redefined: Now allows read-only tools to run (file reads, grep, etc.) rather than blocking all tool execution.- Multi-agent API graduated:
callable_agentsrenamed tomultiagentwith new coordinator/thread event model; no longer a Research Preview.
New Claude Code versions
2.1.132
New features
- Added
CLAUDE_CODE_SESSION_IDenvironment variable automatically set in Bash and PowerShell tool subprocesses, matching thesession_idpassed to hooks - Added
CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1env var to opt out of the fullscreen alternate-screen renderer and keep the conversation in the terminal's native scrollback
Existing feature improvements
- Updated the
/tui fullscreenstartup banner to describe additional renderer benefits (lower memory usage, mouse support, auto-copy on select) - Improved visual consistency in slash command dialogs and
/login,/upgrade,/extra-usagespacing
Major bug fixes
- Fixed external SIGINT (e.g. IDE stop button,
kill -INT) not running graceful shutdown — terminal modes are now restored and the--resumehint is printed - Fixed
--permission-modeflag being ignored when resuming a plan-mode session with-p --continue/--resume, and plan mode not being re-applied afterExitPlanMode - Fixed fullscreen mode showing a blank screen after laptop sleep/wake or Ctrl+Z/
fguntil the next keystroke - Fixed unbounded memory growth (10GB+ RSS) when a stdio MCP server writes non-protocol data to stdout
- Fixed MCP servers that connect but fail
tools/listsilently showing 0 tools — they now retry once and show "connected · tools fetch failed" - Fixed unauthorized claude.ai MCP connectors showing as "failed" instead of "needs auth"
- Fixed statusline
context_windowtoken counts reflecting cumulative session totals instead of current context usage - Fixed Alt+T (thinking toggle) not working on macOS terminals without "Option as Meta" enabled (iTerm2, Terminal.app defaults)
- Fixed scroll-wheel handling in JetBrains IDE 2025.2 terminals (spurious arrow keys, wrong-direction events, runaway acceleration)
- Fixed
--resumefailing withno low surrogate in stringwhen a tool error truncation split an emoji - Fixed pasting text starting with
/silently swallowing the input or triggering an unknown-command reply - Fixed Bedrock and Vertex 400 errors when
ENABLE_PROMPT_CACHING_1His set
Claude Code changes
Changed documents
agent-sdk/agent-loop [Source]
- Clarified that
readOnlyHint(notreadOnly) is the correct annotation field name for enabling parallel execution on custom tools in both TypeScript and Python SDKs [line 121] [Source] effortcan now be set per-subagent via theeffortfield onAgentDefinition, overriding the session-level setting [line 152] [Source]planmode redefined: read-only tools now run in plan mode; Claude can explore files without editing source files [line 162] [Source]
agent-sdk/custom-tools [Source]
- New "Return structured data" section documenting the
structuredContentfield — an optional JSON object on the tool result that allows returning machine-readable data alongside image/resource content [line 363] [Source] - Note that Python SDK
@tooldecorator does not forwardstructuredContent; use a standalone MCP server instead
agent-sdk/hooks [Source]
- Hooks now run in parallel, not sequentially. For permission decisions, the most restrictive result wins: a single
denyblocks the call regardless of other hooks [line 294] [Source] - Section renamed from "Chain multiple hooks" to "Register multiple hooks" reflecting the parallel execution model
agent-sdk/migration-guide [Source]
- Settings sources default clarified: the v0.1.0 change to not load filesystem settings was reverted — no migration action needed. Current default loads user, project, and local filesystem settings [line 170] [Source]
agent-sdk/observability [Source]
- New "Attribute actions to your end users" section: inject
enduser.idandtenant.idasOTEL_RESOURCE_ATTRIBUTESon eachquery()call to create a per-user audit trail of tool calls and MCP activity [line 138] [Source]
agent-sdk/permissions [Source]
planmode redefined: read-only tools run; Claude can read files and explore the codebase but does not edit source files [line 86] [Source]- Clarified that a hook returning
allowdoes not bypass deny and ask rules — those are evaluated regardless [line 18] [Source] - Python code example updated to use
ClaudeSDKClientcontext manager pattern
agent-sdk/python [Source]
- New
ClaudeAgentOptionsfields:strict_mcp_config(ignore project/user MCP config),include_hook_events(expose hook lifecycle in message stream),session_store_flush(batchedoreager) - New effort level
xhighadded toefforttype literals - New
ToolPermissionContextfields:blocked_path,decision_reason,title,display_name,description - New
permissionDecisionvalue"defer"added toPreToolUseHookSpecificOutput - New
updatedToolOutputfield onPostToolUseHookSpecificOutput - New
deferred_tool_usefield onResultMessage - New "Handle slow or stalled API responses" section documenting
API_TIMEOUT_MS,CLAUDE_CODE_MAX_RETRIES,CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS, andCLAUDE_ENABLE_STREAM_WATCHDOGenv vars
agent-sdk/typescript [Source]
- New
settingsoption for inline settings object or path to a settings file (flag-settings layer) - New
applyFlagSettings()method on the Query object for changing settings on a running session without restarting (TypeScript-only) structuredContentfield added toCallToolResulttype- New "Handle slow or stalled API responses" section (same env vars as Python)
amazon-bedrock [Source]
- Inference profile ID prefix changed from
global.tous.in the exampleANTHROPIC_MODELvalue
authentication [Source]
- Credential storage location expanded into per-platform bullet points; Windows path now explicitly documented as
%USERPROFILE%\.claude\.credentials.json
channels [Source]
- Channels now support Console API key authentication (previously claude.ai login only); not available on Bedrock, Vertex, or Foundry
- Enterprise controls section expanded: default behavior now differs by auth method — claude.ai Team/Enterprise blocks channels by default; Console API key authentication permits them by default
cli-reference [Source]
- New
--plugin-urlflag: fetch a plugin.ziparchive from a URL for the session [line ~103] --add-dirclarified: to persist directories across sessions, setpermissions.additionalDirectoriesin settings--effortclarified: overrides theeffortLevelsetting for the session--settingsclarified: values override the same keys insettings.jsonfiles for the session
commands [Source]
/skillscommand: pressSpaceto hide a skill from Claude or the/menu, thenEnterto save/team-onboarding: for claude.ai Pro, Max, Team, and Enterprise subscribers, now also returns a share link teammates can open directly in Claude Code/color: can now run with no argument to pick a random color
desktop [Source]
- New split-pane view: hold Cmd (macOS) or Ctrl (Windows) and click a session in the sidebar to open it alongside the current session. Press Cmd+\ or Ctrl+\ to close the focused pane
env-vars [Source]
- New
CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS: stall timeout for background subagents (default 10 minutes) - New
CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN: set to1to force classic main-screen renderer - New
CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY: set to1to populate/modelpicker from gateway's/v1/modelsendpoint (opt-in) - New
CLAUDE_CODE_FORCE_SYNC_OUTPUT: set to1to force-enable DEC private mode 2026 synchronized output - New
CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE: set to1to enable background auto-updates for Homebrew and WinGet - New
CLAUDE_CODE_SESSION_ID: automatically set in Bash/PowerShell subprocesses to the current session ID CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMINGbehavior updated: now enabled by default for direct Anthropic API; set to0to opt out
features-overview [Source]
- Added note that
skillOverridesin settings can hide a skill from Claude without editing the skill's file
fullscreen [Source]
- New "Scroll in the JetBrains IDE terminal" subsection documenting Claude Code's override of JetBrains scroll handling and scroll bugs in 2025.2
- New tmux caveat: synchronized output is not supported in tmux, which may cause flicker — recommend running outside tmux especially over SSH
- Turn-off instructions updated to include
CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1
headless [Source]
- New
--plugin-url <url>flag documented for loading plugins from URL archives - Piped stdin now capped at 10MB as of v2.1.128; exceeding the cap exits with an error
hooks [Source]
PostToolUsehook:decision: "block"adds the reason next to the tool result; Claude still sees original output. UseupdatedToolOutputto replace it [line 1293] [Source]
interactive-mode [Source]
Alt+T/Option+Tthinking toggle now works on macOS without configuring "Option as Meta" (as of v2.1.132)Shift+Enterfor newline now natively supported in Windows Terminal- Ctrl+R history search now defaults to all projects scope; press
Ctrl+Sto cycle through session → project → all projects
llm-gateway [Source]
- Gateway model discovery is now opt-in: set
CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1to populate the/modelpicker from the gateway's/v1/modelsendpoint (was previously automatic) - Minimum version requirement bumped from v2.1.126 to v2.1.129
mcp [Source]
/mcppanel now shows tool count per server and flags servers that advertise the tools capability but expose zero tools- Server name
workspaceis reserved; Claude Code skips and warns if a config uses it alwaysLoad: trueblocks startup until the server connects (capped at 5s) even whenMCP_CONNECTION_NONBLOCKING=1is set
monitoring-usage [Source]
- New mTLS authentication section documenting cert configuration by OTLP protocol:
http/protobuf/http/jsonuseCLAUDE_CODE_CLIENT_CERTvars;grpcusesOTEL_EXPORTER_OTLP_CLIENT_KEYvars - New "Audit security events" section: identity attributes, MCP activity auditing, security question-to-event mapping table, and SIEM forwarding example
- Note added:
OTEL_*env vars are not passed to subprocesses (Bash tool, hooks, MCP servers)
permissions [Source]
planmode description updated: Claude reads files and runs read-only shell commands to explore but does not edit source filesdisableRemoteControlmanaged setting added: disables Remote Control per device
plugin-marketplaces [Source]
- Plugin skills are now namespaced with the plugin name (e.g.,
/plugin-name:skill-name) - New
pathPatternmarketplace source type for filesystem-based path restrictions - Note added: exact URL matching for allowlists is not normalized; use
hostPatternfor organizations with multiple URL forms
plugins [Source]
- New
--plugin-urlflag documented: loads a plugin from a.ziparchive URL for the session duration (useful for CI build artifacts)
plugins-reference [Source]
rust-lsprenamed torust-analyzer-lspin the built-in LSP tablethemesandmonitorskeys moved underexperimentalinplugin.json; top-level still works but warns — will requireexperimental.*in a future release- Note added: a
CLAUDE.mdat the plugin root is not loaded as project context; use skills instead --plugin-urladded alongside--plugin-dirreferences
remote-control [Source]
- Claude mobile app navigation updated: tap "Code" in the navigation to reach the session list
- New
disableRemoteControlmanaged setting cause added to the error message troubleshooting section
scheduled-tasks [Source]
- Jitter range updated: recurring tasks now fire up to 30 minutes after scheduled time (was up to 15 minutes, or 10% of interval)
security [Source]
- Accept Edits mode now explicitly lists auto-approved commands:
mkdir,touch,rm,mv,cp,sed; other Bash commands and out-of-scope paths still prompt
settings [Source]
- New
autoMemoryEnabledsetting: disable auto memory entirely or force it on even when--baremode would disable it - New
disableRemoteControlsetting: blocks Remote Control at the device level (requires v2.1.128+) - New
skillOverridessetting: per-skill visibility control with stateson,name-only,user-invocable-only,off(requires v2.1.129+) - New
pathPatternmarketplace source type forextraKnownMarketplaces - Note added: on Windows,
~/.clauderesolves to%USERPROFILE%\.claude - Plugin precedence note: project settings take precedence over user settings; to opt out of a project-enabled plugin, set it to
falsein.claude/settings.local.json
skills [Source]
- New "Override skill visibility from settings" section documenting the
skillOverridessetting with four visibility states - Note added: skill body content incurs recurring token cost across turns; keep SKILL.md files concise
statusline [Source]
context_window.total_input_tokensandtotal_output_tokensnow reflect current context window usage (not cumulative session totals) as of v2.1.132; includes cache reads/writes for input- Script now also triggers after
/compactfinishes current_usageisnullimmediately after/compactuntil the next API call
terminal-config [Source]
- Windows Terminal moved to "Works without setup" row — Shift+Enter for newline is now natively supported
tools-reference [Source]
- New
ShareOnboardingGuidetool: uploadsONBOARDING.mdand returns a share link; available to claude.ai Pro, Max, Team, and Enterprise subscribers; called from/team-onboarding
voice-dictation [Source]
- New error documented: "Voice input is failing repeatedly and has been paused" — explains auto-pause behavior after repeated failures and how to re-enable
web-quickstart [Source]
- New troubleshooting section: "New sessions hang or time out during setup" — explains the ~5-minute environment cache budget and recommends parallel installs and moving large downloads to a SessionStart hook
API changes
New Documents
api/api/cli/beta/webhooks [Source]
CLI API reference for beta webhooks. Documents the unwrap helper for verifying webhook signatures and lists all 22 possible data.type values for session and vault events.
managed-agents/dreams [Source]
New Research Preview feature for memory consolidation. A dream reads an existing memory store and up to 100 past session transcripts, then produces a new reorganized memory store with duplicates merged and stale entries replaced. The input store is never modified. Documents the full dream lifecycle (pending → running → completed/failed/canceled), polling, output usage, cancellation, archiving, and billing. Requires both managed-agents-2026-04-01 and dreaming-2026-04-21 beta headers.
managed-agents/webhooks [Source]
New guide for subscribing to Managed Agents session and vault lifecycle events via webhooks. Covers supported event types (session status changes, thread events, outcome evaluation, vault credential events), endpoint registration in Console, signature verification using unwrap(), event payload structure, and delivery behavior (no ordering guarantee, auto-disable after ~20 consecutive failures).
Changed documents
api/api/beta [Source]
- BetaWebhooks section now includes a descriptive intro and full list of 22
data.typevalues (replaces the previous empty stub) session.status_scheduledevent type renamed tosession.status_rescheduledthroughout (affects all SDK language variants)- BetaUser Profiles section reordered to appear before BetaWebhooks
api/api/cli/beta [Source]
- Same BetaWebhooks and
session.status_rescheduledrename changes asapi/api/beta.md
api/api/go/beta [Source]
- Same BetaWebhooks and
session.status_rescheduledrename changes asapi/api/beta.md
api/api/java/beta [Source]
- Same BetaWebhooks and
session.status_rescheduledrename changes asapi/api/beta.md
api/api/python/beta [Source]
- Same BetaWebhooks and
session.status_rescheduledrename changes asapi/api/beta.md
api/api/ruby/beta [Source]
- Same BetaWebhooks and
session.status_rescheduledrename changes asapi/api/beta.md
api/api/typescript/beta [Source]
- Same BetaWebhooks and
session.status_rescheduledrename changes asapi/api/beta.md
managed-agents/agent-setup [Source]
callable_agentsfield renamed tomultiagentin the agent configuration; now described as "a coordinator declaration listing the agents this agent can delegate to"- Update behavior docs updated:
multiagentis replaced as a whole (passnullto clear it)
managed-agents/define-outcomes [Source]
- Research Preview notice and additional beta header requirement removed — feature is now generally available under the standard
managed-agents-2026-04-01header - Code tab coverage expanded to all SDK languages (curl, CLI, Python, TypeScript, C#, Go, Java, PHP, Ruby)
managed-agents/events-and-streaming [Source]
stop_reason.requires_action.event_idspath simplified tostop_reason.event_ids(2 occurrences)- CLI tab added to several code examples
managed-agents/multi-agent [Source]
- Research Preview notice removed — multi-agent is now generally available
callable_agentsrenamed tomultiagentwithtype: coordinatorand anagentsarray throughoutmultiagent.agentsnow supports{"type": "self"}and omittingversion(defaults to latest)- Limits clarified: max 20 unique agents in
multiagent.agents, max 25 concurrent threads - New thread event types documented:
session.thread_status_running,session.thread_status_idle,session.thread_status_terminated,agent.thread_message_received,agent.thread_message_sent client.beta.sessions.threads.stream(...)updated toclient.beta.sessions.threads.events.stream(...)
managed-agents/vaults [Source]
- New "Credential refresh" section documenting periodic re-resolution behavior and webhook events for vault/credential lifecycle (
vault.archived,vault.deleted,vault_credential.*) - New "Diagnose an OAuth refresh failure" subsection with the
/mcp_oauth_validateendpoint, status values (valid,invalid,unknown), and full JSON response example