VVoice - Voice to Terminal
Speak commands in your native language. VVoice transcribes, translates, and sends them straight to your VS Code terminal.
Toggle listening: Cmd+Shift+V (macOS) / Ctrl+Shift+V (Windows/Linux)

How It Works
Microphone -> Soniox STT -> Stop Word Detection -> LLM Correction -> Terminal
- Press
Cmd+Shift+V (macOS) or Ctrl+Shift+V (Windows/Linux) to start listening
- Speak your command in any supported language (e.g. Vietnamese, English, Chinese, Japanese...)
- Say your stop word (default: "thank you") to trigger
- VVoice transcribes, optionally corrects/translates via LLM, and sends the command to your active terminal
- Press
Cmd+Shift+V / Ctrl+Shift+V again to stop listening
Works great with AI coding assistants like Claude Code, Copilot CLI, or any terminal app.
Features
- Real-time speech-to-text via Soniox STT (streaming WebSocket)
- Multilingual — speak in your native language, get commands in your target language
- LLM correction — optional translation and command correction via xAI Grok
- Stop word detection — say "thank you" (configurable) to send the command
- Continuous listening — send multiple commands without re-toggling
- Terminal targeting — choose which terminal receives commands
- Status bar integration — see mic state and live transcript in the status bar
- Cross-platform — works on macOS, Windows, and Linux
Prerequisites
Quick Start
- Install the extension
- On first launch, the setup wizard opens — fill in your languages and API keys
- Open a terminal in VS Code
- Press
Cmd+Shift+V (macOS) or Ctrl+Shift+V (Windows/Linux)
- Speak your command, then say "thank you"
- Watch it appear in your terminal
Commands
| Command |
Keybinding |
Description |
VVoice: Toggle Voice Listening |
Cmd+Shift+V / Ctrl+Shift+V |
Start/stop listening |
VVoice: Run Setup Wizard |
— |
Re-run the initial setup |
VVoice: Set Soniox API Key |
— |
Update your Soniox key |
VVoice: Set xAI API Key |
— |
Update your xAI key |
VVoice: Select Target Terminal |
— |
Pick which terminal receives commands |
VVoice: Reset All API Keys |
— |
Clear all saved credentials |
Settings
| Setting |
Default |
Description |
vvoice.nativeLanguage |
vi |
Your native language code |
vvoice.targetLanguage |
en |
Target language for output |
vvoice.stopWord |
thank you |
Phrase that triggers sending the command |
vvoice.autoSend |
true |
Auto-send command on stop word |
vvoice.skipLlmCorrection |
false |
Skip LLM and send raw transcript |
vvoice.llmModel |
grok-4-fast-non-reasoning |
xAI model for correction |
vvoice.sonioxModel |
stt-rt-v4 |
Soniox STT model |
vvoice.terms |
[] |
Custom recognition terms for better accuracy |
vvoice.translationTerms |
[] |
Custom translation pairs [{source, target}] |
Example Workflow
You're in VS Code with Claude Code open in the terminal.
- Press
Cmd+Shift+V (or Ctrl+Shift+V on Windows/Linux) — status bar shows "Listening..."
- Say (in Vietnamese): "chay pytest cho folder tests, thank you"
- VVoice transcribes and corrects to:
pytest tests/
- Command is sent to the terminal and executed
Supported Languages
Any language supported by Soniox STT, including:
Vietnamese, English, Chinese, Japanese, Korean, French, German, Spanish, and many more.
Privacy
- Audio is streamed directly to Soniox for transcription — no audio is stored locally or by the extension
- API keys are stored securely in VS Code's SecretStorage (OS keychain)
- LLM correction (if enabled) sends only the text transcript to xAI, not audio
License
MIT