This release adds Moonshine as a new local transcription engine, fixes critical Windows stability issues, and introduces auto-start on login. We've upgraded to transcribe-rs 0.2.1, which powers all three local engines.
Windows: No More Vulkan Crashes
Fixes #840, #829—Whispering no longer crashes on Windows systems without Vulkan or GPU support.
Previously, starting with v7.5.0, Windows users on CPU-only systems or VMs would see "vulkan-1.dll was not found" errors at launch. This blocked users without dedicated GPUs from using the app at all.
The fix: Windows builds now only include Parakeet for local transcription. We removed whisper-cpp and Moonshine from Windows due to upstream issues with whisper-rs and MSVC runtime conflicts. Parakeet uses prebuilt ONNX binaries and doesn't require Vulkan or GPU drivers.
Major thanks to @cjpais for maintaining transcribe-rs and adding Moonshine support! We are a proud sponsor of their work 🫶
Three Local Transcription Engines
Parakeet (All Platforms)
NVIDIA's state-of-the-art speech recognition model. English-only, uses ONNX Runtime for efficient inference. This is now the default and only local option on Windows.
Moonshine (New-macOS/Linux)
A fast ONNX-based engine optimized for English. Two model variants:
- Tiny (~30 MB): 6-layer model, great for quick notes
- Base (~65 MB): 8-layer model, better accuracy
Models downloaded from HuggingFace. Give it a try and see how it goes!
Whisper C++ (macOS/Linux)
The multilingual workhorse supporting 65 languages. Fixed upstream build issues that broke it in previous releases.
Why Windows Has Fewer Options
Due to upstream issues with the whisper-rs package and MSVC runtime library conflicts, Windows builds can only include Parakeet. The whisper-rs-sys and tokenizers crates use incompatible C runtime linking strategies that cannot coexist in the same binary on Windows.
Parakeet works because it uses ONNX Runtime without the problematic dependencies. This is a toolchain limitation we're monitoring for upstream fixes.
Auto-Start on Login
Whispering can now launch automatically when you log in. Works on macOS, Windows, and Linux.
Settings → General → Start on login
Initial Prompt Support
You can now provide an initial prompt to guide transcription for more models. This helps with domain-specific vocabulary, proper nouns, or formatting preferences. Available for Whisper C++ and cloud services that support it.
Dark Mode: No More Flash
Fixed the flash of light mode (FOUC) on app load. The app now correctly applies your theme preference before rendering. New installations also default to dark mode.
Improved Update Experience
The update dialog now renders release notes with proper markdown formatting, so you can read what's new without visiting GitHub.
Other Improvements
- Settings Overhaul: Reorganized with tabs and cleaner Field.Set/Legend/Group layout
- Mode-Specific Instructions: Recording screen shows helpful guidance based on your current mode
- Better Dialogs: Confirmation dialogs now show loading spinners during async operations
- CORS Fix: Custom transformation endpoints on desktop properly bypass CORS restrictions (thanks @thurstonsand!)
- Empty States: Standardized empty state UI across the app
Technical: transcribe-rs 0.2.1
Upgraded from transcribe-rs 0.1.5 to 0.2.1 with platform-specific feature flags. Thanks to @cjpais for maintaining transcribe-rs and adding Moonshine support!
# Windows: parakeet only
transcribe-rs = { version = "0.2.1", features = ["parakeet"] }
# macOS/Linux: all engines
transcribe-rs = { version = "0.2.1", features = ["whisper", "parakeet", "moonshine"] }What's Changed
Features
- feat(transcription): add Moonshine engine and upgrade transcribe-rs to 0.2 by @braden-w in #1157
- feat(transcription): add initial_prompt support for guided transcription by @braden-w in #1132
- feat(whispering): add auto-start on system login for all platforms by @braden-w in #1161
- feat(whispering): show mode-specific instructions by @braden-w in #1133
- feat: default to dark mode instead of system preference by @braden-w in #1134
- feat(ConfirmationDialog): overhauled ConfirmationDialog with loading spinner by @braden-w in #1138
- feat(UpdateDialog): improve update experience with markdown rendering by @braden-w in #1122
- feat(ui): add Empty component and standardize empty states by @braden-w in #1105
Bug Fixes
- fix(windows): remove whisper-cpp and Moonshine, resolving Vulkan crashes (#840, #829) by @braden-w in #1181, #1182
- fix: prevent dark mode FOUC on app load by @braden-w in #1168
- fix(whispering:transformations): bypass CORS for custom endpoints on desktop by @thurstonsand in #1118
- fix(tooltip): coordinate tooltips globally and adjust delay timing by @braden-w in #1110
- fix: resolve TypeScript strict mode violations and improve type safety by @braden-w in #1167
Improvements
- refactor(services): reorganize into desktop/isomorphic architecture with autostart by @braden-w in #1164
- refactor(settings): overhaul settings pages with Field.Set, tabs, and improved organization by @braden-w in #1123
- refactor(view-transitions): centralize with element-centric naming by @braden-w in #1126
Full Changelog: v7.9.0...v7.11.0
Questions? Join our Discord or check the README.
Love Whispering? Star us on GitHub to show your support!