Get a sound when Claude — or any AI tool — finishes

Claude for Desktop posts a macOS notification when a response completes. macOS then plays the same system sound it plays for everything else, so a finished task sounds exactly like a group chat. Here's how to make done unmistakable, and different for each AI tool you run.

The workflow: start a long task, work elsewhere, hear it finish

You give Claude something that takes two or three minutes — a refactor across a few files, a long document to read, a research pass. Then you switch to the ticket you were already on. The whole point is not watching the window. But you also don't want to discover twenty minutes later that it stopped after forty seconds and asked you a clarifying question.

That's the gap a sound closes. It's also the setup people write to me about most often at the moment, and the rule is almost always the same shape: when Claude posts a banner, play one short chime that means nothing else on this Mac means.

Same story with Cursor, with a Copilot review coming back, with an agent run in a terminal. The tools differ. The need is one bit of information: it's your turn again.

What Claude for Desktop and macOS can do natively

Try these first. Between them they'll get you a notification, and for some people a notification is enough.

Claude for Desktop's own notification setting

Claude for Desktop can notify you when a response finishes while the window isn't focused, and the toggle for it lives in the app's own settings. As of the August 2026 build that's the extent of it: on or off. There's no sound menu, no per-project setting, and no separate treatment for a run that finished versus a run that stopped to ask you something.

Limit: the app decides whether to notify you. It doesn't decide what you hear.

The macOS per-app sound switch

  1. Open Apple menu → System Settings.
  2. Click Notifications.
  3. Under Application Notifications, choose Claude.
  4. Turn Play sound for notifications on or off.

This is the only audio control macOS gives you per app, and it's a switch. The sound it plays when it's on is the shared system notification sound, which is why a different notification sound for each app isn't something you can set up in System Settings at all.

Limit: binary. Claude can be audible or silent, and audible means the same sound as Slack, Mail, and Messages.

macOS System Settings → Notifications → Claude
System Settings → Notifications → Claude → toggle off Play sound for notifications.

Distinct done-sounds with Chirpy, one per tool

Chirpy is a native Mac menu bar app that plays a chosen sound when a matching notification banner appears. It reads the text already visible in Notification Center banners through the macOS Accessibility API, matches it against rules stored on your Mac, and plays the sound attached to the most specific match. It never touches an API belonging to Claude, OpenAI, or anyone else, because it only ever looks at the banner your own Mac already drew.

  1. Mute the generic notification sound for the AI app. Open System Settings → Notifications, choose the AI app, and turn off Play sound for notifications. Leave banners on. Without this you'll hear the system sound and your chosen sound together.
  2. Create a rule for the app and pick a short sound. In Chirpy, add a rule matching the app, then choose a sound. Something short and dry works best for completion — you want to recognise it from another window without turning your head.
  3. Narrow by keyword where the banner carries useful text. If the banner text includes the project, repo, or window title, add a keyword rule above the app rule. The most specific matching rule plays, so a keyword rule for one project overrides the general app sound.

Chirpy costs $19.99 once, with every future update included, and the full app is free for 3 days without a card. It needs macOS 13 or later and asks for Accessibility access, never Screen Recording. What the licence covers.

ChatGPT desktop

The desktop app posts banners and offers no sound of its own, so it takes the same treatment: mute it in System Settings, then give it a rule. Picking a sound that's audibly different from Claude's is the part that pays off — two AI windows open, two answers landing, and you know which one moved. ChatGPT notification guide.

Cursor and other editors

Cursor's agent runs are the longest-running thing in my day and the easiest to lose track of. If the run posts a macOS banner when it finishes, Chirpy can match it like any other app. If it doesn't, the terminal route below covers it, and so does anything else you can wrap in a script.

GitHub Copilot

Copilot's pings arrive when a review or an agent task comes back, and they inherit the system sound. A rule with a keyword on the repo name is worth more here than a plain app rule, because a review on the service you're on call for is not the same event as one on a side project. GitHub Copilot notification guide.

Perplexity

Long research answers are the case where you genuinely walk away, so this is the tool where the sound earns its place fastest. Same pattern, one rule. Perplexity notification guide · Google Gemini · Claude.

Claude Code and agent runs in a terminal

A terminal process can post a real Notification Center banner, which means it can be matched like an app. The common route is terminal-notifier, called from a stop hook, a wrapper script, or a ; terminal-notifier -message "claude done" tacked onto the end of a long command. The banner appears, Chirpy matches its text, and your chime plays. Put the project name in the message and you can route two repos to two sounds. Which local tools can react to a notification, and which can't, is covered in what Shortcuts can and can't do with notification sounds.

Native settings vs Chirpy

CapabilityNative (app + macOS)Chirpy
A distinct AI-done soundNo, it's the system soundYes, any of 72+ sounds or your own file
A different sound per AI appNoYes, one rule each
Keyword rules on the task or projectNoYes, when the banner text carries it
Works while your attention is in another windowBanner arrives; sound is genericYes, the sound alone tells you which tool

If you sit and watch the response stream, skip all of this. A sound for a window you're already looking at is noise, and the honest version of this setup is quieter than what you have now: silence for everything except the few events that mean it's your turn. The sound library is worth a listen with that in mind — short and dry beats loud for completion, every time.

AI apps change faster than macOS does, so this page gets re-checked more often than the rest of the site. If a setting has moved since the date on the byline, mail me at [email protected] and I'll fix it.

Frequently asked questions

It has a notification toggle, not a sound picker. When notifications are on, Claude for Desktop posts a banner to macOS Notification Center and macOS plays the system notification sound — the same one every other app gets. As of the August 2026 build there's no per-project or per-sound setting.

Yes, in two steps. Have your hook or wrapper script post a macOS banner with terminal-notifier when the run ends, then write a Chirpy rule matching that banner's text and pick the sound. The terminal itself never needs a sound setting.

Not from inside the app. Its notifications go to macOS, which plays the system sound. Chirpy reacts to the banner instead, so you can give ChatGPT its own sound without waiting for the app to ship one.

Yes. One rule per app — Claude, ChatGPT, Copilot, Perplexity — each with its own sound, so you know which window finished before you look. Volume is set per rule too, so a background agent can stay quieter than an on-call alert.