Claude Code Voice Typing: Where /voice Stops Working

Developer using voice dictation with Claude Code AI assistant in terminal

Claude Code has a native voice command. Run /voice, hold space, speak, and your words stream into the prompt. It is genuinely good, it costs nothing on top of your plan, and if it works on your machine you should use it.

This page is about the cases where it does not, because there are more of them than the feature's reputation suggests, and because the developers most likely to hit them are the ones running agents on Linux boxes, in containers, and over SSH.

What /voice actually does

Straight from the Claude Code voice dictation docs, so you can check every line of this:

  • Enable with /voice. Hold mode is push-to-talk on Space; /voice tap toggles recording with a single press and submits when you tap again.
  • The transcript appears in the prompt as you speak and is inserted at the cursor, so you can mix typing and dictation in one message.
  • Transcription is tuned for coding vocabulary. Your project name and current git branch are added as recognition hints automatically.
  • It does not consume tokens and does not count toward the limits in /usage.
  • Audio recording uses a native module on macOS, Linux and Windows, falling back to arecord or SoX on Linux.
  • The push-to-talk key is rebindable in ~/.claude/keybindings.json.

That is a well-built feature. Two limits are worth knowing even when it works: recording stops after 15 seconds of silence or two minutes total, and dictation supports 20 languages. If you think out loud in long pauses, or you work in a language outside that list, you will feel both.

The six places /voice is not available

These are requirements, not bugs. The docs state each one.

Situation What happens
Authenticated with an API key, Amazon Bedrock, Google Cloud's Agent Platform, or Microsoft Foundry Not available. /voice requires a Claude.ai account, because that is what the speech-to-text service is attached to
Your organisation has HIPAA compliance enabled Voice mode is disabled by your organization's policy
SSH sessions, or Claude Code on the web Not available. It needs a local microphone
VS Code Remote: SSH, Dev Containers, Codespaces Not available in the VS Code extension, "because the microphone is on your local machine and the extension runs on the remote host"
WSL1, or WSL2 without WSLg Not available. Anthropic's guidance is to run Claude Code in native Windows instead
Headless hosts and containers Voice mode requires a microphone, but SoX could not open an audio capture device

The first row is the quiet one. A large share of professional Claude Code use runs through Bedrock or a direct API key, because that is how the company's billing and data agreements are set up. Those developers cannot turn /voice on at all, and no amount of configuration changes it.

The middle rows are the structural ones, and they are the reason this page exists. Voice built into an agent can only hear you if the agent is running where your microphone is. The moment the process moves to a server, a container, or a remote workspace, a built-in voice mode has nothing to listen to. That is not a Claude Code failing, it is geometry, and it applies equally to every agent that adds voice.

It is not local transcription either

Worth stating plainly, because people assume otherwise: "Voice dictation streams your recorded audio to Anthropic's servers for transcription. Audio is not processed locally."

That is normal for high-accuracy dictation, and Vibe Typer sends audio to a cloud model too. We are not going to pretend that is a differentiator. If local-only transcription is a hard requirement for you, neither tool qualifies and you want a self-hosted Whisper setup. If it is not, see how Vibe Typer handles local history and privacy and the privacy policy and decide from the actual terms.

And it only works inside Claude Code

The other half of the gap has nothing to do with microphones.

/voice fills the Claude Code prompt. Your day is not only the Claude Code prompt. In a normal hour you also write a commit message, a pull request description, a reply on a review thread, a Linear ticket, a Slack answer, a note in your editor, and a search in your browser. Every one of those is typed.

A dictation layer at the operating system does not care which application is focused. Same key, same behaviour, in Claude Code and in the seven other places.

What to use instead, and when

Vibe Typer runs on your own machine and types into whatever has focus. It ships as a single portable AppImage for modern 64-bit distributions plus Windows and macOS builds, and it runs on both Wayland and X11. The free plan is 2,000 words and 20 AI operations a month, no card. Pro is $10/month, or $8/month billed annually.

Use /voice when Claude Code runs locally, you sign in with a Claude.ai account, and you are only dictating prompts. Use a system-wide layer when any of these is true:

  • Claude Code runs on a remote host, in a dev container, in Codespaces, or over SSH.
  • You authenticate through Bedrock, Vertex, Foundry, or a raw API key.
  • You dictate in a language outside the 20 that /voice supports. Vibe Typer covers 99 languages with automatic detection.
  • You want the same key to work outside Claude Code.
  • Your prompts run past two minutes of speech.

They also coexist. Nothing stops you leaving /voice enabled for quick prompts and using a global hotkey everywhere else.

