Local, offline dictation for VS Code on Windows. Dictate into editors and agent/chat prompts such as Codex, then review the transcript before sending. 99 Whisper languages. Remote-WSL.
Open source · MIT · GitHub
Universal Dictate transcribes locally with the multilingual Whisper base model through whisper.cpp, including automatic punctuation, and inserts the transcript where the text cursor is currently active. It works in VS Code editors and agent/chat prompts and can also paste into text fields in other Windows applications while Universal Dictate is running. It never submits or sends dictated text automatically.
In VS Code, open Extensions (Ctrl+Shift+X), search for Universal Dictate and choose Install.
For manual/offline installation, download the latest Windows x64 .vsix from GitHub Releases, then install it directly:
Ctrl+Shift+P
Extensions: Install from VSIX...
Do not install a separate copy inside WSL. Universal Dictate declares extensionKind: ["ui"] so it runs in the local Windows extension host while a workspace may remain connected through Remote - WSL.
On first dictation, Universal Dictate downloads the multilingual Whisper base model (about 148 MB), verifies its SHA-256 checksum and stores it in VS Code's local extension storage. After that, normal dictation can run offline.
For lower post-recording latency, Universal Dictate starts a local whisper-server worker when recording begins and keeps the model loaded for later dictations. Model initialization overlaps with the time you are speaking. The worker listens only on 127.0.0.1 behind a randomized per-session request path. If it cannot start or exits unexpectedly, Universal Dictate automatically falls back to the one-shot whisper-cli path. The current Windows build remains CPU-only.
Universal Dictate shows an always-visible Dictate action and settings gear in VS Code's right-side status-bar utility group.
Status bar: Dictate Start recording
Ctrl+Alt+D Start recording
Ctrl+Alt+D Stop, transcribe locally and insert
Esc Cancel the current recording
Insert Stop, transcribe and insert
Discard Cancel and discard
The default Enhanced overlay is a native Windows, non-activating recording panel with a sensitive signed PCM signal display. Captured waveform samples stay visually stable as they move through the bounded history.
The audio-visualization choices are:
- Enhanced overlay — default; native PCM waveform overlay plus static recording feedback in the status bar.
- Both — Enhanced overlay plus the animated status-bar signal history.
- Status bar only — animated status-bar signal without the native overlay.
- Off — no waveform visualization; static recording feedback remains available.
The Enhanced waveform time span is configurable, so you can choose how much recent audio is visible across the waveform. This only changes the visualization and does not limit dictation length.
Visualization and waveform time-span changes apply from the next dictation session. Existing persisted legacy overlay settings are treated as Enhanced overlay for compatibility.
The default is Auto-detect. The bundled multilingual Whisper base model supports the original 99 Whisper languages. Recognition quality varies by language and audio conditions.
Language selection is available from the settings gear or from the Command Palette:
Universal Dictate: Select Language
The extension uses the Windows default microphone, records 16 kHz mono PCM16 WAV through miniaudio and transcribes it locally with a bundled, pinned whisper.cpp runtime.
Normal dictation is local. Microphone audio is written to a temporary local WAV file, sent only to the bundled whisper.cpp worker over the local loopback interface, transcribed locally and deleted after transcription. Audio and transcripts are not sent to a remote transcription service.
The only network operation required for normal setup is the initial Whisper model download.
- TypeScript: VS Code integration, commands, state, settings, model management and transcription orchestration.
- C++20: native Windows microphone process, non-activating recording overlay and focused-input paste helper.
- OpenAI Whisper: MIT-licensed speech-recognition model and model weights.
- whisper.cpp: MIT-licensed local Whisper inference runtime.
- miniaudio: permissively licensed microphone/audio backend.
- OpenWhispr: MIT-licensed historical source lineage for the focused-input Windows paste helper; the current helper has been substantially rewritten and reduced to Universal Dictate's focused-paste use case.
See docs/DEPENDENCIES.md, THIRD_PARTY_NOTICES.md and third_party/ for pinned versions, provenance and license notices.
Use GitHub Issues for bugs, compatibility problems and feature requests. See SUPPORT.md for useful diagnostic information.
Universal Dictate is MIT licensed. See LICENSE.


