Claude Code text to speech
Claude Code doesn’t read replies aloud by itself. You can add it with a Stop hook, a system reader, an open-source tool, or an app like Pintail.
Its /voice command is dictation: you speak, it types your prompt. Speech out is the missing half. Here are the four ways I know to get it, with what each takes to set up, what it sounds like and where it breaks.
1. A Stop hook and the system voice
Claude Code runs hooks at fixed moments. The Stop hook fires when a reply is done and gets the path to the session transcript. Read the last reply from it and pipe it into say.
- Setup: about 20 lines of shell and some
jq. Ten minutes if you’ve written hooks before. - Sounds like: the macOS system voice. Clear, but robotic.
- Breaks when: the reply has markdown (it reads the stars and backticks), two tabs finish at once (they talk over each other), you run
/clearor/compact(it fires anyway), or a background job finishes.
This walkthrough on dev.to shows the hook step by step.
2. The Mac reads it for you
macOS has Spoken Content built in: select text, press a shortcut, it reads the selection.
- Setup: one checkbox in System Settings → Accessibility → Spoken Content.
- Sounds like: the system voice.
- Breaks when: the reply is long. It reads everything you select, and you have to go and select it.
3. An open-source tool
Aloud reads a short gist of each reply with a local voice and works with Codex too. flowcode is a native menu bar app that reads replies and takes dictation, all on your Mac. VoiceMode turns the session into a two-way voice conversation.
- Setup: from one app download to Homebrew, Python and a local model.
- Sounds like: a local neural voice, usually Kokoro. Much better than the system voice.
- Breaks when: you want a voice or language the local model doesn’t have, or the tool’s maintainer moves on. They’re free, and several are good.
4. An app built for it: Pintail
Pintail is what I built for myself. It hooks into Claude Code, writes a short spoken version of each reply at the length you pick, and speaks it in a natural cloud voice on your own OpenRouter account. A pill at the top of the screen shows which project is talking, with live captions.
- Setup: install the app, connect Claude Code, paste an OpenRouter key.
- Sounds like: a human-sounding cloud voice. First sound about half a second to a second and a half after the summary starts.
- Costs: €15 once (planned), plus the voice on OpenRouter, usually ½–2 ¢ a reply.
- Breaks when: you’re offline. The voice needs OpenRouter.
Which one should you use?
One tab and free: the Stop hook or Spoken Content. Fully local and free: Aloud or flowcode. Talking, not just listening: VoiceMode. Several tabs, short summaries, a voice you can listen to all day: Pintail. The full comparison has a table.