I Didn’t Need a Paid Voice App on Mac. I Built Mac Whisper
Push-to-talk on the menu bar with on-device SFSpeechRecognizer, optional LLM typo fixes only, and Bluetooth headsets that stay on A2DP. Requires macOS 26+.
I used Wispr Flow for a year. The trial ended. Typing without voice felt slow, so instead of converting to paid, I built Mac Whisper.
Why
Wispr is pleasant, but voice input on Mac is largely UX on top of Apple’s SFSpeechRecognizer. The engine is already in the OS. I needed a thin wrapper, not another subscription.
What it is
A menu-bar push-to-talk app. Hold Fn, speak, text lands at the cursor with no extra window. Useful with Bluetooth headsets: many voice modes force HFP and drop audio to 16 kHz. Mac Whisper forces the built-in mic so the headset can stay on A2DP quality for playback.
How it works
SFSpeechRecognizer plus AVAudioEngine for live streaming recognition. On-device by default; audio does not leave for a remote ASR server.
Optional LLM post-processing can call OpenAI, Anthropic, or Gemini endpoints to fix homophones and technical mishears only. It does not rewrite or translate. If the call fails, the original transcript is inserted.
Accuracy has been higher than I expected, and latency is the part I notice most. I am curious what happens when on-device ASR is ported further with mlx-audio and tighter kernels.
Install
Download MacWhisper.dmg from GitHub Releases, or git clone → make app → open the app. Allow mic, speech recognition, input monitoring, and accessibility.
Limits: macOS 26 (Tahoe) and later only, because of the Liquid Glass HUD path. Onboarding is still rough; developers will survive it, and I will smooth it.
If your bottleneck is speaking faster than you type, try the open wrapper before another monthly voice bill.
Join the newsletter
Get insights on the latest AI.