Windows-native local dictation. Hold a hotkey, speak, release — cleaned-up words appear in the focused app. Parakeet TDT v3 ASR + LlamaSharp cleanup, all local.
C#
18
956 commits
updated Aug 25, 2026

Local, private voice dictation for Windows — hold a key, speak, and your words are typed into any app.
Download Winpepper for Windows (64-bit installer)
If that link doesn't work, go to the
latest release page and click
the file ending in .msi.
.msi file using the link above. It will land in your
Downloads folder.Because the installer is not signed with a paid certificate. Certificates cost money every year, and Winpepper is a free, open-source project that doesn't have one yet. Windows shows that same warning for any unsigned app, new or old, harmless or not — it is not a virus alert, and it doesn't mean Windows found anything wrong.
Every release also includes a small .sha256 file — a fingerprint of the
installer. Open PowerShell, run:
Get-FileHash "$env:USERPROFILE\Downloads\winpepper-x64.msi" -Algorithm SHA256
and compare the result (ignoring upper/lower case) with the contents of the
.sha256 file on the
release page. If they match,
your download is byte-for-byte the file that was published.
Winpepper does its listening on your own PC, so it needs to fetch the speech files it thinks with — about 760 MB once (more if you add the optional backup or cleanup models).
Until the models are downloaded, Winpepper will tell you "Speech model not installed. Open the Models tab to download it."
Live streaming: Winpepper also downloads the Nemotron Speech Streaming model (~760 MB, English by default — a multilingual variant is available; NVIDIA Open Model License for the English model, OpenMDW-1.1 for the multilingual one) automatically in the background on first run — dictation works immediately without it, and you can install or repair it yourself from the Models tab (or skip it entirely by turning streaming off there). Once installed it enables real local streaming — transcription runs while you speak and the text is ready almost the moment you release the hotkey. It uses the MIT-licensed transcribe.cpp engine (downloaded alongside the model, pinned and checksum-verified; see THIRD-PARTY-NOTICES.md). Without it, local dictations are transcribed in one pass after you stop — same results, just slower to appear. All local speech audio stays on your machine either way. Two practical notes: local dictation requires the Microsoft Visual C++ x64 Redistributable — both local engines need it (preinstalled on most PCs; if local dictation fails, install it from aka.ms/vs/17/release/vc_redist.x64.exe), and after your first streaming dictation the model stays loaded (~1 GB of memory) until you close Winpepper.
Hold Right Ctrl + Right Shift, speak, then let go. A moment later your words appear in whatever window you were typing in. Press Esc while it's working to cancel.
That key combination is the default; you can record your own during setup. There's also a second shortcut you tap once to start recording and tap again to stop, if holding keys down isn't comfortable.
A cheap USB foot pedal makes a great hands-free dictation key. This
PCsensor-compatible USB foot pedal
works well, and you can skip the vendor's sketchy configuration software:
reprogram-foot-pedal
shows how to write a key combination (say Ctrl+Shift+Alt+D) permanently
into the pedal's own firmware with an open-source command-line tool. Then
record that same combination as your Winpepper hotkey on the Recording
tab — step on the pedal, speak, step off.
Coming soon:
winget install obra.Winpepper. The submission is under review by Microsoft; until it's accepted, use the download link above.
Open Settings, go to Apps > Installed apps, find Winpepper, and choose Uninstall. No administrator password needed.
Your settings and dictation history are deliberately left behind so a reinstall
picks up where you left off. To erase those too, delete the folder
%LOCALAPPDATA%\winpepper (paste that into the File Explorer address bar).
Optional: if you'd rather use a cloud speech service, there's built-in support for AssemblyAI with your own API key. It's off by default — nothing goes to the cloud unless you deliberately turn it on.
Windows Sandbox is a feature built into Windows Pro and Enterprise editions that gives you a clean, throwaway copy of Windows in a window — anything you install inside it disappears when you close it, leaving your real PC untouched.
The scripts in scripts/windows-sandbox/ launch a
sandbox, install Winpepper inside it, run the self-test, and show you the result.
See scripts/windows-sandbox/README.md for
the one command to run.
One catch: Windows Sandbox has no microphone, so you can confirm the app installs and starts, but not that dictation itself works.
Nothing happens when I hold the hotkey. Check that Winpepper is running (look for its icon in the system tray, near the clock), that the speech models finished downloading (the Models tab), and that the right microphone is selected.
The text takes several seconds to appear. That's usually the cleanup step, which leans on your graphics chip; it's much slower on built-in graphics than on a dedicated graphics card. Turn off Enable cleanup LLM on the Cleanup tab for near-instant results with slightly rougher text.
Windows warned me the app is unrecognized. Expected — see why above. Click More info, then Run anyway.
Something else is broken. Open the Diagnostics tab and click Copy diagnostics bundle. It creates a zip of logs and system information — never your audio, never your transcripts — that's safe to attach to a bug report. Please file one at github.com/obra/winpepper/issues.
Winpepper is alpha software: in active development, in real-world use, and improving quickly. Expect an occasional rough edge — and when you hit one, the Diagnostics tab builds a safe-to-share bug report bundle in one click (see above).
Quality is taken seriously. Over 1,400 automated tests run on every change, every release is installed and self-tested on a clean Windows machine before it is published, and the speech engine is verified against real recorded audio.
One thing worth knowing about how it's made: Winpepper is written almost entirely by an AI coding agent working under human direction, with people testing the results and reviewing the work.
Winpepper is a single .NET 9 / WinUI 3 app: a low-level keyboard hook, WASAPI
audio capture, NVIDIA Parakeet TDT v3 speech recognition through ONNX
Runtime, a small local Qwen model for cleanup, and SendInput to type the result.
docs/DEVELOPMENT.md — architecture, repository layout,
building from source (including the WinAppSDK XAML compiler workaround), known
issues, and dev VM notes.docs/testing-windows-from-wsl.md — running
the full Windows test suite from a WSL2 checkout.docs/windows-smoke-test.md — the long-lived
real-hardware release smoke test.docs/release.md — the tag-triggered release process and
winget submission.Apache License 2.0. See LICENSE. Copyright 2026 Jesse Vincent.
Companion to pepper-x — same problem, a
native rewrite for Windows.
523 followers · starred Jul 2026
C#
93.2%
Shell
3.1%
PowerShell
2.8%
Windows-native local dictation. Hold a hotkey, speak, release — cleaned-up words appear in the focused app. Parakeet TDT v3 ASR + LlamaSharp cleanup, all local.
C#
18
956 commits
updated Aug 25, 2026

