Voice support

Visual Studio Code supports spoken agent conversations with Voice Mode and built-in dictation that converts your speech to text in chat, the Agents window, editors, and terminals.

Use Voice Mode

Voice Mode is a feature that lets you have a hands-free, spoken conversation with an agent while it works on your code. Unlike dictation, which only converts speech to text, Voice Mode also reads the agent's responses aloud and listens for follow-up requests.

To start a voice conversation, enable agents.voice.enabled Open in VS Code Open in VS Code Insiders , open the chat view or the Agents window, and select the Voice Mode button in the chat input. You can also focus the chat input and press ⇧⌘Space (Windows, Linux Ctrl+Shift+Space).

On first use, allow microphone access and follow the introduction to select a microphone and preview the available voices. Voice Mode sends your request to the chat or agent session where you start it and uses that session's selected model and attached files. To continue the conversation in another session, open the destination session and explicitly start Voice Mode there. Spoken requests to switch sessions are submitted as ordinary chat requests and don't change the active session automatically.

When agents.voice.handsFree Open in VS Code Open in VS Code Insiders is enabled, Voice Mode starts listening again after the agent finishes speaking. While the agent is speaking, start speaking or press ⇧⌘Space (Windows, Linux Ctrl+Shift+Space) to interrupt the response and continue the conversation.

When Voice Mode uses English, say 'approve' or 'reject' to respond to the current tool confirmation. For other languages or unsupported phrases, respond with the controls in the chat input. For a question form, say an exact displayed option label or its number, such as 1. Use the form controls for custom answers or unsupported spoken responses.

Note

Voice Mode is rolling out gradually and might not be available to every eligible account immediately. Hosted Voice Mode requires an eligible individual GitHub Copilot plan and is not available with Copilot Business or Copilot Enterprise. The OpenAI bring your own key (BYOK) option can be used without hosted Voice Mode entitlement when client BYOK is permitted. Organizations can turn off Copilot preview features or restrict client BYOK by policy.

Use your own OpenAI key

Voice Mode can use an OpenAI Live model with your own API key. This Experimental option uses your OpenAI account and incurs OpenAI usage charges. Your account and organization policies must permit client BYOK.

  1. Add an OpenAI model from the built-in provider and enter your OpenAI API key.

  2. Set agents.voice.useBYOKVoiceModel Open in VS Code Open in VS Code Insiders to an OpenAI Live model ID that your key can access, such as gpt-live-1. Model access depends on your OpenAI account and key.

  3. Start Voice Mode from the chat or agent session that you want to use.

Leave agents.voice.useBYOKVoiceModel Open in VS Code Open in VS Code Insiders empty to use hosted Voice Mode. If you configure a BYOK model and the key, model, or policy check fails, Voice Mode reports the error and doesn't silently switch to the hosted service.

The OpenAI Live model handles the spoken conversation. The model selected in the chat or agent session remains the coding model that processes your requests.

Configure Voice Mode

While Voice Mode is connected, use the controls in the chat input to mute or unmute your microphone without ending the voice session. You can also focus the chat input and press ⇧⌘M (Windows, Linux Ctrl+Shift+M), or run Voice Mode: Toggle Mute Microphone from the Command Palette.

You can also configure Voice Mode in the following ways:

  • Enable agents.voice.showTranscript Open in VS Code Open in VS Code Insiders to show the conversation transcript in the chat input. Use the Voice Mode controls to show or hide the transcript and mute or unmute your microphone without ending the voice session.
  • Run Chat: Dictate: Select Microphone from the Command Palette to choose the input device used by both dictation and Voice Mode.
  • Use agents.voice.voice Open in VS Code Open in VS Code Insiders to select the voice that reads responses aloud.
  • Use agents.voice.speakResponses Open in VS Code Open in VS Code Insiders to control whether the agent reads responses aloud. Turning off spoken responses keeps the microphone and voice input active. Enable agents.voice.showTranscript Open in VS Code Open in VS Code Insiders to read responses as text.
  • Run Voice Mode: Show Introduction from the Command Palette to reopen the introduction, where you can select a microphone and preview the available voices.

Open the context menu for the Voice Mode button to access its settings, instructions, introduction, microphone selection, and transcript controls. For all available options, see the Voice Mode and dictation settings.

Use built-in dictation

On desktop, dictation uses an on-device speech recognition model by default, so you can dictate without sending audio to an online service. In VS Code for the Web, where on-device transcription is not supported, dictation streams audio to the Microsoft AI voice service for cloud transcription. Web dictation requires a network connection and GitHub sign-in.

Built-in dictation is available when AI features are enabled and is turned on by default with the dictation.enabled Open in VS Code Open in VS Code Insiders setting. On first use on a supported desktop platform, VS Code downloads the default nemotron-3.5-asr-streaming-0.6b speech recognition model. After the download completes, speech recognition works locally and offline.

The on-device model is available on these desktop platforms:

  • Windows on x64 and Arm64.
  • macOS on Apple silicon.
  • Linux on x64 and Arm64 with glibc 2.34 or later.
  • Remote workspaces, because speech recognition runs on the local VS Code client.

