████████╗███████╗██████╗ ███╗   ███╗██╗███╗   ██╗ █████╗ ██╗
╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗  ██║██╔══██╗██║
   ██║   █████╗  ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║
   ██║   ██╔══╝  ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║
   ██║   ███████╗██║  ██║██║ ╚═╝ ██║██║██║ ╚████║██║  ██║███████╗
   ╚═╝   ╚══════╝╚═╝  ╚═╝╚═╝     ╚═╝╚═╝╚═╝  ╚═══╝╚═╝  ╚═╝╚══════╝
████████╗ █████╗ ██╗     ██╗  ██╗
╚══██╔══╝██╔══██╗██║     ██║ ██╔╝
   ██║   ███████║██║     █████╔╝ 
   ██║   ██╔══██║██║     ██╔═██╗ 
   ██║   ██║  ██║███████╗██║  ██╗
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝
Animated pixel mascot cycling through all 24 solid and split session palette arrangements; speech bubble crossfades through automatic Claude and Codex workflow phrases

Your coding agents speak back, in order, through one toolbar.

Claude Code, Codex CLI, Claude Desktop Code, and Codex Desktop become a colour-coded audio workstream you can follow without reading every terminal.

Replies, tool progress, transcripts, focus, and session identity are built in. Optional highlight-to-speak is there when you want any selected text read aloud. Free by default. Offline wake-word detection. MIT licensed.

Install on Windows Install on macOS View on GitHub
Latest release MIT License macOS · Windows Tests
What you get

A session-aware audio layer for terminal and desktop coding agents

Voice input tools remove typing. Terminal Talk removes the other drag: watching every assistant window just to know what happened next.

Voice input Your speech becomes text in any app

Dictation keeps your hands moving by getting prompts, notes, and replies onto the screen faster.

Terminal Talk Agent text becomes a tracked spoken workflow

Claude and Codex responses, tool narration, and session updates come back as colour-coded mascot clips with focus, transcripts, and queue control.

🔊

Streaming auto-speak

Claude Code streams through hooks and transcript watching. Codex CLI uses native hooks plus rollout logs. Replies and tool progress become spoken clips in the queue; heartbeat pings stay ambient, colour the scrubber while speaking, and never add tab or transcript noise.

👂

"Hey jarvis" read-anything

Highlight text in any app — browser, PDF, VS Code, Slack — say the wake word or press Ctrl+Shift+S, hear it read. Runs offline on CPU.

🎨

24-palette session identity

Each session gets a solid or split colour identity, editable label, optional voice, focus priority, mute state, heartbeat override, and speech-includes policy. The same registry drives the toolbar, terminals, and desktop sync metadata.

🖥️

Desktop app identity sync

Claude Desktop Code and Codex Desktop sessions can be matched to Terminal Talk's registry so their persistent chats keep a visible TT label/colour in the local title surface, with sync controls in Settings.

📡

Collapsed waveform signal

The toolbar shrinks to a short click-through waveform. When audio plays, the line animation and pulsing border use the speaking session's solid, top/bottom, or left/right palette, so it stays readable even when collapsed.

🧭

Tabbed control panel

Playback, Sessions, Create, OpenAI, Shortcuts, and About are separate pages. Launch new assistant sessions, mark used colours, manage desktop sync, and tune per-session speech without one long settings scrollbar.

🔒

Free + private by default

Uses Microsoft Edge's neural voices with no API key. Wake-word detection runs offline on CPU. Optional OpenAI TTS fallback is explicit, encrypted, and off unless you choose it.

Talk, don't type

Built-in voice dictation — included in the download

Terminal Talk speaks your agents' replies back to you. It works the other way too: a local dictation tool ships in the package, so you can talk instead of type into any app — your terminal, browser, editor, or chat. No monthly subscription, no separate tool to install.

🎙️

Hold to talk

Hold Ctrl+Alt+Space, speak, release — your words are transcribed and pasted straight into whatever app is focused. The push-to-talk flow that replaces a paid dictation subscription.

🗣️

Hands-free toggle

Press Ctrl+Shift+Space to start, talk as long as you like, then press again to stop and paste. Built for longer prompts and notes where you don't want to hold a key.

🔒

Local and private

On Windows, transcription runs offline with local Whisper — nothing leaves your machine. Optional cleanup turns spoken commands like "new paragraph" and "full stop" into real formatting.

Local Whisper dictation runs on Windows today. On macOS the same Ctrl+Shift+D shortcut opens native Apple Dictation, so you can talk into any app there too.

Current UI

A control layer for every coding assistant you run

Terminal Talk keeps replies, tool progress, focus, transcripts, and per-session identity in one compact toolbar. The live toolbar to the left is the same renderer used by the app, driven by a safe demo queue.

See it in action

Terminal Talk in motion

This hero cut is the current motion reference. The interactive toolbar above is the live product UI for detailed feature exploration.

Command-center hero advert

A polished mascot-led overview of Terminal Talk as a hands-free command center for Claude Code and Codex.

Open directly

Why Terminal Talk

There are voice tools for coding. This is the one for parallel agent sessions.

Most voice-AI tools in this space solve dictation or wrap a single chat in a microphone. Terminal Talk does something narrower: it gives every parallel Claude Code or Codex session its own voice, colour, and queue position so you can run four agents at once and follow them by ear.

vs

Aider voice

Aider speaks code at you while you dictate code back. Voice-to-code, single agent. Terminal Talk doesn't replace Aider's voice mode — they live at different layers. Use Aider's voice for dictation; use Terminal Talk to listen to all your other agents.

vs

Voice Mode

