Every hook event, and where it lived
33 hook events One tick per build on this box, oldest on the left. A gap is a build the hook event was not in.○ not in v2.1.308, ◇ we found no documentation describing it.
Hook eventWhat it doesSpan v2.1.138 → v2.1.308 Status
ConfigChange When a configuration file changes during a sessionnever mined ·never mined
CwdChanged When the working directory changes, for example when Claude executes a cd command. Useful for reactive environment management with tools like direnvnever mined ·never mined
DirectoryAdded When a working directory is added mid-session via /add-dir or the SDK register_repo_root control requestnever mined ·never mined
Elicitation When an MCP server requests user input during a tool callnever mined ·never mined
ElicitationResult After a user responds to an MCP elicitation, before the response is sent back to the servernever mined ·never mined
FileChanged When a watched file changes on disk. The matcher field specifies which filenames to watchnever mined ·never mined
InstructionsLoaded When a CLAUDE.md or .claude/rules/*.md file is loaded into context. Fires at session start and when files are lazily loaded during a sessionnever mined ·never mined
MessageDisplay While assistant message text is displayednever mined ·never mined
Notification When Claude Code sends a notificationnever mined ·never mined
PermissionDenied When auto mode denies a tool call, including denials without a classifier verdict. Use JSON hookSpecificOutput.retry: true to tell the model it may retry the denied tool call. Claude Code ignores retry when the classifier produced no verdictnever mined ·never mined
PermissionRequest When a tool call needs a permission decisionnever mined ·never mined
PostCompact After context compaction completesnever mined ·never mined
PostModelSwitch After the session's model changes, including changes Claude Code makes on its own, such as restoring the model when you resume a sessionnever mined ·never mined
PostToolBatch After a full batch of parallel tool calls resolves, before the next model callnever mined ·never mined
PostToolUse After a tool call succeedsnever mined ·never mined
PostToolUseFailure After a tool call failsnever mined ·never mined
PreCompact Before context compactionnever mined ·never mined
PreModelSwitch Before Claude Code applies a model switch that you or a client requested. Can block the switchnever mined ·never mined
PreToolUse Before a tool call executes. Can block itnever mined ·never mined
SessionEnd When a session terminatesnever mined ·never mined
SessionStart When a session begins or resumesnever mined ·never mined
Setup When you start Claude Code with --init-only, or with --init or --maintenance in -p mode. For one-time preparation in CI or scriptsnever mined ·never mined
Stop When Claude finishes respondingnever mined ·never mined
StopFailure When the turn ends due to an API errornever mined ·never mined
SubagentStart When a subagent is spawnednever mined ·never mined
SubagentStop When a subagent finishesnever mined ·never mined
TaskCompleted When a task is being marked as completednever mined ·never mined
TaskCreated When a task is being created via TaskCreatenever mined ·never mined
TeammateIdle When an agent team teammate is about to go idlenever mined ·never mined
UserPromptExpansion When a user-typed command expands into a prompt, before it reaches Claude. Can block the expansionnever mined ·never mined
UserPromptSubmit When a prompt is submitted, before Claude processes it. Also fires on turns Claude Code starts on its ownnever mined ·never mined
WorktreeCreate When a worktree is being created via --worktree, isolation: "worktree", or for a background session. Replaces default git behaviornever mined ·never mined
WorktreeRemove When a worktree that a WorktreeCreate hook created is being removednever mined ·never mined
Nothing on this page matches that. Press Enter to search every hook event.