VS Code asks for microphone access when you start dictation. Only one dictation session can be active at a time.

When a dictation session reaches 20 minutes, VS Code automatically stops dictation and keeps the text transcribed up to that point. The automatic stop is announced to screen reader users.

Dictate in chat or the Agents window

To dictate a chat prompt, select the microphone button in the chat input or press ⌘I (Windows, Linux Ctrl+I). Select the button or press the keyboard shortcut again to stop dictation and keep the transcribed text. Dictation inserts text in the input but does not submit the request.

Screenshot showing text entered by dictation in the chat input.

Screenshot showing active dictation listening for speech in the chat input.

Press Escape to cancel dictation and remove the text from the current dictation session.

On first use, VS Code shows an introduction next to the chat input. To view it again, run Chat: Dictate: Show Introduction from the Command Palette.

Dictate in an editor

To dictate in a writable editor, run Voice: Start Dictation in Editor or press ⌥⌘V (Windows, Linux Ctrl+Alt+V). A microphone control appears at the cursor while dictation is active. Run Voice: Stop Dictation in Editor or use the microphone control to stop.

Editor dictation also works in other inputs that use a rich editor, such as the Source Control commit input and pull request comment fields.

Note

Press and hold a dictation keyboard shortcut to use push-to-talk. Speech recognition remains active until you release the keys.

Dictate in a terminal

To dictate at a terminal prompt, run Voice: Start Dictation in Terminal from the Command Palette. Run Voice: Stop Dictation in Terminal or use the microphone control to stop and insert the final text.

Terminal dictation adapts speech for command-line input. For example, it removes ordinary punctuation, converts spoken symbol names, and adjusts initial capitalization. Set accessibility.voice.speechTimeout Open in VS Code Open in VS Code Insiders to a value greater than zero to stop dictation automatically after the specified period of silence.

Configure dictation

Use these settings to configure built-in dictation:

Setting Description Default
dictation.enabled Open in VS Code Open in VS Code Insiders Controls whether built-in dictation is available. true
dictation.model Open in VS Code Open in VS Code Insiders Selects the speech recognition model. Desktop: "nemotron-3.5-asr-streaming-0.6b"
Web: "mai"
dictation.showTranscript Open in VS Code Open in VS Code Insiders Shows interim transcription while you speak. Final text is still inserted when this setting is off. true
dictation.experimental.llmCleanup Open in VS Code Open in VS Code Insiders Uses a language model to improve punctuation, capitalization, paragraphs, lists, and number formatting in the final transcript. true
agents.voice.language Open in VS Code Open in VS Code Insiders Provides a language hint for dictation. Use auto to use the system language. "auto"
accessibility.voice.speechTimeout Open in VS Code Open in VS Code Insiders Stops terminal dictation after the specified number of milliseconds of silence. Set to 0 to keep listening. 0

To choose an input device, run Chat: Dictate: Select Microphone from the Command Palette. The microphone selection applies to all dictation surfaces.

Add dictation instructions

You can provide instructions for how the language model cleans up a transcript. For example, you can specify preferred terminology or formatting. Run Voice: Configure Dictation Instructions from the Command Palette to create an instructions file:

  • User instructions apply across all workspaces and are stored in ~/.copilot/dictation.md.
  • Workspace instructions are stored in .github/dictation.md and apply only when the workspace is trusted.

Dictation instructions apply when dictation.experimental.llmCleanup Open in VS Code Open in VS Code Insiders is enabled.

Install the model from a local package

If network restrictions prevent VS Code from downloading the on-device model, download the official CPU model package separately. Then run Chat: Install Dictation Model from Local Package... and select the ZIP file or prepared model folder.

Understand dictation privacy

On desktop, the default speech recognition model processes microphone audio on your device. After the initial model download, speech recognition does not require an internet connection.

In VS Code for the Web, dictation streams microphone audio to the Microsoft AI voice service for cloud transcription. The on-device model is not available in the web client.

When dictation.experimental.llmCleanup Open in VS Code Open in VS Code Insiders is enabled, VS Code separately sends the transcript text to a Copilot language model for cleanup. Turn off this setting to prevent the transcript text from being sent for cleanup. This setting does not control the audio that web dictation sends for cloud transcription.

Organizations can enforce these privacy choices with enterprise policies:

  • DictationModel controls whether dictation uses the on-device model or streams audio to the cloud transcription service. On the web, a policy that requires the on-device model makes dictation unavailable.
  • DictationLLMCleanup controls whether the final transcript is sent to a Copilot language model for cleanup.

To keep both audio and transcript processing on the device, administrators must require the on-device model and turn off language-model cleanup. This configuration makes dictation unavailable in VS Code for the Web. Learn more about managing AI settings in enterprise environments.

VS Code Speech extension

Built-in dictation is not available on these desktop platforms:

  • Intel-based Mac computers.
  • 32-bit and Arm32 systems.
  • Linux distributions that use musl, such as Alpine Linux.

On these platforms, install the VS Code Speech extension. The extension also provides voice chat, text-to-speech for chat responses, and the "Hey Code" keyword activation feature.

Next steps

Read on to find out about: