Skip to content

asmit203/open-wispr

 
 

Repository files navigation

open-wispr logo

open-wispr

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.

Install

curl -fsSL https://raw.githubusercontent.com/human37/open-wispr/main/scripts/install.sh | bash

The 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.

Uninstall

curl -fsSL https://raw.githubusercontent.com/human37/open-wispr/main/scripts/uninstall.sh | bash

This stops the service, removes the formula, tap, config, models, app bundle, logs, and permissions.

Configuration

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.

Models

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 .en are English-only. To use another language, switch to the equivalent model without the .en suffix (e.g. base.enbase) and set the language field 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"

Menu bar

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.

Compare

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

Privacy

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.

Roadmap

See what's planned and in progress on the public roadmap. Feature requests and ideas are welcome as issues.

Build from source

git clone https://github.com/human37/open-wispr.git
cd open-wispr
brew install whisper-cpp
swift build -c release
.build/release/open-wispr start

scripts/dev.sh — interactive dev build

Running bash scripts/dev.sh is the easiest way to configure, build, and launch a local development build in one step. It does the following:

  1. Reads your current config from ~/.config/open-wispr/config.json and shows the existing values as defaults.
  2. 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) or auto for auto-detect.
    • Spoken punctuation — whether saying "comma", "period", etc. inserts punctuation marks.
    • Max recordings0 = temp-only / nothing stored (privacy default); 1–100 = keep that many recent recordings locally for re-transcription.
    • Toggle modefalse = 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 like cmd+shift+r.
  3. Writes the chosen settings to ~/.config/open-wispr/config.json.
  4. Stops any running open-wispr start process and the Homebrew-managed service.
  5. Removes the Homebrew-installed open-wispr formula (if present) so the locally-built binary takes precedence.
  6. Installs whisper-cpp via Homebrew if it is not already present.
  7. Builds the Swift app from source in release mode (swift build -c release).
  8. Bundles the binary into OpenWispr.app via scripts/bundle-app.sh.
  9. Copies OpenWispr.app to ~/Applications/ so macOS recognizes it for microphone / accessibility permission grants.
  10. Launches ~/Applications/OpenWispr.app/Contents/MacOS/open-wispr start.

Support

open-wispr is free and always will be. If you find it useful, you can leave a tip.

License

MIT

About

Push-to-talk voice dictation for macOS using Whisper

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Swift 59.1%
  • HTML 21.7%
  • Shell 18.6%
  • Ruby 0.6%