Claude Code voice dictation: turn it on, modes, languages and fixes
You can speak your prompts to Claude Code instead of typing them. Your speech is turned into text live inside the prompt, so you can mix talking and typing in the same message. Here is how to turn it on, which mode to pick and what to check when it does not record.
Before you start: the requirements
- Your audio leaves your computer. Dictation streams the recording to Anthropic's servers for transcription; nothing is transcribed locally. If that is a problem for what you are saying, don't use it, and read the data usage page in the documentation.
- You need a Claude.ai sign-in. As we read the docs, it is not available when Claude Code uses an API key directly or runs through Amazon Bedrock, Google Cloud's Agent Platform or Microsoft Foundry.
- You need a microphone on the same machine. It does not work in cloud sessions or over SSH. In WSL it needs WSL2 with WSLg. The VS Code extension also supports it, but not in VS Code remote sessions (SSH, Dev Containers, Codespaces), because the microphone is on your machine and the extension runs elsewhere.
- Transcription does not use Claude messages or tokens and does not count toward the limits shown in
/usage.
Turn it on
Run /voice. Claude Code does a microphone check, and on a Mac your terminal may ask for microphone permission. You can add a mode: /voice hold, /voice tap, or /voice off. The choice is remembered across sessions. You can also set it in your user settings with a voice block (enabled and mode). The transcription is tuned for coding words such as regex, OAuth, JSON and localhost, and it picks up your project and branch names as hints.
Hold or tap?
- Hold mode (the default) is push-to-talk: hold Space while you speak and release to stop. There is a short warmup because Claude Code detects a held key by watching for key repeat. The text appears dimmed in the prompt, then settles. After you release, it waits for Enter unless you set
autoSubmitto true, which sends it if the transcript is at least three words. - Tap mode (
/voice tap): tap Space on an empty prompt to start, tap again to stop and send. There is no warmup. Transcripts shorter than three words are inserted but not sent, so a stray tap doesn't submit a random word. Recording also stops after 15 seconds of silence or two minutes in total. - To skip the hold warmup, use tap mode or rebind the key to a modifier combination (below).
Cancel and fix a recording
Press Esc or Ctrl+C to cancel a dictation: it stops the microphone, throws the transcript away and restores your prompt as it was. Neither key does anything else in that press, so Esc won't interrupt Claude's answer and Ctrl+C won't clear the prompt.
Language
Dictation follows the same language setting as Claude's replies, set in /config or in settings (by name, such as "spanish", or by language code). If it is empty, dictation defaults to English, so if your text comes out garbled, set the language first. The documentation lists the supported languages, which include Spanish, French, German, Portuguese, Italian, Dutch, Japanese and Korean; check that list for yours, because an unsupported language falls back to English for dictation (Claude's written replies are not affected).
Rebind the key
The key is the voice:pushToTalk action in the Chat context, and it replaces Space when you bind another. A modifier combination such as meta+k starts recording on the first keypress with no warmup. In hold mode, avoid a bare letter, because the letter types into the prompt during warmup. Some keys, such as Caps Lock, never reach terminal programs and can't be bound. More in customizing keyboard shortcuts.
When it doesn't work
- "Unknown command: /voice": you aren't signed in with a Claude.ai account, or an API key or third-party provider takes precedence. Run
/loginand remove the other credential. - "Microphone access is denied": allow your terminal in the system's microphone privacy settings, then run
/voiceagain. If a Mac terminal doesn't appear in that list, the documentation has a reset procedure; use the exact command it gives, and avoid resetting microphone permission for every app. - Linux: if the built-in recorder can't load, Claude Code falls back to
arecordorrec, and prints an install command when neither exists. On WSL, SoX needs its PulseAudio backend; the documentation gives the package names. - Nothing happens when you hold Space: if spaces pile up, dictation is off, so run
/voice hold. If only one or two spaces appear, your terminal isn't sending key repeat; switch to tap mode. - "No audio detected" or "No speech detected": check the right input device is the system default and not muted, speak closer, and make sure the dictation language matches yours.
- Connection or certificate errors: check your network. Behind a proxy that inspects TLS, the documentation points to the VS Code page for the fix. A rejected connection often means a stale sign-in, so try
/login.
All the guides are in the guides index, and the everyday keys are in keyboard shortcuts worth learning. This follows Anthropic's voice dictation documentation as we read it in October 2026, shortened on purpose. We are not affiliated with Anthropic. We wrote this from the documentation and have not tested every setup or microphone. Settings, supported languages and messages change, and where this page and the documentation disagree, the documentation wins.
The free loop-stop skill gives long tasks a limit and a stop rule. If you want a second pair of eyes on your CLAUDE.md and settings, the Tune-Up Kit is a checklist for exactly that.