Local, private voice dictation for Windows — hold a key, speak, and your words are typed into any app.
Download Winpepper for Windows (64-bit installer)
If that link doesn't work, go to the
latest release page and click
the file ending in .msi.
.msi file using the link above. It will land in your
Downloads folder.Because the installer is not signed with a paid certificate. Certificates cost money every year, and Winpepper is a free, open-source project that doesn't have one yet. Windows shows that same warning for any unsigned app, new or old, harmless or not — it is not a virus alert, and it doesn't mean Windows found anything wrong.
Every release also includes a small .sha256 file — a fingerprint of the
installer. Open PowerShell, run:
Get-FileHash "$env:USERPROFILE\Downloads\winpepper-x64.msi" -Algorithm SHA256
and compare the result (ignoring upper/lower case) with the contents of the
.sha256 file on the
release page. If they match,
your download is byte-for-byte the file that was published.
Winpepper does its listening on your own PC, so it needs to fetch the speech files it thinks with — about 760 MB once (more if you add the optional backup or cleanup models).
Until the models are downloaded, Winpepper will tell you "Speech model not installed. Open the Models tab to download it."
Live streaming: Winpepper also downloads the Nemotron Speech Streaming model (~760 MB, English by default — a multilingual variant is available; NVIDIA Open Model License for the English model, OpenMDW-1.1 for the multilingual one) automatically in the background on first run — dictation works immediately without it, and you can install or repair it yourself from the Models tab (or skip it entirely by turning streaming off there). Once installed it enables real local streaming — transcription runs while you speak and the text is ready almost the moment you release the hotkey. It uses the MIT-licensed transcribe.cpp engine (downloaded alongside the model, pinned and checksum-verified; see THIRD-PARTY-NOTICES.md). Without it, local dictations are transcribed in one pass after you stop — same results, just slower to appear. All local speech audio stays on your machine either way. Two practical notes: local dictation requires the Microsoft Visual C++ x64 Redistributable — both local engines need it (preinstalled on most PCs; if local dictation fails, install it from aka.ms/vs/17/release/vc_redist.x64.exe), and after your first streaming dictation the model stays loaded (~1 GB of memory) until you close Winpepper.
Hold Right Ctrl + Right Shift, speak, then let go. A moment later your words appear in whatever window you were typing in. Press Esc while it's working to cancel.
That key combination is the default; you can record your own during setup. There's also a second shortcut you tap once to start recording and tap again to stop, if holding keys down isn't comfortable.
A cheap USB foot pedal makes a great hands-free dictation key. This
PCsensor-compatible USB foot pedal
works well, and you can skip the vendor's sketchy configuration software:
reprogram-foot-pedal
shows how to write a key combination (say Ctrl+Shift+Alt+D) permanently
into the pedal's own firmware with an open-source command-line tool. Then
record that same combination as your Winpepper hotkey on the Recording
tab — step on the pedal, speak, step off.
Coming soon:
winget install obra.Winpepper. The submission is under review by Microsoft; until it's accepted, use the download link above.
Open Settings, go to Apps > Installed apps, find Winpepper, and choose Uninstall. No administrator password needed.
Your settings and dictation history are deliberately left behind so a reinstall
picks up where you left off. To erase those too, delete the folder
%LOCALAPPDATA%\winpepper (paste that into the File Explorer address bar).
Optional: if you'd rather use a cloud speech service, there's built-in support for AssemblyAI with your own API key. It's off by default — nothing goes to the cloud unless you deliberately turn it on.
Windows Sandbox is a feature built into Windows Pro and Enterprise editions that gives you a clean, throwaway copy of Windows in a window — anything you install inside it disappears when you close it, leaving your real PC untouched.
The scripts in scripts/windows-sandbox/ launch a
sandbox, install Winpepper inside it, run the self-test, and show you the result.
See scripts/windows-sandbox/README.md for
the one command to run.
One catch: Windows Sandbox has no microphone, so you can confirm the app installs and starts, but not that dictation itself works.
Nothing happens when I hold the hotkey. Check that Winpepper is running (look for its icon in the system tray, near the clock), that the speech models finished downloading (the Models tab), and that the right microphone is selected.
The text takes several seconds to appear. That's usually the cleanup step, which leans on your graphics chip; it's much slower on built-in graphics than on a dedicated graphics card. Turn off Enable cleanup LLM on the Cleanup tab for near-instant results with slightly rougher text.
Windows warned me the app is unrecognized. Expected — see why above. Click More info, then Run anyway.
Something else is broken. Open the Diagnostics tab and click Copy diagnostics bundle. It creates a zip of logs and system information — never your audio, never your transcripts — that's safe to attach to a bug report. Please file one at github.com/obra/winpepper/issues.
Winpepper is alpha software: in active development, in real-world use, and improving quickly. Expect an occasional rough edge — and when you hit one, the Diagnostics tab builds a safe-to-share bug report bundle in one click (see above).
Quality is taken seriously. Over 1,400 automated tests run on every change, every release is installed and self-tested on a clean Windows machine before it is published, and the speech engine is verified against real recorded audio.
One thing worth knowing about how it's made: Winpepper is written almost entirely by an AI coding agent working under human direction, with people testing the results and reviewing the work.
Winpepper is a single .NET 9 / WinUI 3 app: a low-level keyboard hook, WASAPI
audio capture, NVIDIA Parakeet TDT v3 speech recognition through ONNX
Runtime, a small local Qwen model for cleanup, and SendInput to type the result.
docs/DEVELOPMENT.md — architecture, repository layout,
building from source (including the WinAppSDK XAML compiler workaround), known
issues, and dev VM notes.docs/testing-windows-from-wsl.md — running
the full Windows test suite from a WSL2 checkout.docs/windows-smoke-test.md — the long-lived
real-hardware release smoke test.docs/release.md — the tag-triggered release process and
winget submission.Apache License 2.0. See LICENSE. Copyright 2026 Jesse Vincent.
Companion to pepper-x — same problem, a
native rewrite for Windows.
523 followers · starred Jul 2026
C#
93.2%
Shell
3.1%
PowerShell
2.8%