A macOS menu bar app for local speech-to-text transcription powered by OpenAI Whisper and NVIDIA Parakeet.
Wispr runs entirely on-device — your audio never leaves your Mac.
- Hotkey-triggered dictation — press a shortcut to start/stop recording, transcribed text is inserted at the cursor
- Dual engine architecture — choose between OpenAI Whisper and NVIDIA Parakeet models through a unified interface
- Multiple models — Whisper Tiny (~75 MB) to Large v3 (~3 GB), Parakeet V3 (~400 MB), and Realtime 120M (~150 MB)
- Low-latency streaming — Parakeet Realtime 120M provides end-of-utterance detection for near-instant results (English)
- Model management — download, activate, switch, and delete models from a single UI
- Multi-language support — Whisper supports 90+ languages, Parakeet V3 supports 25 languages
- Menu bar native — lives in your menu bar, stays out of the way
- Onboarding flow — guided setup for permissions, model selection, and a test dictation
- Accessibility-first — full keyboard navigation, VoiceOver support, and high-contrast mode
| Model | Engine | Size | Streaming | Languages | Notes |
|---|---|---|---|---|---|
| Tiny | Whisper | ~75 MB | No | 90+ | Fastest, lower accuracy |
| Base | Whisper | ~140 MB | No | 90+ | Good balance for quick tasks |
| Small | Whisper | ~460 MB | No | 90+ | Solid general-purpose |
| Medium | Whisper | ~1.5 GB | No | 90+ | High accuracy |
| Large v3 | Whisper | ~3 GB | No | 90+ | Best Whisper accuracy |
| Parakeet V3 | Parakeet | ~400 MB | No | 25 | Fast, high accuracy, multilingual |
| Realtime 120M | Parakeet | ~150 MB | Yes | English | Low-latency with end-of-utterance detection |
brew tap sebsto/macos
brew install wisprRequires macOS 15.0+ and Xcode 16+
- Clone the repo
- Open
wispr.xcodeprojin Xcode - Build and run (⌘R)
- Follow the onboarding flow to grant permissions and download a model
Previously, Xcode 26.4 required a manual patch to FluidAudio's AsrManager
for Swift 6 concurrency compliance. This is no longer needed — FluidAudio
dropped its swift-transformers dependency (removing the version conflict with
WhisperKit) and resolved the concurrency issue in their latest release
(FluidInference/FluidAudio#448).
No workaround is required; the project builds cleanly on Xcode 26.4.
See also: argmaxinc/WhisperKit#451.
- macOS 15.0+
- Microphone permission
| Layer | Path | Description |
|---|---|---|
| Models | wispr/Models/ |
Data types — model info, permissions, app state, errors |
| Services | wispr/Services/ |
Core logic — audio engine, Whisper/Parakeet integration, hotkey monitoring, settings |
| UI | wispr/UI/ |
SwiftUI views — menu bar, recording overlay, settings, onboarding |
| Utilities | wispr/Utilities/ |
Logging, theming, SF Symbols, preview helpers |
The app uses a CompositeTranscriptionEngine that routes to the correct backend (WhisperService or ParakeetService) based on the selected model. Both engines conform to a shared TranscriptionEngine protocol, so switching between them is seamless.
This project is licensed under the Apache License 2.0. See LICENSE for details.