SpeakySpeak

How to use it

It reads your Claude Code replies aloud, one at a time. This is the five-minute tour: what each part does, and a good way to set it all up.

1 · The idea

Run as many Claude Code sessions as you like. Each finished reply is rendered to audio and dropped into one queue, and the queue plays one reply at a time. Two sessions can finish together and never talk over each other. That's the whole trick.

session 1 session 2 session 3 THE QUEUE ONE VOICE AT A TIME

2 · Install it

The install doc is written for your own Claude Code. Paste this into any session and it does the rest, including the neural voice:

Read https://github.com/radam5000/speakyspeak/blob/main/INSTALL.md and set it up for me

> read INSTALL.md and set it up for me the Sy mark appears in your menu bar

3 · The full deck

Click the menu-bar icon and the full deck drops down. The card on top is what's playing, with its own transport. Under it, Up next is the queue in true play order: the top row plays next. Replies you've heard drop to Played at the bottom.

what's playing, with its own controls sort · clear played · delete all · settings hover a reply for its actions a muted session, with the icon that unmutes it what you've already heard 3 of 3 = the last reply of this session's run bright dot = plays next cleared when its session ends
The real thing, grouped by session. Session headers carry the name, the reply count and the time span.

4 · The mini player

When a reply starts speaking, the mini player appears under the menu-bar icon, so one click controls what you're hearing without opening the full deck. Drag it anywhere and it stays there. The X hides it for the current reply only.

restart / previous play / pause skip this reply how far along the reply is ⌃⌥⌘Space skips too, from any app
The Classic look. Glassy and Glassier, in Settings ▸ Appearance, are translucent takes on the same player.

5 · Every row can act

Hover a queued reply and three buttons appear: play it right now, mute its whole session, or remove it. Muting is the one to know: that terminal goes quiet while every other session keeps talking. Nothing is deleted, and the muted rows keep their icon so you can always see what's silenced. Click it again to unmute and the backlog plays.

hover: play now · mute this session · remove muted: the icon stays, click it to unmute grey dot: queued, but not in line to play

Session headers get the same idea one level up: when the list is grouped, hovering a header offers Play this session next and Remove this session's queued replies.

6 · Hear each story in order

One session talking? The default flat list is right. Several at once? Open the sort menu (the ⇅ on the Up next line) and set Group by: Session and Order by: Oldest first. Each session then plays as one run, in the order it happened, instead of every session interleaved backwards. A new reply extends its own session's run rather than jumping the queue, and the player shows "2 of 6" so you know how much of a story is left.

The queue as a flat list, newest first: sessions interleaved
Flat, newest first: three stories, shuffled, told backwards.
The queue grouped by session, oldest first: each session is one run
Grouped, oldest first: each session start to finish, one at a time.

7 · Four ways to be quiet

From smallest to biggest, each with the real control that does it.

The skip button Skip This reply only. ⌃⌥⌘Space from any app, the ⏭ button, or two AirPods stem clicks.
The mute-session button on a row Mute a session On any row. That terminal goes quiet; every other session keeps talking.
The full deck's speaker button Mute the full deck The speaker at the top. Everything waits silently; nothing is lost.
Speech off The master switch in Settings. Replies are not rendered at all.
The Speak Claude's replies switch in Settings

8 · A suggested way to work

None of this is required. One session works fine on its own. This is the setup that made SpeakySpeak worth building.

  1. A window per project, each its own color.In iTerm2: Session › Edit Session › Tab Color. When you hear a reply, you already know which window to look at.
  2. Name your sessions./rename newsletter gives a session a name, and the full deck and mini player use it instead of the folder name.
  3. Make replies say the time.One rule in your CLAUDE.md makes every reply open with "three forty-two pm", so a backlog is legible by ear. The guide has the exact line to paste.
  4. Start long runs, then walk away.Settings ▸ Read replies ▸ "As it works, skipping short lines". You hear the steps that matter, not "Let me check that."
  5. Clear the list before you walk away.While you're at the computer reading everything, pause it. When you kick off runs and leave, hit the trash first: there's no harm once you've read it all, and every reply you hear after that is news.
  6. Group by session when several are running.Sort ▸ Group by Session, Order by Oldest first. Each session plays as one story, in order.
  7. Mute the sessions you don't need to hear.Hover a row, click the speaker. Unmute when you want the story back.

This tour is the short version. The full guide explains every setting, the CLAUDE.md timestamp rule, and the two-Mac setup; INSTALL.md is written for your Claude to run.