Local voice-to-text that lives in your macOS menubar. No API key, no cloud, completely free.
Hold Ctrl+Shift+R → speak → release → text is pasted wherever your cursor is.
brew install ffmpegDon't have Homebrew? Install it first: https://brew.sh
git clone https://github.com/vbiff/whisper_app.git
cd whisper_apppip3 install -r requirements.txtmkdir -p ~/.cache/whispercurl -L "https://openaipublic.azureedge.net/main/whisper/models/345ae4da62f9b3d59415adc60127b97c714f32e89e936602e85993674d08dcb1/medium.pt" -o ~/.cache/whisper/medium.ptFirst run will download the Whisper model (~145MB). This takes a minute.
Double-click WhisperBar.command in Finder.
Or from terminal:
python3 whisper_menubar.pyA 🎤 icon will appear in your menubar (top-right corner).
| Action | Result |
|---|---|
| Hold Ctrl+Shift+R | 🔴 starts recording |
| Release Ctrl+Shift+R | ⏳ transcribes → pastes text |
| Click 🎤 → Quit | stops the app |
Works in any app — terminal, browser, text editor, Slack, etc.
Language: auto-detected (Russian, English, or any language).
Run once to make WhisperBar launch automatically when you log in:
bash install_autostart.shThat's it. WhisperBar will start silently in the background every time you turn on your Mac.
To disable:
launchctl unload ~/Library/LaunchAgents/com.whisperbar.launch.plistOn first run, macOS may ask for two permissions:
- Microphone — needed to record your voice
- Accessibility — needed to paste text (Cmd+V simulation)
Go to: System Settings → Privacy & Security and enable both for Terminal (or your Python).
Edit MODEL_SIZE in whisper_menubar.py to trade speed for accuracy:
| Model | Size | Speed | Accuracy |
|---|---|---|---|
tiny |
~75MB | fast | ok |
base |
~145MB | fast | good ✅ |
small |
~465MB | medium | better |
medium |
~1.5GB | slow | great |
large |
~3GB | slow | best |
Default is base — good enough for most use cases.
- macOS
- Python 3.8+
- ffmpeg (
brew install ffmpeg)
MIT