{"name":"UserPromptExpansion","slug":"userpromptexpansion","family":"hook","title":"Hook events","noun":"hook event","description":"When a user-typed command expands into a prompt, before it reaches Claude. Can block the expansion","description_source":"docs","described_by":{"doc":"claude-code\/hooks","title":"Hooks reference"},"presence":{"first_seen":null,"removed_in":null,"in_current_build":false,"newest_mined":"2.1.308","builds":0,"mined_builds":149,"first_cited":{"version":"2.1.116","released_at":"2026-04-20 19:24:52","spans":2}},"aliases":[],"entries":[{"version":"2.1.300","anchor":"fork-dispatched-slash-commands-userpromptsubmitexpansion-h","heading":"Blocked slash command prompts are echoed back less often","line":"When a hook blocks a slash command run in a fork, Claude Code shows the original prompt in fewer cases","released_at":"2026-10-14 14:27:26","reason":"found in this entry's text, named in this entry"},{"version":"2.1.295","anchor":"new-claude-code-restrict-personal-config-mode-limits-what-a","heading":"A new setting limits what your own skills, agents and hooks can do","line":"Setting CLAUDE_CODE_RESTRICT_PERSONAL_CONFIG stops your own skills, agents and hooks from widening permissions, and makes key hooks required","released_at":"2026-10-08 18:22:58","reason":"found in this entry's text"},{"version":"2.1.248","anchor":"command-and-skill-names-are-escaped-everywhere-they-are-echo","heading":"Command and skill names are escaped everywhere they are echoed back","line":"Command and skill names from plugins or MCP servers are escaped everywhere, always on.","released_at":"2026-08-27 20:35:36","reason":"found in this entry's text"},{"version":"2.1.248","anchor":"new-hook-events-and-compiled-in-plugin-admission-defaults","heading":"New hook events and compiled-in plugin admission defaults","line":"Three new hook event names appear, and unverified plugins are still allowed to load.","released_at":"2026-08-27 20:35:36","reason":"named in this entry, found in this entry's text"},{"version":"2.1.238","anchor":"prompt-expansion-hooks-can-hide-the-original-prompt-from-a-b","heading":"Prompt-expansion hooks can hide the original prompt from a block message","line":"Prompt-expansion hooks can keep your original prompt text out of the block message.","released_at":"2026-08-20 18:01:54","reason":"named in this entry, found in this entry's text"},{"version":"2.1.236","anchor":"some-hook-events-take-a-separate-dispatch-path","heading":"Some hook events take a separate dispatch path","line":"Six hook events now wait on a readiness step before running; the rest are unchanged.","released_at":"2026-08-19 18:45:14","reason":"found in this entry's text"},{"version":"2.1.116","anchor":"userpromptexpansion-hook-event","heading":"UserPromptExpansion Hook Event","line":null,"released_at":"2026-04-20 19:24:52","reason":"found in this entry's text"}],"entries_total":7,"docs":[{"source":"claude-code","path":"hooks","title":"Hooks reference","documented":true},{"source":"claude-code","path":"agent-sdk\/hooks","title":"Intercept and control agent behavior with hooks","documented":true},{"source":"claude-code","path":"agent-sdk\/typescript","title":"Agent SDK reference - TypeScript","documented":false},{"source":"claude-code","path":"hooks-guide","title":"Automate actions with hooks","documented":false}],"docs_total":4,"gates":[],"related":[],"url":"https:\/\/changelogs.core-directive.com\/reference\/hook\/userpromptexpansion","family_url":"https:\/\/changelogs.core-directive.com\/reference\/hook.json"}