← All posts

How to make Claude Code talk (2026 guide)

The fastest way to make Claude Code talk is free: use a terminal bell if you only need a nudge, an afplay Stop hook for a reliable Mac sound, or macOS's built-in say command for a fixed spoken message. You only need a narration app if you want to hear what the agent actually accomplished.

1. Turn on Claude Code's terminal bell

Inside Claude Code, run /config and set Preferred notification channel to Terminal Bell. Claude Code will send the terminal bell character when it posts a notification. This costs nothing and takes seconds.

If you see a visual flash but hear nothing, enable the audible bell in your terminal's own settings. Terminal bell support varies by Terminal, iTerm2, Ghostty, Kitty, and remote shells, so use the Stop hook below when you want something more predictable.

2. Play a sound with an afplay Stop hook

Claude Code's Stop hook runs after an agent turn finishes. On macOS, afplay can play a system sound without installing anything. Open ~/.claude/settings.json, creating it if needed. For a new or empty settings file, paste this:

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

Restart Claude Code, then finish a short turn to test it. To pick another built-in sound, replace Glass.aiff with another file in /System/Library/Sounds. If your settings.json already contains settings or hooks, merge this Stop group into the existing hooks object instead of replacing the file.

This is usually the best free answer: it is local, fast, and says exactly one thing — the agent stopped. It cannot tell you whether the task passed, what files changed, or whether Claude needs a decision.

3. Use macOS say for a spoken alert

The say command turns text into speech with a built-in Mac voice. Test it in Terminal with: say 'Claude Code is done'. To use it after every turn, replace the afplay command in the hook above with say 'Claude Code is done'.

You can change the sentence and choose installed voices with say's voice option. It is still a fixed alert, though: the hook speaks the same sentence after a tiny edit and after a forty-minute refactor.

4. Use agent narration when the result matters

If a bell or fixed phrase is enough, stop there — the free methods are simpler. Wispr Back is for the other case: it automatically narrates the agent's actual output, turning a finished turn into a concise spoken debrief in a premium voice.

Its Claude Code integration uses the same Stop-hook idea, but passes the turn to Wispr Back so it can explain what happened rather than merely announce that something happened. The Codex integration does the same for completed Codex turns, so one Mac app can narrate both agents.

That is useful when you start a long task and step away, or when you want to keep working without reading another screen of markdown. It does require Wispr Back to be running and cloud narration needs a network connection. For a silent office, a remote server, or a simple done signal, afplay or the terminal bell remains the better tool.

Which method should you choose?

Choose Terminal Bell for the quickest notification. Choose afplay when you want a dependable custom sound on a Mac. Choose say when a fixed spoken sentence is enough. Choose Wispr Back when you want Claude Code or Codex to tell you what the completed turn actually did.

Wispr Back reads your AI to you, so you can stop scrolling and start listening.

Download for Mac