Hook events
Every event Claude Code's function hooks name, and which entries in the directory list each one.
Note
Event names come from Anthropic's type declarations at commit a92ea1c (Claude Code 2.1.277), read on 2026-09-21. Which entries use an event is as each entry's listing names it, not checked against its code. Entries marked Community listing come from a third party and are not published by Anthropic. This page does not say what an event does: neither the catalog nor this list records that, so read the entry's page or the declarations before relying on an event.
Mods are early access. Hooks modules load only where function hooks are enabled, and the API they are written against may change between releases without notice.
Every hook event
Function hooks name 125 events: 38 engine, 54 calls on $ and 33 classic. A classic hook plugin lists a classic event by its plain name, such as PreToolUse; function hooks name the same event classic.PreToolUse. New to mods? Start with what a mod is.
Matches part of an event name, or the name of an entry that lists it.
125 events in 3 families. Open one, or filter to see matches right away.
Engine (38)
agent
agent.offerDeclared at line 3323 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultMod
agent.spawnDeclared at line 3332 (opens in a new tab) of Anthropic's type declarations.
- agents-mdMod
- sec-defaultMod
attribution
attribution.textDeclared at line 3497 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultMod
command
command.describeDeclared at line 3451 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultMod
command.runDeclared at line 3439 (opens in a new tab) of Anthropic's type declarations.
- diffMod
config
config.describeDeclared at line 3475 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
config.setDeclared at line 3463 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
engine
engine.createDeclared at line 3618 (opens in a new tab) of Anthropic's type declarations.
- telemetryMod
plugin
plugin.registerDeclared at line 3586 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
prompt
prompt.attachmentDeclared at line 3413 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
prompt.contextDeclared at line 3401 (opens in a new tab) of Anthropic's type declarations.
- agents-mdMod
- sec-defaultMod
prompt.editDeclared at line 3377 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
prompt.fillDeclared at line 3353 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
prompt.sectionDeclared at line 3389 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultMod
prompt.submitDeclared at line 3341 (opens in a new tab) of Anthropic's type declarations.
- diffMod
prompt.suggestDeclared at line 3365 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
session
session.attachDeclared at line 3545 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
session.compactDeclared at line 3533 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
session.detachDeclared at line 3550 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
session.endDeclared at line 3574 (opens in a new tab) of Anthropic's type declarations.
- telemetryMod
session.measureDeclared at line 3562 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
session.receiveDeclared at line 3521 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
session.startDeclared at line 3509 (opens in a new tab) of Anthropic's type declarations.
skill
skill.promptDeclared at line 3486 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultMod
tool
tool.callDeclared at line 3222 (opens in a new tab) of Anthropic's type declarations.
tool.checkDeclared at line 3234 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
tool.describeDeclared at line 3427 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultMod
turn
turn.completeDeclared at line 3609 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
turn.startDeclared at line 3591 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
turn.stepDeclared at line 3600 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
ui
ui.focusDeclared at line 3312 (opens in a new tab) of Anthropic's type declarations.
- diffMod
ui.inputDeclared at line 3270 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
ui.messageDeclared at line 3288 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
ui.pressDeclared at line 3261 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
ui.renderDeclared at line 3243 (opens in a new tab) of Anthropic's type declarations.
- diffMod
ui.resolveDeclared at line 3252 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
ui.scrollDeclared at line 3300 (opens in a new tab) of Anthropic's type declarations.
- diffMod
ui.selectDeclared at line 3279 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
Calls on $ (54)
agent
agent.listDeclared at line 5577 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
agent.registerDeclared at line 5582 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
audio
audio.playDeclared at line 5481 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
audio.speakDeclared at line 5489 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
clock
clock.afterDeclared at line 5711 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
clock.everyDeclared at line 5716 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
clock.nowDeclared at line 5701 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
clock.sleepDeclared at line 5706 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
command
command.listDeclared at line 5565 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
command.registerDeclared at line 5569 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
config
config.listDeclared at line 5573 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
env
env.getDeclared at line 5738 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
env.setDeclared at line 5745 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
fs
fs.ancestorsDeclared at line 5674 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
fs.existsDeclared at line 5660 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
fs.listDeclared at line 5654 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
fs.readDeclared at line 5640 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
fs.statDeclared at line 5667 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
fs.writeDeclared at line 5647 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
http
http.fetchDeclared at line 5720 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
mcp
mcp.callDeclared at line 5493 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
model
model.classifyDeclared at line 5468 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
model.completeDeclared at line 5464 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
model.forkDeclared at line 5476 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
process
process.runDeclared at line 5727 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
prompt
prompt.readDeclared at line 5553 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
session
session.cwdDeclared at line 5501 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
session.idDeclared at line 5517 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
session.messagesDeclared at line 5521 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
session.modelDeclared at line 5509 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
session.repoDeclared at line 5525 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
session.rootDeclared at line 5505 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
session.surfaceDeclared at line 5531 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
session.surfacesDeclared at line 5535 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
session.turnsDeclared at line 5513 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
session.usageDeclared at line 5543 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
settings
settings.readDeclared at line 5734 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultMod
store
store.deleteDeclared at line 5691 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
store.getDeclared at line 5678 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
store.keysDeclared at line 5697 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
store.setDeclared at line 5684 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
tool
tool.listDeclared at line 5557 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultMod
tool.registerDeclared at line 5561 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultMod
turn
turn.abortDeclared at line 5547 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
ui
ui.blitDeclared at line 5635 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
ui.closeDeclared at line 5626 (opens in a new tab) of Anthropic's type declarations.
- diffMod
ui.invalidateDeclared at line 5614 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
ui.logDeclared at line 5600 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
ui.noticeDeclared at line 5607 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
ui.openDeclared at line 5621 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
ui.panesDeclared at line 5630 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
ui.statusDeclared at line 5593 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
ui.toastDeclared at line 5586 (opens in a new tab) of Anthropic's type declarations.
No entry in this directory lists it.
Classic (33)
classic
classic.ConfigChangeDeclared at line 1590 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultModlists it as
classic.*
- sec-defaultModlists it as
classic.CwdChangedDeclared at line 3019 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultModlists it as
classic.*
- sec-defaultModlists it as
classic.DirectoryAddedDeclared at line 3025 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultModlists it as
classic.*
- sec-defaultModlists it as
classic.ElicitationDeclared at line 3152 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultModlists it as
classic.*
- sec-defaultModlists it as
classic.ElicitationResultDeclared at line 3165 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultModlists it as
classic.*
- sec-defaultModlists it as
classic.FileChangedDeclared at line 3914 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultModlists it as
classic.*
- sec-defaultModlists it as
classic.InstructionsLoadedDeclared at line 4604 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultModlists it as
classic.*
- sec-defaultModlists it as
classic.MessageDisplayDeclared at line 5005 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultModlists it as
classic.*
- sec-defaultModlists it as
classic.NotificationDeclared at line 5330 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultModlists it as
classic.*
- sec-defaultModlists it as
classic.PermissionDeniedDeclared at line 6008 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultModlists it as
classic.*
- sec-defaultModlists it as
classic.PermissionRequestDeclared at line 6036 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultModlists it as
classic.*
- sec-defaultModlists it as
classic.PostCompactDeclared at line 6240 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultModlists it as
classic.*
- sec-defaultModlists it as
classic.PostModelSwitchDeclared at line 6249 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultModlists it as
classic.*
- sec-defaultModlists it as
classic.PostToolBatchDeclared at line 6290 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultModlists it as
classic.*
- sec-defaultModlists it as
classic.PostToolUseDeclared at line 6316 (opens in a new tab) of Anthropic's type declarations.
- hookifyPluginlists it as
PostToolUse - security-guidancePluginlists it as
PostToolUse - sec-defaultModlists it as
classic.*
- hookifyPluginlists it as
classic.PostToolUseFailureDeclared at line 6302 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultModlists it as
classic.*
- sec-defaultModlists it as
classic.PreCompactDeclared at line 6329 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultModlists it as
classic.*
- sec-defaultModlists it as
classic.PreModelSwitchDeclared at line 6335 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultModlists it as
classic.*
- sec-defaultModlists it as
classic.PreToolUseDeclared at line 6420 (opens in a new tab) of Anthropic's type declarations.
- hookifyPluginlists it as
PreToolUse - sec-defaultModlists it as
classic.*
- hookifyPluginlists it as
classic.SessionEndDeclared at line 8703 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultModlists it as
classic.*
- sec-defaultModlists it as
classic.SessionStartDeclared at line 8985 (opens in a new tab) of Anthropic's type declarations.
- explanatory-output-style SessionStart hookHooklists it as
SessionStart - learning-output-style SessionStart hookHooklists it as
SessionStart - security-guidancePluginlists it as
SessionStart - sec-defaultModlists it as
classic.*
- explanatory-output-style SessionStart hookHooklists it as
classic.SetupDeclared at line 9117 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultModlists it as
classic.*
- sec-defaultModlists it as
classic.StopDeclared at line 9252 (opens in a new tab) of Anthropic's type declarations.
- hookifyPluginlists it as
Stop - ralph-loop Stop hookHooklists it as
Stop - security-guidancePluginlists it as
Stop - sec-defaultModlists it as
classic.*
- hookifyPluginlists it as
classic.StopFailureDeclared at line 9245 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultModlists it as
classic.*
- sec-defaultModlists it as
classic.SubagentStartDeclared at line 9371 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultModlists it as
classic.*
- sec-defaultModlists it as
classic.SubagentStopDeclared at line 9377 (opens in a new tab) of Anthropic's type declarations.
- security-guidancePluginlists it as
SubagentStop - sec-defaultModlists it as
classic.*
- security-guidancePluginlists it as
classic.TaskCompletedDeclared at line 9448 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultModlists it as
classic.*
- sec-defaultModlists it as
classic.TaskCreatedDeclared at line 9460 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultModlists it as
classic.*
- sec-defaultModlists it as
classic.TeammateIdleDeclared at line 9472 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultModlists it as
classic.*
- sec-defaultModlists it as
classic.UserPromptExpansionDeclared at line 11079 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultModlists it as
classic.*
- sec-defaultModlists it as
classic.UserPromptSubmitDeclared at line 11088 (opens in a new tab) of Anthropic's type declarations.
- hookifyPluginlists it as
UserPromptSubmit - security-guidancePluginlists it as
UserPromptSubmit - sec-defaultModlists it as
classic.*
- hookifyPluginlists it as
classic.WorktreeCreateDeclared at line 11110 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultModlists it as
classic.*
- sec-defaultModlists it as
classic.WorktreeRemoveDeclared at line 11115 (opens in a new tab) of Anthropic's type declarations.
- sec-defaultModlists it as
classic.*
- sec-defaultModlists it as
Other names entries list
These names select none of the events above. A name can belong to a noun that a plugin adds to $ itself, which is not in Anthropic's list, or be spelled differently from the declarations.
telemetry.*- telemetryMod