SpeakySpeak

Start some Claudes, walk away Hear replies as they arrive

(rainbows = replies waiting)

What the demo replies say

  1. Terminal 1, events-site: “Deploy finished, the events site is live and the newsletter went out to 212 readers.”
  2. Terminal 2, markemark: “I found the memory leak. It was the image cache holding every thumbnail forever. One line fix, tests are green, ready for your review.”
  3. Terminal 3, everething: “The refactor is done, all 34 tests pass and the branch is pushed. The tricky part was the session cache. My notes are in the commit body.”

Free (and fully local voice processing)
for Claude Code on macOS

Install

What it does

One voice at a time

Replies queue up instead of talking over each other.

AirPods stem controls

Click to pause, skip ahead, or step back.

It waits for you

Pause it, and new replies queue up quietly.

A tiny floating player

Drag it anywhere; the full queue lives in the menu bar.

Why a voice?

Because eyes are usually busy and ears usually aren't.

ADHD-friendly

Replies find you instead of waiting in a quiet window. No staring at a terminal, no forgotten tabs.

Blind and low-vision devs

Every reply read aloud in a natural voice, without steering a screen reader through terminal output.

Hands full

Feeding the baby, making dinner, pacing with a coffee – the work keeps talking while you live your life.

RSI and limited mobility

AirPods clicks and one global hotkey drive the whole thing. No mouse, no window-hunting.

A suggested way to work

None of this is required – one Claude Code session works fine on its own. It's my adapted version of how Boris Cherny, Claude Code's creator, works – tuned to my own workflows.

1

A window per project, each its own color

2

Start long runs, then walk away.

3

Replies aloud, one at a time, in order.

4

Two Macs? A different voice for each.

Those tab colors are an iTerm2 setting: Session › Edit Session › Tab Color

Full Feature List

The queue

  • One at a time – replies play serially, never over each other
  • Newest plays next – fresh replies jump ahead of stale backlog
  • Pause holds everything – new replies wait; a rainbow glow reminds you
  • Skip one reply – drop the track you don't want without stopping the pipeline
  • Survives restarts – the queue is restored on launch, silently
  • Clear played / clear all from the menu-bar panel
  • Reorder the queue – play now, remove, move up or down per row

Playback

  • Speed selector – voice rate, in the Settings window or the panel
  • Volume slider, with every render loudness‑normalized so replies match
  • Back 10 / forward 10, restart, previous reply, full transport
  • Mute that keeps queueing – chats build up quietly until you're back
  • Global quiet hotkey (⌃⌥⌘Space) – silence the room from any app, no permission prompts

The voice

  • Kokoro neural voice – a free neural voice that runs on your own Mac (Apple Silicon), ~54 to choose from
  • Warm renderer – replies become audio in under a second
  • Automatic fallback to the best installed macOS voice (Intel works too)
  • Voice preview in Settings; changing voice re‑renders what's still queued
  • Per-machine voices – tell your Macs apart by ear

AirPods & media keys

  • Stem clicks – click to pause, double for next, triple for back
  • Now Playing – Control Center scrubber while speaking, released when idle so your music keys come back
  • Two Macs, one pair – the two apps take turns instead of fighting over your AirPods

What it reads

  • The whole reply – every part of a long turn, not just the last paragraph
  • Tuned for the ear – emoji and markdown stripped, paths spoken as filenames, URLs as "link"
  • Never mid-turn noise – it waits for the settled reply, not tool-call chatter

The app

  • Floating mini player – auto-appears while speaking, drag it anywhere, Liquid Glass or classic frosted
  • Menu-bar icon with queue badge and a pulse while playing; the Sy logo or a speaker icon
  • Works wherever Claude Code runs – terminal, the desktop app, VS Code, Cursor
  • Native Settings window – it writes plain text files in your home folder, so edits from the shell stay in sync
  • Built-in updates – an ↑ on the menu-bar icon when a new one is out, one button in Settings to install it
  • Fully local – no accounts, no telemetry, MIT-licensed, works offline

Install

There's no download. The installer is your Claude: it builds the app from source on your Mac, checking every step – and it's more fun this way, because you watch it get made, and later the same Claude can customize anything (the voice, the speed, when it speaks). Just ask it.

Paste into Claude Code
Install SpeakySpeak on this Mac: clone https://github.com/radam5000/speakyspeak and follow INSTALL.md step by step, verifying each step.

It clones the repo, installs what's missing, builds the app and wires up the hook. Needs macOS 14 or newer, Claude Code, Homebrew, and the Xcode command-line tools.

INSTALL.md · github.com/radam5000/speakyspeak

Using Claude Code in the desktop app, VS Code or Cursor? Same install, same result. Want a particular voice, a slower speed, or two Macs sharing one pair of AirPods? Add that to the prompt – the instructions tell Claude how to adapt.

Also by Adam