Read Claude Code Aloud — Hear Your AI Agent's Plans

Select any text in your Terminal.app where Claude Code is running — a multi-step plan, a diff summary, a tool-call explanation, a post-edit report. A floating ▶ appears next to your selection. One click — natural voice plays with a highlight that tracks each word on the real terminal window.

macOS native · Free · No login · 40+ languages · Native terminal AX, no OCR

claude-code — Terminal — 80×24

~/project $ claude

I've reviewed the three files you asked about. The retry helper in src/net/retry.ts is the canonical one the other two in src/api/client.ts and src/jobs/worker.ts are older copies. I'll refactor both to import from retry.ts and update the tests to match. Running the type checker to confirm nothing else breaks.

Highlight follows each spoken word directly inside your Terminal.app window.

Reading selection…1.0×

One App Covers Every AI Coding Tool on Mac

Same gesture, same word-level highlight — across every IDE and CLI developers actually use.

VS Code

Microsoft's editor

Cursor

AI-native IDE

Xcode

Apple's IDE

Windsurf

Codeium AI IDE

Claude Code

Anthropic CLI

Gemini CLI

Google AI CLI

Codex

OpenAI coding CLI

Copilot CLI

GitHub gh copilot

Aider

AI pair programmer

Three Steps — Clean AX Path

Terminal.app is a native AppKit app. CastReader reads Claude Code's output through the Accessibility API — no Screen Recording, no OCR.

1

Install

Download CastReader for Mac (.dmg). Grant Accessibility permission once. Terminal.app doesn't need Screen Recording — unlike Electron IDEs.

2

Select

Drag-select any text in Terminal.app while Claude Code is running — a plan, a diff summary, a tool-call explanation, an error message.

3

Click ▶

A play button appears next to your selection. One click — audio starts and the highlight glides across your actual terminal output.

When Claude Code Users Add Read-Aloud

Claude Code produces massive amounts of prose per session — plans, rationales, post-edit summaries, error explanations. Listening offloads to your ears so your eyes stay on the code.

Hear Claude's plans before confirming

Before a multi-file edit, Claude lays out a plan. Listening at 1.5× catches 'wrong assumption' or 'wrong file' mistakes you'd otherwise approve by reflex.

Listen to post-edit summaries

After each tool call, Claude summarizes what it did. Select the summary, press ▶, listen while you `git diff` in another pane.

Audio-scan long chat responses

Complex debugging Q&A often runs 10+ paragraphs. Listen instead of scrolling — stretch your back while the voice goes.

Review error explanations

When a test fails and Claude explains why, audio helps you absorb the root cause while your eyes scan the stack trace.

Study Claude's code style choices

When Claude justifies a design decision, listening on replay embeds the pattern better than reading it once.

Accessibility for all-day agent sessions

An 8-hour Claude Code session produces novels of prose. Eyes-on-code + ears-on-prose is the only sustainable pattern.

Why CastReader Fits Claude Code Better Than `say`

macOS ships the `say` command, but it reads a pasted string with no highlight and no word-level sync. CastReader reads your actual selection, in place, with highlight on the real terminal.

Word-level highlight in Terminal.app

A transparent overlay tracks each spoken word on the real terminal surface. No clone panel, no side window.

40+ natural voices, auto-detect

Chinese prompts, English Claude replies, Japanese docs — CastReader picks a native voice per selection. Kokoro-quality audio, not `say`.

Adjustable rate + click-to-jump

1.5× for long post-edit summaries, 0.8× for tricky explanations. Click any paragraph to jump playback — `say` can't do that.

Zero cost, zero signup

No account. No daily word limit. Your Anthropic bill stays the same — CastReader adds the voice, free.

Common Questions

How do I read Claude Code output aloud on a Mac?

Install CastReader for Mac (.dmg), grant Accessibility permission, run Claude Code in Terminal.app, then select any text — a plan, a summary, an error — and click the floating ▶. Word-level highlight appears on your real terminal.

Does Terminal.app need Screen Recording permission?

No. Terminal.app is a native AppKit app that exposes its text through macOS Accessibility APIs. CastReader reads it directly through AX — Accessibility permission alone is enough.

Does this work in iTerm2 / WezTerm / Warp?

Terminal.app has the cleanest AX path. iTerm2 works through AX but with some quirks. WezTerm uses a custom renderer without AX and is unsupported. Warp uses its own text system — partial support via the Electron OCR path.

Will it read ANSI color codes or box drawing?

CastReader reads the literal characters you select, but filters out ANSI escape sequences before synthesis. Box-drawing characters read as 'line' — most users select the prose sections, not the ASCII art.

Can I read Chinese Claude prompts aloud?

Yes. CastReader auto-detects CJK text and switches to native Mandarin, Japanese, or Korean voices. Claude's mixed-language replies switch voice at sentence boundaries.

Does it interfere with Claude Code's keyboard input?

No. CastReader only triggers on selection + click ▶. Your terminal input, Ctrl-C, and Claude Code's prompt handling are untouched.

What about tmux / screen sessions?

tmux and screen render text inside Terminal.app, so selection + read-aloud works. Copy mode in tmux can complicate the selection rectangle — press `q` to exit copy mode before selecting.

Is it really free?

Yes. 100% free — no account, no credit card, no premium voice gate, no daily word limit. Download the .dmg and use it forever.

Ready to Hear Claude Code Speak?

Install once. Run Claude Code in Terminal. Select any output. Click ▶. Listen.