Guides

Claude Code voice mode: how to dictate to Claude Code in 2026

By Finnian Brown

9 min read

Yes, Claude Code has a built-in voice mode. Run /voice in the CLI, hold Space, speak, and release: your words land in the prompt, tuned for coding terms. It needs a Claude.ai login and a local microphone. To dictate the same way in Cursor, your terminal, GitHub, and Slack, add a system-wide dictation app like Aqua.

Here's how to set up Claude Code voice mode, how to fix it when it won't start, where it stops, and how to dictate to Claude Code when the built-in isn't available.

How to turn on Claude Code voice mode

Claude Code's voice dictation is the zero-setup path. Per the Claude Code voice dictation docs:

  1. Update Claude Code to the latest version and sign in with a Claude.ai account (/login).
  2. Run /voice in the CLI. Claude Code runs a microphone check; on macOS the first run triggers the system microphone permission prompt for your terminal.
  3. Hold Space, talk, release. Your speech streams into the prompt dimmed, then commits at your cursor when you let go. Press Enter to send.

That's hold mode, the default. /voice also takes a mode argument:

Command

What it does

/voice

Toggle voice on or off, keeping the current mode

/voice hold

Push-to-talk: record while Space is held

/voice tap

Tap Space to start, tap again to stop and send

/voice off

Turn voice dictation off

Voice stays enabled across sessions. You can also set it in your settings file with a voice object ("enabled": true, "mode": "tap").

Hold mode vs tap mode

Hold mode detects a held Space through your terminal's key-repeat, so there's a brief warmup (the footer shows keep holding…, then listening…). A single tap still types a space. By default the transcript waits for Enter; set "autoSubmit": true in the voice settings to send on release when the transcript is at least three words.

Tap mode has no warmup. Tap Space on an empty prompt to start (the footer shows ● REC · tap to send), speak, tap again, and Claude Code inserts and submits anything three words or longer. Recording also stops on its own after 15 seconds of silence or two minutes total.

Press Esc or Ctrl+C to cancel a recording; the prompt goes back to what it held before you started.

What it's tuned for

Transcription is tuned for code: terms like regex, OAuth, JSON, and localhost come out right, and your project name and git branch are added as recognition hints automatically. It works in the CLI, in Claude Code's VS Code extension, and in agent view, where you can dictate to a background session. Transcription doesn't consume Claude messages or tokens.

Change the dictation language

Voice dictation follows Claude Code's language setting (set it in /config) and defaults to English. Anthropic lists 20 supported dictation languages, including English, Spanish, French, German, Japanese, Korean, Hindi, and Portuguese. If your language isn't on the list, /voice warns you and falls back to English.

Rebind the dictation key

The key is the voice:pushToTalk action in ~/.claude/keybindings.json. Binding a modifier combination like meta+k skips the hold-mode warmup entirely. Avoid a bare letter key in hold mode, since it types into the prompt during warmup.

Claude Code voice mode not working? Common fixes

Most failures come down to one of these, per Anthropic's troubleshooting list:

  • "Voice mode requires a Claude.ai account." You're signed in with an Anthropic API key or a third-party provider. Voice dictation isn't available with an API key directly, Amazon Bedrock, Google Cloud's Agent Platform, or Microsoft Foundry. Run /login with a Claude.ai account, or use a system-wide dictation app (below).
  • "Voice mode is disabled by your organization's policy." An admin has turned it off. Ask your administrator.
  • "Microphone access is denied." Enable your terminal under System Settings, then Privacy & Security, then Microphone on macOS (or microphone access for desktop apps on Windows), then run /voice again. If your terminal isn't listed on macOS, reset its permission with tccutil reset Microphone plus your terminal's bundle ID, quit the terminal fully, and run /voice again.
  • Holding Space just types spaces. Voice is probably off (run /voice hold), or your OS has key-repeat disabled, which hold detection relies on. Switch to /voice tap.
  • It won't record in a remote session. Voice needs a local microphone, so it doesn't work in cloud sessions, SSH sessions, or VS Code Remote (SSH, Dev Containers, Codespaces).
  • Garbled text or the wrong language. Set your dictation language in /config first.

Where the built-in stops

None of this makes the built-in bad. It's genuinely good for dictating a prompt straight into the agent you're already in. It's scoped, and three boundaries matter once you live in voice:

  • It only works inside Claude Code. The CLI, the VS Code extension, and agent view: that's the perimeter. Switch to Cursor's composer, a plain terminal tab, a GitHub PR description, Gmail, Slack, or another agent like Codex, and that microphone is gone.
  • It depends on how you sign in. API-key, Bedrock, Agent Platform, and Foundry setups don't get it, and an org policy can switch it off. Plenty of professional setups run exactly those paths.
  • 20 dictation languages. Great if you speak one of them; a real limit if you don't. (Aqua supports 49 languages.)

For a single-tool session, the built-in is all you need. For an agent-era workflow that crosses apps all day, you want one voice everywhere.

How to dictate to Claude Code from any app