Voice Mode is a voice wrapper around a single Claude or Cursor session. Single-agent conversation. Terminal Talk is multi-agent monitoring — colour-coded narration of every Claude Code, Codex CLI, and Desktop session running side by side, plus per-session focus and mute.

vs

ElevenLabs MCP

ElevenLabs MCP routes premium TTS into Claude Code. Voice quality plus an MCP plug-in. Terminal Talk includes an MCP server too, but adds session identity, colour, focus/mute, transcripts, hooks, and free Edge voices by default — ElevenLabs is the voice; Terminal Talk is the orchestration around it.

vs

Cursor dictation

Cursor dictation is voice input into Cursor. Useful, but it's input, not output, and only inside Cursor. Terminal Talk is output across Claude Code, Codex CLI, Claude Desktop Code, and Codex Desktop — and it works with Cursor's plain-text terminals too if you run Claude/Codex CLI inside them.

If you only ever run one assistant in one window, the voice tools above probably suit you. If you have four terminals open and want each to sound different, Terminal Talk is the one tool in this list that's actually built for that.

Install

Choose Windows or macOS

  1. Install Python 3.10+ and Node.js 18+ if you don't already have them.
  2. Copy the command for your platform, paste it into PowerShell or Terminal, then press Enter. Browsers cannot safely open a shell and run commands automatically.
  3. Open Claude Code, Codex CLI, Claude Desktop Code, or Codex Desktop. Assistant replies feed the same Terminal Talk queue where supported. Say "hey jarvis" over highlighted text to read it from any app.

Windows PowerShell

PS> git clone https://github.com/benfrancisburns-creator/terminal-talk
PS> cd terminal-talk
PS> .\install.ps1

Windows 10/11. Installer adds shortcuts, dependencies, the wake-word model, and supported Claude/Codex hooks.

macOS Terminal

$ brew install node python@3.12 portaudio
$ git clone https://github.com/benfrancisburns-creator/terminal-talk
$ cd terminal-talk
$ bash ./install.sh

macOS uses the source installer. First launch may request Accessibility and Microphone permissions.

Windows · macOS · Python 3.10+ · Node 18+ · Microphone
Linux port still in progress. Uninstall on Windows with .\uninstall.ps1.
Privacy

What leaves your machine

One outbound call at runtime, only when you trigger it. No telemetry, no analytics, no background traffic.

What goes out — only when you ask

  • TTS text → Microsoft, to Edge's neural voice endpoint — the same one Edge browser's "Read Aloud" uses. Sent on every reply you hear and every "hey jarvis" highlight. Free, no API key, governed by Microsoft's consumer service terms.

What never happens

  • No audio is uploaded; wake-word runs offline on your CPU
  • No usage telemetry or analytics of any kind
  • No background network calls when idle
  • No account, no sign-up, no email required

One-off on install: install.ps1 downloads the ~30 MB wake-word model from HuggingFace, then runs offline forever after. Optional paid swap: configure the OpenAI TTS fallback if you want API terms with no-training guarantees instead of Microsoft's consumer ones.

FAQ

Likely questions

Is it really free, with no sign-up?

Yes. It uses Microsoft Edge's built-in neural voice endpoint (the same one Edge browser uses for "Read Aloud" — no API key required) and openWakeWord for offline wake-word detection. An OpenAI TTS fallback is optional if you'd rather pay for premium voices.

What about macOS and Linux?

macOS is supported. The synthetic-keystroke helper uses Quartz CGEventCreateKeyboardEvent, the foreground PID comes from NSWorkspace.frontmostApplication, voice commands use Apple's Speech framework, the process tree is walked with psutil, and the mic auto-pause path uses CoreAudio where supported. First launch prompts for Accessibility (synthetic Cmd+C), Microphone (wake-word listener), and Speech Recognition (voice commands); those grants are one-time. Linux is next; POSIX install scaffolding and shared Python hooks (install.sh, app/posix_hooks.py) are already in the repo. PRs welcome.

Can I change the wake word from "hey jarvis"?

Yes — the wake model is a drop-in swap from the openWakeWord project. Documented in the README. You can also disable the wake word entirely and just use Ctrl+Shift+S.

Which coding agents does it support?

Claude Code and OpenAI Codex CLI are built in. Claude uses hooks for streaming, smart tool-call narration and permission alerts. Codex uses native hooks plus local ~/.codex/sessions rollout logs for commentary/final messages, shell and patch progress clips, and heartbeat working-state detection. Claude Desktop Code and Codex Desktop can also be matched into the same Terminal Talk registry where their local session metadata is exposed. The "hey jarvis / highlight and speak" path works with any app.

How do I uninstall?

Run .\uninstall.ps1. It reverses every change, restores your Claude Code settings from the backup created at install time, and removes Startup, Start Menu and Desktop shortcuts.

How do I reopen it after closing or killing it?

The toolbar X just hides the window; Ctrl+Shift+A, the tray icon, or Start Menu › Terminal Talk brings it back. If you fully quit or kill it in Task Manager, use the Desktop or Start Menu shortcut.

What are the little mascots in the strip?

Each clip shows as a miniature of the Terminal Talk mascot in its session's colour — a solid or split palette marker, the same character (and recolouring) as the playback scrubber. Unheard clips are bright; once they auto-play they fade back so new arrivals stand out; a clip you play yourself turns white with a session-colour ring. Claude Code can show a matching statusline glyph; Codex CLI can show a matching Terminal Talk terminal title; desktop sessions can sync local chat titles where the desktop app exposes enough metadata. You can also give each session its own voice, focus priority, mute state, heartbeat override, and speech rules.