"Stop": [ { "hooks": [ { "type": "command", "command": "afplay ~/.claude/hooks/chime.wav", "async": true },
Ideally you are only notified when the main agent stops, the main agent has a question, or a subagent has a question.
I created a script that figures out if any of those states apply before emitting a macOS notification and then called it in each hook:
"Stop": [ { "hooks": [ { "type": "command", "command": "script.sh", "timeout": 10 } ] } ], "PreToolUse": ... "PermissionRequest": ... "Elicitation": ...
Ideally you are only notified when the main agent stops, the main agent has a question, or a subagent has a question.
I created a script that figures out if any of those states apply before emitting a macOS notification and then called it in each hook: