logoalt Hacker News

momentmakertoday at 4:58 PM1 replyview on HN

You can use edit your settings.json in ~/.claude and put a hook for it like this:

    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "afplay ~/.claude/hooks/chime.wav",
            "async": true
          },

Replies

hombre_fataltoday at 5:31 PM

That hook is also called when subagents stop which means you'll get a lot of false positives.

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": ...