Setting it up for terminal work

  1. Download from the downloads page. On Linux, make the AppImage executable and launch it.
  2. On a Wayland session, run the guided first-launch setup. It installs the helpers it needs and configures device permissions so the global hotkey works system-wide, then asks for a restart.
  3. Choose a hotkey your terminal does not already claim.
  4. Focus the Claude Code prompt, press the key, speak, release, read what landed, then press enter.

Terminals are the fussy part, and Vibe Typer's Automatic insertion mode handles the known cases: Ctrl + Shift + V in Linux terminals rather than Ctrl + V, and Shift + Insert for Konsole, Yakuake, and the integrated terminals in VS Code and Cursor, whose Electron shells often read Ctrl + V as an image paste. If a specific terminal misbehaves, set a per-app rule in text insertion and paste preferences; Always Type simulates keystrokes and skips the clipboard entirely.

Dictating prompts worth sending

The gain from voice is not typing the same prompt faster. It is sending the prompt you would not have typed at all.

Compare:

  • Typed: "Create auth system with OAuth"
  • Spoken: "I need user authentication for this app. Support Google and GitHub OAuth plus email and password as a fallback. Add password reset and session management that survives a browser restart. Do not change the existing user table schema."

The second is thirty seconds of talking and it removes three rounds of clarification. That is the whole argument.

Four habits make it reliable:

Teach it your nouns. Repository names, internal services, CLI flags and library names are exactly the words a general speech model mangles and exactly the words the agent needs correct. Add them once in the custom dictionary.

Say the constraints. What must not change is as useful to an agent as what must. Speaking makes it cheap to include.

Let the formatter absorb the mess. Magic Formatter strips false starts and mid-sentence corrections so the prompt reads as intent rather than as a transcript of you thinking.

Always read before you send. A misheard file path in a Slack message is a typo. A misheard file path in an agent prompt is a diff.

Where voice earns its keep

Bug reports. Describe the failure while you are still looking at it: what you clicked, what you expected, what the log said, what you already ruled out. Speaking through a bug also tends to solve a fair number of them.

Multi-file refactors. "Move all authentication logic into a dedicated auth service, update the imports, keep the user model to data and user-management logic only, and keep the public API identical so nothing downstream breaks." Nobody types that. Everybody can say it.

Review replies. Detailed, generous review comments are mostly a typing-cost problem. Remove the cost and the comments get better.

After the code lands. Commit messages, pull request bodies, changelog entries and the Linear ticket you are meant to close. None of these are Claude Code surfaces, and all of them are dictation surfaces.

Related reading

Getting started

If /voice works for you, use it. If you are on Bedrock, on a remote host, in a container, dictating in Portuguese, or you would like the same key to work in the other ten apps you typed into today, you need a layer that sits below the agent rather than inside it.

Download Vibe Typer and start on the free plan.

Frequently asked questions

Does Claude Code have built-in voice input?

Yes. Run /voice to enable hold-to-record dictation in the CLI, or /voice tap for tap-to-record. It works on macOS, Linux and Windows, and it does not consume tokens or count toward your usage limits.

Why does /voice say voice mode requires a Claude.ai account?

Because it does. Claude Code's speech-to-text is unavailable when you authenticate with an Anthropic API key directly, or through Amazon Bedrock, Google Cloud's Agent Platform, or Microsoft Foundry. Run /login with a Claude.ai account, or use a system-wide dictation tool, which does not care how Claude Code authenticates.

Can I use Claude Code voice dictation over SSH?

No. The docs list a local microphone as a requirement and state that dictation does not work in remote environments such as SSH sessions or Claude Code on the web. System-wide dictation on your laptop still works, because your terminal emulator is a local application. See voice dictation over SSH.

Does voice dictation work in Dev Containers or Codespaces?

Not through the Claude Code VS Code extension. It is unavailable in VS Code Remote sessions including SSH, Dev Containers and Codespaces, because the microphone is on your local machine while the extension runs on the remote host. Dictating into the VS Code window from a local tool works normally.

Is Claude Code voice dictation processed on my machine?

No. The docs are explicit: recorded audio is streamed to Anthropic's servers for transcription and is not processed locally.

How many languages does /voice support?

Twenty, and it falls back to English if your language setting is not one of them. Vibe Typer supports 99 languages plus automatic detection.

Does Claude Code voice work on Linux?

Yes, on a machine with a real audio capture device. It uses a native module, falling back to arecord from ALSA utils or rec from SoX. On a headless server or inside a container with no capture device it reports that it cannot open one.

Can I use both /voice and a system-wide tool?

Yes, and most people should. Keep /voice for quick prompts where it works, and bind a global hotkey for everything else.

Try Vibe Typer free

Voice typing that works in every app on Linux, Windows, and macOS. Free to download: 2,000 words a month, no card.

Download free