The short answer
Use a hook or a plugin; Claude Code’s own voice feature is input only.
Claude Code’s voice dictation (/voice) transcribes your speech into the prompt. It does not read anything back. To hear Claude Code, add one of four things: a Stop hook that pipes Claude’s last message into macOS say; a read-aloud plugin such as claude-code-narrator or claude-code-tts; VoiceMode, for a two-way spoken conversation; or Heard, which speaks short summaries across several sessions.
The difference that matters is what gets read. Hooks and read-aloud plugins speak Claude’s own words, which is accurate but long. Heard decides what is worth saying and compresses it to a sentence or two.
All options
Five ways to hear Claude Code.
From each project’s README. Stars and dates move; Checked October 6, 2026.
| Option | What you hear | Voice engine | Platforms | Price and license |
|---|---|---|---|---|
| say hookStop hook + jq | Claude’s final message, word for word | macOS say | macOS (Linux: spd-say) | Free |
| claude-code-narratorplugin | Tool steps, text between them, the start of the final reply | Kokoro, local | macOS, Linux | Free, MIT |
| claude-code-ttsOmnicapable | Every reply, skipping code blocks and tables | Kokoro ONNX, local | macOS 12+, Windows | Free, MIT |
| VoiceModeMCP + plugin | A spoken conversation you can answer | Local Whisper.cpp and Kokoro, or OpenAI | macOS, Linux, Windows | Free, MIT |
| Heardvoice layer | A sentence or two: what changed and what needs you | Kokoro local, your own keys, or managed voices | macOS 14+ | Free engine; app from $15/mo |
The two-minute version: pipe the last message into say.
The Stop hook receives JSON on stdin that includes last_assistant_message. Extract it with jq and hand it to say. "async": true keeps Claude Code from waiting on the speech, and head -c stops a long reply from talking for minutes.
It costs nothing and needs no install beyond jq. The catch is that it reads Markdown, file paths and code exactly as written, which is hard to follow by ear.
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "jq -r '.last_assistant_message // empty' | head -c 600 | say",
"async": true
}
]
}
]
}
}
claude-code-narrator and claude-code-tts read locally with Kokoro.
claude-code-narrator is a Claude Code plugin. It speaks short descriptions of tool use (“Reading file settings dot json”), the text between tool calls, the first thousand or so characters of the final reply, and notification text. It goes quiet when you type or click, uses the local Kokoro engine with eight voices, and runs on macOS and Linux.
claude-code-tts by Omnicapable speaks every reply from a Stop hook with local Kokoro ONNX (about a 336 MB model), skipping code blocks, tables, URLs and emoji. It supports macOS 12+ and Windows. A separate npm package of the same name defaults to Edge TTS, which is Microsoft’s online service, with Kokoro as the offline fallback.
/plugin marketplace add shreyas-s-rao/claude-code-narrator
/plugin install narrator
/reload-plugins
/narrator:on
VoiceMode, if you want to talk with Claude, not just listen.
VoiceMode is the most established option here, with about 1,400 GitHub stars and an MIT license. It is an MCP server and Claude Code plugin for back-and-forth voice conversations: Claude speaks, you answer out loud. It can run fully local with Whisper.cpp and Kokoro, or use OpenAI’s cloud. It works on macOS, Linux and Windows.
Pick VoiceMode when the goal is a spoken conversation with one session, or when you are not on a Mac. It is built for talking with an agent, not for keeping track of several agents at once.
claude plugin marketplace add mbailey/voicemode
claude plugin install voicemode@voicemode
/voicemode:install
Heard summarizes instead of reading, across every session.
Heard installs Claude Code hooks and decides what deserves speech: questions, approvals, failures and results get through, while routine tool churn gets a one-liner or stays quiet. With several sessions running, each update starts with the project name. Three listening modes set how much you hear, from short signposts to alerts only.
The open-source engine is free under Apache 2.0, with local Kokoro voices and no account. The Mac app adds managed voices and, on Power, voice replies and Parrot recaps. Heard is macOS only.
“Api: tests pass. I fixed the date parser and have one question about the migration.”
“Here is a summary of the changes I made. First, in src slash utils slash date dot ts, I updated the parse function to…”
git clone https://github.com/heardlabs/heard.git && cd heard
python3 -m venv .venv && source .venv/bin/activate && pip install -e .
heard install claude-code
Match the tool to what you want to hear.
All of these are honest choices. They answer different needs.
- Every word of the final reply, free: the
sayhook. - A local narrator for one session on macOS or Linux: claude-code-narrator.
- Replies read aloud on Windows: claude-code-tts.
- A spoken back-and-forth conversation, on any OS: VoiceMode.
- Short spoken summaries across several Claude Code and Codex sessions on a Mac: Heard.
Questions
Frequently asked questions
Does Claude Code have text-to-speech built in?
No spoken output is built in. /voice is dictation: it transcribes your speech into the prompt, and the audio is processed on Anthropic’s servers. Spoken output comes from hooks, plugins, MCP servers or a voice layer.
How do I make Claude Code read its responses out loud?
Add a Stop hook in ~/.claude/settings.json that runs jq -r .last_assistant_message | say, or install a plugin such as claude-code-narrator. Both read Claude’s words; Heard speaks a short summary instead.
Is there a free, local text-to-speech option for Claude Code?
Yes. claude-code-narrator and Omnicapable’s claude-code-tts both use the local Kokoro engine, VoiceMode can run with local Whisper.cpp and Kokoro, and Heard’s open-source engine uses Kokoro when you add no keys.
Can I talk back to Claude Code by voice?
Yes: /voice dictates prompts, VoiceMode runs a spoken conversation, and Heard Power lets you hold right ⌘ to answer the session that just spoke.
Ready when your agents are
Hear the work without watching every screen.
Start with the full Heard Power experience for 14 days. No card required. The open source engine remains free.
Download Heard for Mac macOS 14 or later · Claude Code and Codex supported