What probably matters to youSection of the release
What
Two hook events now fire around model changes. PreModelSwitch runs before a switch from /model, the model picker, the SDK or a resume, and can allow, deny or ask via permissionDecision (or block with exit code 2); deny cancels the switch and ask prompts for confirmation, except in headless sessions where it refuses. PostModelSwitch runs after the model changes and can inject additionalContext that reaches the model on the next request.
Details
Registered in the hook schema, the /hooks help text and the plugin hook-name validator, with their own dispatch and timeout handling.
Switch telemetry reports from_model, to_model, requested_model, whether the prompt cache is still warm, cache_ttl, an estimated_cache_write_usd re-caching estimate, and a source field distinguishing command, picker, sdk, auto and resume switches.
The entry above is what we published on the day. These lines were added later, as Anthropic's own pages caught up, and they sit beside the original rather than replacing it.
Confirmed sinceAnthropic's documentation has since written up PostModelSwitch, on Hooks reference.| SessionStart, SubagentStart, PostModelSwitch | Context only | `hookSpecificOutput.additionalContext` adds context for Claude. SessionStart also accepts [`initialUserMessage`, `watchPaths`, `sessionTitle`, and `reloadSkills`](#sessionstar…hookssee the edit
Confirmed sinceAnthropic's documentation has since written up PreModelSwitch, on Hooks reference.| PreModelSwitch | `hookSpecificOutput` or top-level `decision` | `permissionDecision` (allow/deny/ask), `permissionDecisionReason`. `decision: "block"` also [cancels the switch](#premodelswitch-decision-control) |hookssee the edit
Confirmed sinceAnthropic's documentation has since written up additionalContext, on Hooks reference.| UserPromptSubmit, UserPromptExpansion, PostToolUse, PostToolUseFailure, PostToolBatch, Stop, SubagentStop, ConfigChange, PreCompact | Top-level `decision` | `decision: "block"`, `reason`. Stop and SubagentStop also accept `hookSpecificOu…hookssee the edit
Confirmed sinceAnthropic's documentation has since written up permissionDecision, on Hooks reference.In [non-interactive mode](/docs/en/headless) with the `-p` flag, Claude Code offers `AskUserQuestion` and `ExitPlanMode` only when the run has a [permission host](/docs/en/headless#turn-off-permission-prompts-in-unattended-runs) to receive…hookssee the edit
How sure we are
Two sources agreeTwo things we can check say the same as this entry.
Anthropic's documentation agreesAnthropic's documentation has since written up permissionDecision, on Hooks reference.
Anthropic's release notes agreeAdded PreModelSwitch and PostModelSwitch hook events (block, confirm, or annotate a model switch); SessionStart resume hooks now receive…