Voice to text in VS Code changed, and most of the advice online is out of date. Dictation is built in now rather than extension-only, it runs on-device, and it's on by default wherever AI features are enabled. But it doesn't cover every platform, and it stops at the edge of the editor.
Here's the current state and how to decide between three approaches.
Option 1: built-in VS Code dictation
The dictation.enabled setting controls it, and it's on by default. Dictation runs an on-device model — nemotron-3.5-asr-streaming-0.6b — so audio stays on your machine.
Keybindings: ⌥⌘V starts dictation in the editor on macOS (Ctrl+Alt+V on Windows and Linux). ⌘I dictates into chat (Ctrl+I elsewhere). Hold the start keybinding for walkie-talkie mode: recognition stays active until you let go, then submits on its own.
Platform coverage is the catch:
| Supported | Not supported |
|---|---|
| macOS on Apple Silicon | Intel Macs |
| Windows x64 and Arm64 | VS Code for the Web |
| Linux x64/Arm64, glibc 2.34+ | musl-based Linux (Alpine) |
| Remote workspaces | 32-bit and Arm32 |
On an Intel Mac, built-in dictation isn't available.
One privacy footnote worth knowing: if you enable dictation.experimental.llmCleanup, VS Code sends the transcript text — not the audio — to Copilot servers for formatting. Audio stays on-device either way; the cleanup pass doesn't. If that matters, leave it off.
The terminal gets special handling: recognition adapts to command syntax, and accessibility.voice.speechTimeout auto-stops after silence.
Option 2: the VS Code Speech extension
Microsoft's extension predates the built-in support and still fills two gaps.
It covers platforms built-in dictation doesn't — Intel Macs, VS Code for the Web, musl Linux. If you're on hardware the built-in model doesn't run on, this is your path.
It has "Hey Code." Wake-word activation for a Copilot Chat session is exclusive to the extension, and it understands chat grammar: "at workspace" maps to @workspace, "slash fix" to /fix. If you like driving GitHub Copilot Chat entirely by voice, that's something built-in dictation doesn't replicate.
The extension is free, maintained by Microsoft, and ships language support as separate companion extensions.
Option 3: system-wide dictation
Both options above are editor-scoped. That boundary is the whole argument for the third approach, and whether it matters depends on where your words actually go.
A normal day isn't only code in VS Code. It's the PR description on GitHub, review comments, a Slack thread about the approach, the ticket, the design doc, a commit message, an email to whoever's blocked on you. VS Code's dictation covers exactly one of those. The rest lives in a browser and a chat app.
A system-wide tool works in all of them with one shortcut and one set of behaviors. That's the pitch for Vext: dictation that types into whatever app has focus, with per-app styles so Slack gets a chat-shaped message, your mail client gets email formatting, and your terminal gets the transcript untouched.
The other practical difference is vocabulary. Corrections apply to every transcript, in every app — your module names, dependencies, and colleagues' names get recognized in the PR description and the Slack message, not just inside the editor. Transcription runs on-device with Parakeet TDT v3 via FluidAudio, and polishing uses a local MLX model.
brew install muvon/tap/vext
Which to use
Built-in dictation if you're on supported hardware and mostly use your voice to prompt Copilot Chat and write comments inside the editor. It's free, it's there, and it's on-device. Nothing to install.
The Speech extension if you're on an Intel Mac or VS Code for the Web, or if you specifically want "Hey Code."
System-wide if the editor is a minority of your typing. The prose around the code tends to outweigh the code — that's the case we made in voice notes for developers.
These aren't exclusive. Built-in dictation for chat plus a system-wide tool everywhere else is a perfectly sensible setup.
What none of them do well
Dictating code itself. Speaking for (let i = 0; i < arr.length; i++) is slower and more error-prone than typing it, and no tool in this list changes that. Symbols, precise punctuation, and identifier casing are where speech falls apart.
Voice is genuinely good at intent: describing what you want to an agent, explaining a tradeoff in a review comment, writing the PR description that covers why. Speaking a paragraph of context to a coding agent takes about twenty seconds and produces better instructions than the terse version you'd have typed — you include the constraints you'd otherwise have edited out. We made that case in voice coding with AI agents, and it applies whether the words go through VS Code's microphone button or a system-wide shortcut.
If you're in Cursor rather than VS Code, the same reasoning applies with a different set of built-ins — see voice input for Cursor. And if you want your agent to control dictation instead of you pressing a key, Vext exposes that over MCP, which we covered in 1.4.0.
Vext costs $49 once, with a 100-dictation trial. macOS 14+ on Apple Silicon.