Know when Claude is done

You send, you look away, and you come back too early or ten minutes too late. Two ways to be told instead: a sound from a hook, or your own music.

Claude Code in a terminal: a Stop hook

Claude Code runs a command of your choosing when something happens. The event for “finished answering” is Stop; the one for “waiting for you” — a permission to approve, or a question — is Notification. Put both in ~/.claude/settings.json, beside whatever is already there, and start a new session.

macOS

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          { "type": "command",
            "command": "afplay /System/Library/Sounds/Glass.aiff" }
        ]
      }
    ],
    "Notification": [
      {
        "hooks": [
          { "type": "command",
            "command": "afplay /System/Library/Sounds/Ping.aiff" }
        ]
      }
    ]
  }
}

Windows

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          { "type": "command",
            "command": "powershell -NoProfile -c \"(New-Object Media.SoundPlayer 'C:/Windows/Media/chimes.wav').PlaySync()\"" }
        ]
      }
    ]
  }
}

PlaySync and not Play: the hook’s PowerShell exits as soon as it has nothing left to do, and a sound played in the background goes with it.

Linux

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          { "type": "command",
            "command": "paplay /usr/share/sounds/freedesktop/stereo/complete.oga" }
        ]
      }
    ]
  }
}

What a hook does not do

Or let your music tell you

If music is playing while you work, it can be the signal. Viblyy turns it down when the answer is done and brings it back up the moment you send the next message. Nothing is added: no chime, no pop-up. You hear the room go quieter from across it, and when the music is up again, Claude is working.

It is a free Chrome extension, with no account and no setup. It reads no conversation; the privacy policy says exactly what it looks at.

Free in theChrome Web Store

The Claude desktop app, and Claude Code in a terminal

A browser extension cannot see a program outside the browser, so the Claude desktop app’s chat and Claude Code in a terminal need Viblyy for Windows. It follows Claude Code through the same hooks as above — set up for you — and the desktop app’s chat even while its window is minimised, and it turns down music playing in an app, like the Spotify app. It is not out yet; until it is, the hook above is the way for the terminal.