We make one of these, so read this with that in mind. What follows is the comparison we'd want if we were choosing: what actually runs on your Mac, what leaves it, what it costs, and which app to pick when it isn't ours.
Both offer local transcription without an account. Plainsay provides a free signed app; VoiceInk can be built free from source, while its official signed build is a one-time purchase. Apple's Dictation can also process on-device, depending on its settings.
It's the incumbent, and it shows in the details. The trade is explicit in their own docs: transcription always happens in the cloud, and it's $15/month.
Already installed and free. Check Keyboard settings: Apple says general text Dictation may be processed on-device, or sent to its servers, depending on the configuration. Apple's Dictation guide
Prices and features change; each figure below is from that product's own documentation at the time of writing. The linked pages go into each comparison properly.
| Plainsay | Wispr Flow | superwhisper | VoiceInk | Apple Dictation | |
|---|---|---|---|---|---|
| Price | Local is free and unmetered. Optional Cloud is 12 PLN/month or 120 PLN/year, with 900 transcription minutes per rolling 30 days. | $15/mo, or $12/mo billed annually. Limited free tier. | Free tier. Pro: $8.49/month, $84.99/year, or $249.99 once. Official pricing | Free self-build from GPL source; official signed build and support cost $29–$69 once. | Free, built in. |
| Transcription | Local: Whisper or Parakeet on your Mac. Cloud: optional hosted transcription. | Cloud only — "transcription always happens in the cloud". | On-device and cloud models. Its catalog labels three on-device Whisper models as Free, while its Pro table lists local voice models only under Pro. Model catalog · Pro table | On your Mac — whisper.cpp, Parakeet and others. | Configuration-dependent: general text Dictation may run on-device; otherwise audio and transcripts are sent to Apple servers. Apple privacy notice |
| Source code | MIT-licensed Mac client, public; optional Cloud backend is separate and closed. | Closed. | Proprietary; its terms prohibit extracting source code. Official terms | GPL-3.0, public. | Closed. |
| Account required | No — only for the optional cloud tier. | Yes. | The official guide documents license-key activation for Pro; a basic-tier account requirement is not specified there. Official guide | No. | No. |
| Custom vocabulary | Yes — names and jargon you add. | Yes. | Yes, on Pro. Official Pro table | Yes. | None documented. |
| Cleanup / formatting pass | Optional, your key or ours, or off. | Yes, cloud. | Yes, on Pro — cloud and on-device language models; local post-processing is documented on macOS. Official data-flow guide | Yes, cloud and local (Ollama). | Auto-punctuation only. |
| Platforms | macOS 14+, Apple silicon. | macOS, Windows, iOS, Android. | macOS, Windows, iOS. Official downloads | macOS 14.4+, iOS. | macOS, iOS and more. |
Detailed, sourced write-ups: vs Wispr Flow · vs superwhisper · vs VoiceInk · vs Apple Dictation
Genuinely — these are the cases where we'd point you elsewhere.
You need Windows, Android, or an Intel Mac. Plainsay is Apple silicon only. Wispr Flow covers the most platforms. (A Windows port is in progress, but it isn't shipped.)
You want a first-class local cleanup integration. VoiceInk supports Ollama directly. Plainsay can keep Polishing local through a compatible custom endpoint, or leave it off, but it does not have a dedicated Ollama setup flow.
You want to pay once and never think about it. VoiceInk's one-time purchase is a fair model and avoids depending on whether we keep the servers running.
Apple's Dictation already does what you need. It's free and built in. Its Keyboard settings indicate whether general text Dictation is processed on-device or sent to Apple's servers. We wrote a whole page on when it's genuinely enough.
Local-mode dictation where recorded audio stays on your Mac, the Mac client code is readable, and there's no account or subscription in the way. Hold a key, speak, release — Plainsay attempts to insert the result in the active app and leaves it on the clipboard as a fallback.