TIPS 88 · DETTATURA

Claude Code dictation: talk instead of typing, and the transcription doesn't eat your limits

Claude Code has built-in dictation: hold the space bar, talk, and the words show up in the prompt. How to turn it on, how to set your language, how to throw away a wrong sentence, and three sentences to dictate right away.

What it is and why it matters

You write to Claude Code ten times an hour, and every time you cut. The context in your head becomes one line, because typing all of it is slow. Then Claude does the wrong thing and you have to explain it again.

Dictation is already inside Claude Code. You turn it on with /voice, you talk, and the words show up in the prompt as you say them. You can mix: say one sentence, type a file name.

And Anthropic's documentation says it plainly: the transcription uses no messages or tokens and doesn't count toward the limits in /usage. The prompt you send uses tokens as always, as if you had typed it. It's for people who spend the day in Claude Code and want to give more context with less effort.

1. What you need, and where your voice goes

Before you try it, check these three things:

  • A Claude.ai account you're signed in with in Claude Code. With an Anthropic API key, Amazon Bedrock, Google Cloud's Agent Platform or Microsoft Foundry, dictation isn't available.
  • A microphone on the computer where Claude Code runs. It doesn't work in cloud sessions or over SSH.
  • On Windows inside WSL you need WSLg; without it, run Claude Code directly on Windows.

Know this first: the audio doesn't stay on your computer. It goes to Anthropic's servers, which transcribe it; it isn't processed locally. How they handle the data is explained in the Claude Code documentation.

2. Turn it on with /voice and choose how to talk

In the Claude Code chat, type:

The message
/voice

It runs a microphone check; on a Mac, the first time, the system asks for permission for your terminal: allow it. Then you read Voice mode enabled (hold) and, at the end, Dictation language: en. That en is English: if you dictate in another language, see step 3.

Two modes: hold or tap

  • Hold, the default: hold the space bar, talk, let go. After a brief warmup the footer shows listening… and it records. When you let go, the text goes into the prompt and waits for your Enter.
  • Tap: with an empty prompt you tap the space bar and it starts, tap again and it stops, no warmup. If the text is at least three words long it sends it on its own, so an accidental tap doesn't send a stray word. It also stops after 15 seconds of silence or 2 minutes in total.

To pick the mode or turn it off (the choice stays for later sessions too):

The message
/voice hold
The message
/voice tap
The message
/voice off

Or in ~/.claude/settings.json (if it already has other settings, add just the voice block, with the comma). This is hold that sends on its own when you release the key, if the text has at least three words. Without autoSubmit, which only applies in hold, it waits for your Enter. For tap, write "tap" instead of "hold".

The file
{
  "voice": {
    "enabled": true,
    "mode": "hold",
    "autoSubmit": true
  }
}

My advice: hold without automatic sending, until you trust the transcription.

3. Set your language, and know what changes

By default dictation understands English, so if you dictate in English you can skip this step. If you speak another language without changing anything, you get garbled text. The supported languages include Italian, German, Spanish, French and Portuguese. Set yours from /config, or in ~/.claude/settings.json:

The file
{
  "language": "italian"
}

The language code works too, such as "it" for Italian. If you write a language that isn't on the list, /voice warns you and falls back to English for dictation.

Watch out: it's the same setting that decides the language of the replies. From then on Claude answers you in that language, and the automatic session titles come out in it too.

4. Talk, type, throw away

The words appear while you talk, dimmed until the transcription is final. The text goes in where the cursor is: type half a sentence, hold the space bar and say the rest. Hold again to add another piece.

It's tuned for people who code: it recognizes words like regex, OAuth, JSON and localhost, and uses your project name and git branch name as hints on its own. My way: I say the reasoning, I type the exact file paths.

Said the wrong sentence? Esc

Press Esc or Ctrl+C while recording, or while the sentence is still processing: the microphone stops, the transcription is discarded and the prompt goes back to what it was before. In that press, Esc doesn't interrupt Claude and Ctrl+C doesn't take you out of Claude Code.

5. Change the key, if the space bar bothers you

In hold the space bar has the warmup, and where it does something else (in the transcript viewer, in vim outside INSERT) it doesn't dictate. A combination like Option+K on a Mac, Alt+K elsewhere, starts on the first press and works there too. You change it in ~/.claude/keybindings.json:

The file
{
  "bindings": [
    {
      "context": "Chat",
      "bindings": {
        "meta+k": "voice:pushToTalk",
        "space": null
      }
    }
  ]
}

meta is Option on a Mac and Alt elsewhere. The new key replaces the space bar, for hold and tap, and Claude Code picks up the file without a restart. In hold, don't use a bare letter like v: during the warmup it ends up in the prompt.

6. Three sentences to dictate right away

When you talk you give more context than you'd type. Open Claude Code in your project, turn on dictation and say one of these, with your own details in place of the parts in [ ].

Sentence 1 · before touching the code
Before you change anything, read the project and explain how [the subscription payment] works: which file it starts from, where it goes and where it could break. Then ask me three questions about whatever isn't clear to you.
Sentence 2 · a bug told like to a colleague
There's a bug: when [a new user signs up and goes back from the welcome screen], [the app stays blank]. I expected [to land on the home screen]. Find the cause, explain it in two sentences and suggest the smallest fix. Don't touch the code until I say ok.
Sentence 3 · closing the session
We're done for today. Sum up what we changed in this session, what's still open and what you'd do first tomorrow, and write it in [NOTES.md] in five lines at most.

Common mistakes

  • Dictating in another language without setting it: the text comes out garbled, because dictation defaults to English.
  • Unknown command: /voice. You're not signed in with a Claude.ai account, or something takes precedence over it: ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN, an apiKeyHelper or another provider. Remove it, restart Claude Code and run /login.
  • Microphone access is denied on a Mac: System Settings → Privacy & Security → Microphone, turn on your terminal and run /voice again. If it isn't on the list: tccutil reset Microphone com.apple.Terminal (iTerm2: com.googlecode.iterm2), then quit the terminal with Cmd+Q and reopen it. Never without the identifier: it revokes the microphone from every app.
  • Trying it over SSH or in a cloud session: the microphone has to be on the computer where Claude Code runs.
  • Holding the space bar and seeing only spaces. If they pile up, dictation is off: /voice hold. If one or two appear and that's it, key repeat is turned off: /voice tap.

Checklist

  • I'm signed in to Claude Code with a Claude.ai account, not an API key
  • /voice answers Voice mode enabled and the terminal has microphone permission
  • I've picked hold or tap, and I know whether the prompt sends on its own
  • I've set my language, and I know Claude now answers me in it
  • I've thrown away a sentence with Esc and the prompt went back to how it was
  • I've dictated one of the three sentences in my project

Frequently asked questions

Does dictation eat into my limits?

The transcription doesn't: it uses no messages or tokens and doesn't count toward the limits in /usage. The prompt you send does, as if you had typed it.

Does it work in VS Code too?

Yes, in the Claude Code extension for VS Code, with the same Claude.ai account. Not in remote sessions (SSH, Dev Containers, Codespaces): the microphone is on your computer, the extension runs somewhere else.

How long can I talk in one go?

The documentation gives a limit only for tap and for the VS Code extension: recording stops after 15 seconds of silence or 2 minutes in total. For hold it gives none.

← All guides