UserPromptSubmit
A Claude Code hook event, read out of the shipped bundle. No mined inventory carries it: everything below comes from what this site has written about it.
When a prompt is submitted, before Claude processes it. Also fires on turns Claude Code starts on its own
Anthropic's own wording. Read off Hooks reference, captured 2026-10-22.
In the changelogs
23Releases whose published page names UserPromptSubmit.
-
v2.1.300
Blocked slash command prompts are echoed back less often
When a hook blocks a slash command run in a fork, Claude Code shows the original prompt in fewer cases
found in this entry's text, named in this entry
-
v2.1.300
Fewer mods count as prompt hooks when Claude Code checks for them
The check for mods that hook prompt submission now applies an extra test, so some mods that counted before no longer do
found in this entry's text, named in this entry
-
v2.1.299
SDK messages can say why a prompt hook stopped a prompt
SDK system messages gain a
prompt_submit_outcomefield saying how a prompt submit hook ended a promptfound in this entry's text, named in this entry
-
v2.1.299
Prompts stopped by hooks now come with a reason
When a
UserPromptSubmithook orprompt.submithandler stops a prompt, Claude Code now records which kind of stop it wasfound in this entry's text, named in this entry
-
v2.1.299
UserPromptSubmit hooks get more detail about the prompt
Information prepared for
UserPromptSubmithooks now includes the command and whether the prompt is an internal onefound in this entry's text, named in this entry
-
v2.1.299
Prompts rewritten by a hook can now be refused with a "no place to put the change" message
Prompt hooks now see slash command names and arguments, and some rewrites stop the prompt with a "Prompt not sent" message
found in this entry's text, named in this entry
-
v2.1.296
Interrupting during prompt-submit hooks keeps what you typed
If you interrupt while UserPromptSubmit hooks are running, the turn is now marked as interrupted and earlier messages are kept
found in this entry's text
-
v2.1.296
Prompt-submit hooks that block after an interrupt now end as an interruption
If a prompt-submit hook blocks your prompt after the session was interrupted, Claude Code now treats it as an interruption instead of a normal block
found in this entry's text
-
v2.1.296
Handling for turns interrupted while prompt hooks are running
Claude Code can now handle a turn that is interrupted while prompt-submit hooks are still checking your prompt
found in this entry's text
-
v2.1.296
Interrupting a UserPromptSubmit hook now counts as cancelling it
Interrupting Claude Code while a UserPromptSubmit hook runs now cancels the hook cleanly, and the debug log says which kind of cancel it was
found in this entry's text
-
v2.1.295
A new setting limits what your own skills, agents and hooks can do
Setting CLAUDE_CODE_RESTRICT_PERSONAL_CONFIG stops your own skills, agents and hooks from widening permissions, and makes key hooks required
found in this entry's text
-
v2.1.295
New option to block a session when your personal settings file is broken
With
CLAUDE_CODE_RESTRICT_PERSONAL_CONFIGset, errors in your user settings file block every prompt and tool call until they are fixedfound in this entry's text
-
v2.1.284
Headless runs now also wait for MCP servers named in allow rules and hooks
Before a -p run's first turn, Claude Code now also counts MCP servers named in allow rules and mcp_tool hooks as ones to wait for
found in this entry's text
-
v2.1.281
IDE selection is captured with prompts queued mid-turn and handed back if a hook drops the prompt
A prompt queued mid-turn now keeps the IDE selection made when it was queued, and gets it back if a hook drops the prompt
found in this entry's text
-
v2.1.277
Local/prompt slash-command dispatch: cosmetic-only rename, no behavior change found
Slash-command dispatch code was renamed internally with no behavior change found
found in this entry's text
-
v2.1.248
Hook schema failures now print the exact field, a template, and which tool failed
A bad hook response now shows the exact failing field, the output and a template.
found in this entry's text
-
v2.1.248
New hook events and compiled-in plugin admission defaults
Three new hook event names appear, and unverified plugins are still allowed to load.
found in this entry's text
-
v2.1.247
UserPromptSubmit hooks now run over the prompt text that actually wins
Prompt-submit hooks now run over the final prompt text, and cancellations report as cancelled not failed.
named in this entry, found in this entry's text
-
v2.1.239
Two SDK fields drop their internal-only caveats
Two SDK fields dropped their internal-only caveats and now describe normal behaviour.
found in this entry's text
-
v2.1.236
Some hook events take a separate dispatch path
Six hook events now wait on a readiness step before running; the rest are unchanged.
found in this entry's text
-
v2.1.163
SubagentStop Hook Event
found in this entry's text
-
v2.1.116
UserPromptExpansion Hook Event
found in this entry's text
-
v2.1.101
Hook Event Validation
found in this entry's text
First cited
3The earliest release whose published evidence quoted UserPromptSubmit was v2.1.247, 26 Aug 2026. That is the oldest release this project wrote about it, so it is a floor on the name's age and not the release that introduced it. It is not a presence reading: which builds carried the name is the table below.
Presence across releases
0The miner has never read a build containing this name. It is here because a changelog entry of ours names it, which is evidence that it existed and not evidence of which releases carried it. The inventory starts at v2.1.138 and everything older than that was never mined.
Read out of the published npm bundle release by release, and out of Anthropic's own documentation as this site captured it. Nothing on this page is a description anybody here wrote about what the hook event does. All hook events.