VS Code Universal DictateLocal, offline dictation for VS Code on Windows, including Remote - WSL. Dictate into editors and agent/chat prompts such as Codex or Claude Code, then review the transcript before sending. 99 Whisper languages. Open source · MIT · GitHub
Universal Dictate transcribes locally with the multilingual Whisper Other Windows applications: Start dictation from Universal Dictate, then focus a compatible text field in another app. The final text is inserted there while VS Code remains running. The overlay controls work there too; keyboard shortcuts are local to VS Code, not system-wide. Available from the VS Code Marketplace. Enhanced overlay screenshotsThe following screenshots show the original native Windows overlay, captured during natural speech. Waveform and Log-Frequency Power Spectrogram have different visualizations but the same Insert/Discard controls. The Circular Spectrum is the third available visualization. Waveform / Oscillogram
Log-Frequency Power Spectrogram
SettingsOpen the settings gear next to Dictate, or find Universal Dictate in VS Code Settings.
Change settings before starting a recording. Changes made during a recording apply to the next one. Saved choices take precedence over the defaults. Medium is the default overlay size. With Live preview Off, the overlay is shorter; enabling preview reserves room for readable text without narrowing the waveform. Enhanced overlay visualizationsAudio visualization controls where feedback appears. Enhanced Overlay Visualization controls what the native overlay draws. The status-bar waveform is independent. Selecting a renderer neither enables a disabled overlay nor changes the current recording; the preference is retained for the next session using Enhanced overlay or Both. Waveform / Oscillogram uses fixed amplitude mapping and immutable scrolling history; its default color is blue. It performs no spectral analysis. Log-Frequency Power Spectrogram displays FFT power over time with lower frequencies at the bottom. Blue keeps the original spectrogram palette. Circular Spectrum displays the latest FFT bands clockwise, low to high, in its own compact square panel. It is a spectrum, not a scrolling spectrogram or musical chromagram. Its rays use a fixed visual response that makes moderate levels easier to see without changing microphone gain or FFT colors. Silence does not create artificial motion. Small, Medium and Large apply to each layout. Circular panels stay square with preview Off or On; the latter reserves readable text beneath the circle. Rectangular modes retain their waveform/preview viewport, with the unused Pause-button column removed. Controls are Insert and Discard only. All five palettes use a fixed digital scale, not calibrated loudness or automatic gain. Changing Colors does not recolor an active recording or change audio. Removed Linear/Constant-Q saved preferences fall back to Log-Frequency Power Spectrogram without rewriting preferences. No new model or runtime dependencies are introduced. Live previewWhen enabled, the overlay shows recent provisional words, which may be revised as recognition continues. It is not a complete transcript history. After Stop, Universal Dictate transcribes the complete recording and inserts the final transcript once. Preview and final transcription both run locally. Preview uses a separate on-demand worker (up to two threads) so final transcription does not share its inference queue. Stop or Discard retires the preview worker; the final worker stays warm. The extra model instance uses additional memory while preview is active: a controlled Windows benchmark observed about 256 MiB of preview-process working set, which is not a measurement of additional unique physical RAM. Worker startup and the thread cap can delay the first preview. Turning preview Off avoids the second worker; Status bar only and Off visualization do not run invisible previews. See architecture for worker lifecycle and resource constraints. Controls
The overlay has two controls: ✓ Insert (green) and ✕ Discard (red), with descriptive hover labels. It does not take keyboard focus when clicked. Review the inserted text before sending it. Pause/Resume and its keyboard command have been removed: finish with Insert, then start a new recording when ready. LanguagesEnglish is selected by default. Choose another language or Auto-detect from the settings gear or Universal Dictate: Select Language in the Command Palette ( Select the language you intend to speak, or use Auto-detect. The language setting controls recognition; Universal Dictate does not provide a supported translation mode. Selecting a language different from the spoken language can produce unreliable output. Clipboard and transcript recoveryAutomatic insertion does not require the clipboard. With Overwrite clipboard Off, automatic dictation leaves the clipboard untouched. With it On, the exact final transcript is also copied before insertion, replacing the previous clipboard contents. There is no later restoration, and a subsequent copy from another application takes precedence. Use Universal Dictate: Copy Last Transcript from the Command Palette to copy the latest successful final transcript again. This explicit command replaces the clipboard regardless of the automatic setting. The retained transcript stays in this window's extension memory only; it is lost when the extension reloads or VS Code restarts. With no usable focused input, insertion may do nothing. The clipboard option provides a manual-paste backup. Provisional preview text is never inserted or copied. Direct insertion converts line breaks and tabs to spaces to avoid triggering input commands; an explicit or enabled clipboard copy retains the original final text. Local processing and privacyUniversal Dictate uses the Windows default microphone. On first use, it downloads the multilingual Whisper Speech recognition runs on the CPU through the bundled For Remote - WSL, the extension runs in the local Windows VS Code host while your workspace stays in WSL. It is not a native Linux extension and does not need a separate WSL-side microphone setup. Known insertion-target limitationClicking VS Code's status-bar Dictate or Stop control can move focus away from inputs such as the Codex composer, so insertion may miss the intended caret. Use the keyboard shortcut or overlay controls where appropriate, or enable Overwrite clipboard to retain a manual-paste backup. Clipboard recovery does not fix focus preservation. AttributionUniversal Dictate uses OpenAI Whisper, whisper.cpp and miniaudio, and retains attribution for the historical OpenWhispr input-helper lineage. See third-party notices and dependency details for licenses and provenance. Support and release notesReport problems or request features through GitHub Issues. See support information for useful diagnostic details and the Changelog for version history. If timing evidence is needed, Universal Dictate: Show Latency Report opens the latest 100 completed measurements in one document. Records stay in the current extension-host session and are lost on reload unless that document is saved. LicenseMIT licensed. See LICENSE. |


