```json { "hooks": { "Stop": [ { "hooks": [ { "type": "command", "command": "say -a 87 \"Клауд коуд завершил задачу. Пожалуйста, обратите внимание\"" } ] } ], "Notification": [ { "matcher": "permission_prompt", "hooks": [ { "type": "command", "command": "say -a 87 \"Клауд коуд просит подтверждение. Пожалуйста, обратите внимание\"" } ] }, { "matcher": "idle_prompt", "hooks": [ { "type": "command", "command": "say -a 87 \"Клауд коуд задал вопрос и ждет от вас ответа уже 60 секунд\"" } ] } ] } } ``` ## `Stop` Срабатывает **каждый раз, когда Claude “заканчивает ход” (turn) и останавливается**, то есть **после того, как он дописал очередной ответ и вернул управление тебе**. Это не “задача полностью выполнена”, а именно “ответ/шаг завершён”. ([DEV Community](https://dev.to/holasoymalva/the-ultimate-claude-code-guide-every-hidden-trick-hack-and-power-feature-you-need-to-know-2l45?utm_source=chatgpt.com "The Ultimate Claude Code Guide: Every Hidden Trick ...")) ## `permission_prompt` Срабатывает, когда Claude Code **показывает тебе запрос на разрешение** (например: “нужно разрешение на Bash / чтение / запись / и т.п.”). Это именно уведомление о том, что нужно твоё подтверждение. ([Claude Code](https://code.claude.com/docs/en/hooks "Hooks reference - Claude Code Docs")) ## `idle_prompt` Срабатывает, когда Claude **ждёт твоего ввода**, _но только после того, как терминал “простаивает”_ (idle) **60+ секунд** в этом состоянии ожидания. То есть это не “мгновенно задал вопрос”, а “ждёт ответа уже какое-то время”. ([Claude Code](https://code.claude.com/docs/en/hooks "Hooks reference - Claude Code Docs"))