open-wispr.com
Local, private voice dictation for macOS. Hold a key, speak, release — your words appear at the cursor.
Everything runs on-device. No audio or text ever leaves your machine.
Powered by whisper.cpp with Metal acceleration on Apple Silicon.
curl -fsSL https://raw.githubusercontent.com/human37/open-wispr/main/scripts/install.sh | bashThe script handles everything: installs via Homebrew, walks you through granting permissions, downloads the Whisper model, and starts the service. You'll see live feedback as each step completes.
A waveform icon appears in your menu bar when it's running.
The default hotkey is the Globe key (🌐, bottom-left). Hold it, speak, release.
Full installation guide — permissions walkthrough with screenshots, non-English macOS instructions, and troubleshooting.
curl -fsSL https://raw.githubusercontent.com/human37/open-wispr/main/scripts/uninstall.sh | bashThis stops the service, removes the formula, tap, config, models, app bundle, logs, and permissions.
Edit ~/.config/open-wispr/config.json:
{
"hotkey": { "keyCode": 63, "modifiers": [] },
"modelSize": "base.en",
"language": "en",
"spokenPunctuation": false,
"maxRecordings": 0,
"toggleMode": false
}Then restart: brew services restart open-wispr
| Option | Default | Values |
|---|---|---|
| hotkey | 63 |
Globe (63), Right Option (61), F5 (96), or any key code |
| modifiers | [] |
"cmd", "ctrl", "shift", "opt" — combine for chords |
| modelSize | "base.en" |
See model table below |
| language | "en" |
"auto" for auto-detect, or any ISO 639-1 code — e.g. it, fr, de, es |
| spokenPunctuation | false |
Say "comma", "period", etc. to insert punctuation instead of auto-punctuation |
| maxRecordings | 0 |
Optionally store past recordings locally as .wav files for re-transcribing from the tray menu. 0 = nothing stored (default). Set 1-100 to keep that many recent recordings. |
| toggleMode | false |
Press hotkey once to start recording, press again to stop. Default is hold-to-talk. |
Larger models are more accurate but slower and use more memory. The default base.en is a good balance for most users.
| Model | Size | Speed | Accuracy | Best for |
|---|---|---|---|---|
tiny.en |
75 MB | Fastest | Lower | Quick notes, short phrases |
base.en |
142 MB | Fast | Good | Most users (default) |
small.en |
466 MB | Moderate | Better | Longer dictation, technical terms |
medium.en |
1.5 GB | Slower | Great | Maximum accuracy, complex speech |
large-v3-turbo |
1.6 GB | Moderate | Great | Fast multilingual, near-large accuracy |
large |
3 GB | Slowest | Best | Multilingual, highest accuracy (M1 Pro+ recommended) |
Non-English languages: Models ending in
.enare English-only. To use another language, switch to the equivalent model without the.ensuffix (e.g.base.en→base) and set thelanguagefield to your language code. Multilingual models are slightly less accurate for English but support 99 languages.
If the Globe key opens the emoji picker: System Settings → Keyboard → "Press 🌐 key to" → "Do Nothing"
Click the waveform icon for status and options. Recent Recordings lists your last recordings; click one to re-transcribe and copy the result to the clipboard.
| State | Icon |
|---|---|
| Idle | Waveform outline |
| Recording | Bouncing waveform |
| Transcribing | Wave dots |
| Downloading model | Progress ring |
| Waiting for permission | Lock |
Click the menu bar icon to access Copy Last Dictation — recovers your most recent transcription if you dictated without a text field focused.
| open-wispr | VoiceInk | Wispr Flow | Superwhisper | Apple Dictation | |
|---|---|---|---|---|---|
| Price | Free | $39.99 | $15/mo | $8.49/mo | Free |
| Open source | MIT | GPLv3 | No | No | No |
| 100% on-device | Yes | Yes | No | Yes | Partial |
| Push-to-talk | Yes | Yes | Yes | Yes | No |
| AI features | No | AI assistant | AI rewriting | AI formatting | No |
| Account required | No | No | Yes | Yes | Apple ID |
open-wispr is completely local. Audio is recorded to a temp file, transcribed by whisper.cpp on your CPU/GPU, and the temp file is deleted. No network requests are made except to download the Whisper model on first run. Optionally, you can configure open-wispr to store a number of past recordings locally via the maxRecordings setting. Those recordings stay private and on your machine, and we default to not storing anything.
See what's planned and in progress on the public roadmap. Feature requests and ideas are welcome as issues.
git clone https://github.com/human37/open-wispr.git
cd open-wispr
brew install whisper-cpp
swift build -c release
.build/release/open-wispr startRunning bash scripts/dev.sh is the easiest way to configure, build, and launch a local development build in one step. It does the following:
- Reads your current config from
~/.config/open-wispr/config.jsonand shows the existing values as defaults. - Interactively prompts you to update every setting:
- Model size — choose from eight options (e.g.
tiny.en,base.en,small.en,medium.en, or the equivalent multilingual variants). - Language — ISO 639-1 code (e.g.
en,fr) orautofor auto-detect. - Spoken punctuation — whether saying "comma", "period", etc. inserts punctuation marks.
- Max recordings —
0= temp-only / nothing stored (privacy default);1–100= keep that many recent recordings locally for re-transcription. - Toggle mode —
false= hold-to-talk (default);true= press once to start, press again to stop. - Hotkey — enter a human-readable key name such as
fn,f5, or a chord likecmd+shift+r.
- Model size — choose from eight options (e.g.
- Writes the chosen settings to
~/.config/open-wispr/config.json. - Stops any running
open-wispr startprocess and the Homebrew-managed service. - Removes the Homebrew-installed
open-wisprformula (if present) so the locally-built binary takes precedence. - Installs
whisper-cppvia Homebrew if it is not already present. - Builds the Swift app from source in release mode (
swift build -c release). - Bundles the binary into
OpenWispr.appviascripts/bundle-app.sh. - Copies
OpenWispr.appto~/Applications/so macOS recognizes it for microphone / accessibility permission grants. - Launches
~/Applications/OpenWispr.app/Contents/MacOS/open-wispr start.
open-wispr is free and always will be. If you find it useful, you can leave a tip.
MIT