Hooks gain a new if field for fine-grained filtering by tool name and arguments, letting hooks skip spawning when the tool call doesn't match
Agent SDK (Python and TypeScript) adds session management functions: get_session_info(), rename_session(), and tag_session(), plus new RateLimitEvent type for monitoring rate limit status
Healthcare MCP servers (bioRxiv, ChEMBL, Clinical Trials, CMS Coverage, ICD-10 Codes, NPI Registry) migrated to new hcls.mcp.claude.com URLs; Zoho Desk MCP server added
New --tmux CLI flag creates a tmux session alongside a worktree, and disableDeepLinkRegistration setting controls claude-cli:// protocol handler registration
MCP tool search behavior changed: all MCP tools are now deferred by default (previously only enabled for first-party hosts)
New --tmux flag added: creates a tmux session for the worktree (requires --worktree), using iTerm2 native panes when available or pass --tmux=classic for traditional tmux. [line 86] [Source]
.worktreeinclude file added to the project file explorer and reference table, documenting it as the mechanism for copying gitignored files into new worktrees. [line 15] [Source]
Added explanation of how origin/HEAD determines the worktree base branch, including how to re-sync it after a remote default branch change (git remote set-head origin -a). [lines 678-688] [Source]
Clarified that .worktreeinclude is not processed when a custom WorktreeCreate hook is configured — copy local config files inside the hook script instead. [line 744] [Source]
ENABLE_TOOL_SEARCH description updated: all MCP tools are now deferred by default (not just for first-party hosts); true always defers; auto is now threshold mode (load upfront if within 10% of context); false loads all upfront. [line 103] [Source]
New section "Filter by tool name and arguments with the if field" added, with a full example showing how to filter a PreToolUse hook to only git commands using "if": "Bash(git *)". Requires Claude Code v2.1.85+. [lines 574-604] [Source]
New if field added to common hook fields table: uses permission rule syntax (e.g. "Bash(git *)", "Edit(*.ts)") to filter when a handler runs; only evaluated on tool events. [line 270] [Source]
AskUserQuestion and ExitPlanMode added to the list of tool names supported by PreToolUse matchers. [line 800] [Source]
AskUserQuestion tool input documented: fields questions (array) and answers (object), with guidance on how hooks can programmatically answer questions in non-interactive mode by returning updatedInput. [lines 900-910] [Source]
updatedInput clarified to replace the entire input object — include unchanged fields alongside modified ones. Applies to both PreToolUse and PermissionRequest. [line 917] [Source]
WorktreeCreate hook: added note that .worktreeinclude is not processed when a hook replaces the default behavior — handle file copying inside the hook script. [line 1592] [Source]
Six healthcare MCP servers (bioRxiv, ChEMBL, Clinical Trials, CMS Coverage, ICD-10 Codes, NPI Registry) migrated from mcp.deepsense.ai to hcls.mcp.claude.com URLs and moved to a new grouped section. [lines 785-840] [Source]
New Zoho Desk MCP server added; Zoho Books, CRM, and Projects now include direct HTTP install commands. [lines 841-860] [Source]
headersHelper documentation updated: two new environment variables (CLAUDE_CODE_MCP_SERVER_NAME, CLAUDE_CODE_MCP_SERVER_URL) are now set when the helper runs, enabling a single script to serve multiple MCP servers. [lines 1367-1373] [Source]
OAuth metadata discovery clarified: Claude Code now checks RFC 9728 Protected Resource Metadata first, then falls back to RFC 8414 authorization server metadata. [line 1311] [Source]
ENABLE_TOOL_SEARCH table updated to reflect new default behavior (all tools deferred, not just first-party). [lines 1641-1648] [Source]
none added as a valid value for OTEL_METRICS_EXPORTER and OTEL_LOGS_EXPORTER to explicitly disable those exporters. [lines 13-14] [Source]
tool_input truncation behavior clarified: individual values over 512 characters are truncated before the overall ~4K cap is applied. [line 360] [Source]
Added installation UI snippet showing tabs for Terminal, Desktop, VS Code, and JetBrains, plus macOS/Linux/Windows/Homebrew/WinGet options and the one-line curl install command. [lines 5-18] [Source]
New disableDeepLinkRegistration setting: set to "disable" to prevent Claude Code from registering the claude-cli:// protocol handler with the OS on startup. [line 153] [Source]
teammateMode moved from project settings to global config settings (~/.claude.json). [line 210] [Source]
Worktree settings section now references .worktreeinclude as the mechanism for copying gitignored files into worktrees. [line 221] [Source]
Plugin managed settings note added: managed settings can block plugin installation at all scopes and hide plugins from the marketplace. [line 513] [Source]
New get_session_info() function: reads metadata for a single session by ID without scanning the full project directory. [lines 314-345] [Source]
New rename_session() function: sets a custom title on a session; repeated calls are safe, last title wins. [lines 347-378] [Source]
New tag_session() function: attaches a tag string to a session; pass None to clear. [lines 380-423] [Source]
SDKSessionInfo gains two new fields: tag (user-set session tag) and created_at (creation timestamp in ms). [lines 257-259] [Source]
ClaudeSDKClient.get_mcp_status() now returns McpStatusResponse (not a plain list). add_mcp_server and remove_mcp_server replaced by reconnect_mcp_server, toggle_mcp_server, and stop_task. [lines 444-455] [Source]
AgentDefinition gains three new fields: skills, memory, and mcpServers for controlling subagent resources. [lines 956-968] [Source]
New McpServerStatusConfig and McpStatusResponse types documented. [lines 1215-1235] [Source]
New RateLimitEvent and RateLimitInfo types: emitted when rate limit status changes (e.g. "allowed" → "allowed_warning" → "rejected"). Added to the Message union type. [lines 1426-1482] [Source]
AssistantMessage gains a usage field for per-message token counts. [line 1348] [Source]
Added mention of new session management functions (get_session_info, rename_session, tag_session in Python; getSessionInfo, renameSession, tagSession in TypeScript) for organizing sessions by tag or giving them human-readable titles. [line 235] [Source]
AgentDefinition now supports three new fields: skills (list of skill names), memory (memory source), and mcpServers (MCP servers by name or inline config). [lines 114-116] [Source]
AgentDefinition.skills now works in both Python and TypeScript (previously TypeScript only). [line 133] [Source]
Clarified that top-level input_tokens/output_tokens match the message iteration exactly when there is only one non-compaction iteration. [line 389] [Source]
Link updated to a specific session memory compaction cookbook showing background threading and prompt caching. [line 540] [Source]
Clarified that cache failures below the minimum token threshold are silent — the request succeeds but both cache_creation_input_tokens and cache_read_input_tokens will be 0. [lines 268-271] [Source]
New guidance: if a prompt is just below the minimum, expanding cached content to reach the threshold is often worth the effort given the cost difference between cached and uncached tokens. [lines 271-272] [Source]