This is the gap Aqua fills. Aqua is system-wide push-to-talk dictation: hold the Fn key, talk into whatever has your cursor, release, and the text lands there: in Claude Code, Cursor, the terminal, a PR, Gmail, Notion, or Slack. One key, every app. Text appears in roughly 450ms after you release, and it works the same no matter how Claude Code is authenticated, because Aqua sits at the OS layer, not inside the agent. Aqua is also HIPAA compliant; if you work with protected health information, talk to our team about your setup.

What you get on top of "it works everywhere":

  • A model trained on how engineers talk. Aqua runs on Avalon, its own speech-to-text model trained on human-computer-interaction speech (prompts, code, email) rather than audiobooks. On the OpenASR leaderboard it ranked #1 among proprietary models at its October 2025 debut (and is #6 overall), an independently checkable placement. When 9to5Mac put it head-to-head with macOS dictation, Apple's made 17 errors to Aqua's 1. (On AISpeak-10, a challenging subset of Aqua's own self-reported coding-jargon benchmark, Avalon scores 97.4% vs 65.1% for Whisper Large v3.)
  • A custom dictionary for your repo. Add the invented words every codebase has (service names, internal acronyms, that one library only your team uses), up to 800 entries on Pro, so they come out right every time. The built-in's automatic project/branch hints are nice; a dictionary you control is the next level.
  • Deep Context. Aqua reads what's on your active screen to disambiguate a variable, a CLI flag, or a teammate's handle, and adjusts tone to the destination (terse in a commit, complete sentences in Slack).
  • ~49 languages and Mac, Windows, iOS, and Android, at $8/mo billed annually.

The honest summary: use built-in /voice for quick prompts inside Claude Code, and add Aqua when you want the same accuracy and the same muscle memory across your whole stack. For the wider workflow across Cursor, Claude Code, and other agents, see our voice coding guide; for OpenAI's agent, see voice dictation for Codex CLI.

How to set up Aqua for Claude Code

  1. Install Aqua on macOS or Windows from aquavoice.com and grant microphone + accessibility permissions.
  2. Open your terminal (or the VS Code integrated terminal) where Claude Code runs. Aqua works in any text field, including the CLI prompt, with no Claude.ai login and no provider restrictions.
  3. Hold Fn, dictate your prompt, release. Your transcript inserts at the cursor in Claude Code's input. Press Enter to send.
  4. Load your stack into the Custom Dictionary: framework names, services, CLI tools, the libraries you say twenty times a day. See the setup guide.
  5. Optional: set Custom Instructions like "keep code identifiers in camelCase" so spoken names format the way you write them.

Building voice into your own agent instead? Avalon is available as an OpenAI-compatible API.

Tips for dictating prompts to a coding agent

  • Be verbose. A fast input means you can give the agent the full picture: the file, the constraint, the edge case, the thing you already tried. More signal, better output, and now it costs seconds instead of minutes.
  • Name the casing when it matters. "camelCase user ID" produces userId; "snake_case max retries" produces max_retries.
  • Dictate file paths and flags naturally. Avalon's training includes them, and Deep Context can often see the path you mean on screen.
  • Mix typing and talking. Type the half that's faster to type; hold a key and speak the half that's faster to say. Both Aqua and Claude Code's /voice insert at your cursor, so you can type around the transcript.

We've typed for 150 years. In an era where you spend the day describing software to an agent that writes it, the keyboard is the bottleneck, and your voice is the fix. Try Aqua free (1,000 words free, then $8/mo billed annually on Mac, Windows, iOS, and Android).


FAQ

Does Claude Code have a voice mode? Yes. Run /voice in Claude Code to dictate prompts with push-to-talk: hold Space to record, release to insert. /voice tap switches to tap to start, tap to send. It's tuned for coding vocabulary, adds your project and git-branch names as recognition hints, and works in the CLI, the VS Code extension, and agent view.

Why does Claude Code say "Voice mode requires a Claude.ai account"? Voice dictation streams audio to Anthropic's transcription service, which is only available when you sign in with a Claude.ai account. It isn't available with an Anthropic API key directly, Amazon Bedrock, Google Cloud's Agent Platform, or Microsoft Foundry. Run /login, or use a system-wide dictation app like Aqua, which doesn't depend on how Claude Code is authenticated.

Do I still need a separate dictation app if Claude Code has /voice? Only if your workflow leaves Claude Code. Built-in voice works inside Claude Code. If your day also spans Cursor, the terminal, GitHub, Gmail, and Slack, or you run Claude Code through a provider where built-in voice isn't available, a system-wide tool like Aqua gives you one push-to-talk with the same accuracy everywhere.

Is voice dictation accurate enough for coding? It is when the model is built for it. Aqua's Avalon model is trained on code and prompt speech and was the #1 proprietary model on the public OpenASR leaderboard at its October 2025 debut, and a custom dictionary handles your repo's specific terms. Claude Code's built-in voice is also coding-tuned and uses your project and branch as hints.

What languages does Claude Code voice dictation support? Anthropic lists 20, chosen through Claude Code's language setting, with English as the default. Aqua supports 49 languages.


Last updated: October 2, 2026. Built-in /voice behavior per Claude Code's official voice dictation documentation (verified October 2026). Benchmarks: OpenASR placement is independently verified; AISpeak is Aqua's own coding-jargon benchmark. Aqua does not make claims about competitors' underlying models.