talktoclaude

Say it. It's typed. Nothing leaves the room.

Press the button on your earbuds, say something, stop talking. It gets typed into whatever window has focus, and Enter is pressed. Built to talk to Claude Code from the couch. No cloud, no account, no subscription, no waiting.

Download for Windows Source on GitHub

Windows 11, x64 and arm64. Per-user installer, no admin; a portable zip is on the same page.

whisper.cpp, on the CPU no cloud, no account C++, one exe, no runtime MIT licensed
0 B
of your voice uploaded. Ever.
0.4 s
from silence to typed text, on a desktop CPU
1
button. The one already on your earbuds.
0
accounts, subscriptions, dashboards, onboarding flows

Watch it happen Press the button. Meet Sticky. Sticky has earbuds and opinions.

…couch mode… >
Pixel Buds paired · base.en loaded · button owned by talktoclaude.exe
talktoclaude log
talktoclaude ready. Press Play/Pause to talk; recording ends itself after ~1.5s of silence.
focused window: Claude Code
>

The conversation is made up; the timings are the desktop measurements. One line is real: "then commit and close" came out as "the milk and clothes" in an actual session, and that mishear is replayed as it happened.

How it works Four steps. Three of them are you.

1. PressThe play/pause button on any Bluetooth earbuds, or a keyboard media key. Windows routes it through the media-session API, and talktoclaude holds that session like it holds a grudge.
2. SpeakThe mic opens on the press. Say what you want typed. Full sentences, punctuation included, courtesy of the model.
3. Stop talkingAbout 1.5 seconds of silence ends the utterance. No second press, because some Bluetooth stacks deliver none while the mic is open, and because you shouldn't have to.
4. Typedwhisper.cpp transcribes on your CPU, the text lands in the focused window, Enter submits it. If focus moved while you spoke, nothing is typed anywhere.

Why this is slightly absurd and why it works anyway

"Finally, an app that respects my one button."
The Pixel Buds. Not a real review. They can't type. That's the whole point.

Get it running Under a minute, plus one model download.

  1. Run the installer. It goes into your user profile and onto your PATH, no admin prompt. Or unzip the portable build anywhere.
  2. Type talktoclaude in any terminal, or open it from the Start menu. It lives in the notification area: grey when ready, red while listening, amber while transcribing. The first run fetches the speech model (142 MB) into your local app data.
  3. Pair your earbuds. If Windows offers "Use LE Audio when available", turn it off: the buds have to sit in classic Bluetooth for the button to arrive.
  4. Focus the window you want to talk into, press the button, speak.

Click the icon to quit or open the logs. Ctrl+Alt+V takes the media button back if another app grabbed it. talktoclaude path\to\other-model.bin tries a different whisper model. Windows will warn about an unknown publisher the first time: "More info", then "Run anyway". A Store listing is on the way.

Numbers Measured, not marketed. Well, measured then marketed.

MachineModelTranscription time
Ryzen 9 9950X3D, 32 threadsbase.en0.2 to 0.5 s per utterance, about 5x faster than you spoke
Ryzen 9 9950X3D, 32 threadssmall.en1.2 to 1.5 s per utterance
i7-8550U laptop, 8 threadsbase.enabout as long as you spoke

CPU only. Short utterances through an earbud mic are where base.en misses words; that is the trade for sub-second latency.

Things to know

Under the hood

About 1,900 lines of C++ in eight files, with whisper.cpp linked in. WASAPI captures the mic and downmixes to 16 kHz mono. A hidden window registers a System Media Transport Controls session so the earbud press is delivered to it. Silence either side of the speech is trimmed before decoding, and the encoder context is shrunk to fit the audio, which is most of the speed. The design notes, including what did not work and why, are in CLAUDE.md.