Voice Dictation in Claude Code: /voice on Windows

This article is one chapter of my book Delphi in all its glory – AI-assisted development, the fifth book of the series.

Claude Code has a voice dictation feature that lets you speak your prompts instead of typing them. You hold down a key, talk into your microphone, and your speech appears in the input field while you talk. It’s push-to-talk, not always-listening.

To enable it, type /voice in Claude Code. You’ll see “Voice mode enabled (hold). Hold space to record. Dictation language: en (/config to change).” From that point on, holding Space starts recording, and releasing it stops the recording and finalizes the text. A quick tap still types a space; only holding it triggers recording. There’s a brief warmup (you’ll see “keep holding…”), then it starts recording.

There are a few requirements. Voice dictation needs a Claude.ai account — it won’t work if you’re using an API key. Your microphone must be enabled in system settings. And your terminal needs to send key-repeat events, which most terminals do by default. If you’re on Windows with WSL, make sure your Windows Terminal or whatever terminal emulator you use isn’t swallowing key-repeat events.

You can keep voice mode enabled permanently by adding “voice”: { “enabled”: true } to your c:\Users\<you>\.claude\settings.json file. This tells Claude Code to remember your preference across sessions.

In September 2026, the dictation suddenly became much better. This can happen overnight, without any update of Claude Code, because the recognition does not happen on your computer: Claude Code sends your voice to Anthropic’s servers.

The Claude Code documentation doesn’t say who does the recognition there. But some messages and settings that claude.exe sends carry the same names that Deepgram’s service uses. So Deepgram (a company that sells speech recognition) probably sits behind Anthropic’s servers, although neither Anthropic nor the program names it.

Rebinding the push-to-talk key

If you’d rather not use Space (maybe you find yourself accidentally triggering recordings mid-sentence), you can rebind push-to-talk to a different key combination. Create or edit c:\Users\<you>\.claude\keybindings.json:

{ "bindings": [ { "context": "Chat", "bindings": { "ctrl+a": "voice:pushToTalk" } } ] }

This binds Ctrl+A as the push-to-talk key instead of Space. You can pick whatever combination works for you. Other options include Ctrl+K, or modifier combinations like Alt+K (written as “meta+k” in the keybindings file — “meta” maps to Alt on Windows, Command on macOS).

A modifier-based binding also skips the warmup delay that bare Space requires, since there’s no ambiguity between “typing a space” and “starting to record.”

Troubleshooting

If holding Space produces many space characters: Voice mode is off. Run /voice to enable it.

If holding Space produces one or two spaces then nothing happens: Voice mode is on, but the hold detection isn’t triggering. This usually means your terminal isn’t sending key-repeat events fast enough. Try a different terminal emulator, or rebind push-to-talk to a modifier combination as described above.

If you see “native audio module not found”: This was a bug in the Windows version of Claude Code, fixed in version 2.1.70. Run claude update.

If voice mode says “no speech detected” repeatedly: Check that your microphone is actually working – try it in another application first. Also verify that Claude Code has microphone permission in your system settings. On macOS, this is under System Settings > Privacy & Security > Microphone. On Windows, check Settings > Privacy > Microphone.


This was one chapter of a whole book

You just read one chapter of Delphi in all its glory – AI-assisted development: more than 400 pages about Claude Code and AI for Delphi programmers. Written by a Delphi programmer, with the failures documented next to the wins.

Leave a Comment

Scroll to Top