You start a large refactor, walk away to do other work, and get a desktop notification the moment Claude finishes or needs input. That's what a Notification hook gives you.
On Linux with notify-send:
{
"hooks": {
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "notify-send \"Claude Code\" \"$CLAUDE_NOTIFICATION_MESSAGE\""
}
]
}
]
}
}
On macOS, replace the command with osascript -e "display notification \"$CLAUDE_NOTIFICATION_MESSAGE\" with title \"Claude Code\"".
$CLAUDE_NOTIFICATION_MESSAGE contains the text Claude sends when it finishes a task or gets stuck waiting for you. I stop watching the terminal and start getting pinged only when it matters.