"Runs locally" and "on-device" have become marketing words as much as technical ones, and they get stretched to cover very different architectures. A tool can transcribe your speech entirely on your Mac and still ship your resulting text to a cloud API for formatting. Another can be "offline-capable" as an option you have to find and enable, while shipping cloud-first by default. Neither is dishonest exactly, but neither is what most people picture when they read "private." Here's how to tell the difference — a checklist you can run against any dictation app, including ours.
Check one: does audio ever leave the device?
This is the question that matters most, because raw audio is the most sensitive thing a dictation tool touches — it can contain far more than the words you meant to send, including whatever else was said in the room. Ask directly: is there any setting, even an opt-in one, that transmits audio? In OpenVoiceFlow the answer is architectural, not a toggle: audio is captured into memory only while you hold the hotkey, at 16 kHz mono, is never written to disk, and is discarded the instant text exists. There is no code path that sends it anywhere, cloud backend or not — because speech recognition itself happens on-device via WhisperKit.
Check two: what actually gets written to disk?
Local storage matters too — a file sitting in your Application Support folder is still a record, even if it never crosses the network. Good practice is a short, enumerable list, not "various app data." OpenVoiceFlow's disk footprint lives entirely under your own account, in ~/Library/Application Support/OpenVoiceFlow/: settings, your personal dictionary, snippets, per-app styles, your Know-Me profile, and a rolling history of the most recent 500 transcripts plus usage stats. Speech models cache separately at ~/Documents/huggingface/models/. API keys, when you add one, live in the macOS Keychain — never in a plain file. Nothing here is unusual to have on disk; the point is that it's all named, local, and inspectable.
Check three: what actually goes over the network, and when?
This is where "on-device" claims most often turn out to be partial. The honest version of this check is a request-by-request table, not a paragraph of reassurance. OpenVoiceFlow makes exactly three kinds of outbound request: a one-time model download the first time you pick a given Whisper size (a public file fetch, nothing about you in it), a daily update check against a signed appcast if automatic updates are on, and a cleanup request per dictation — but only if you've turned on a cloud AI backend, and even then it carries transcript text and your dictionary/profile context, never audio. Set cleanup to None or to a local Ollama backend, and that third row simply never fires. Turn off automatic updates and the second stops too. Two settings away from zero dictation-related network traffic.
Check four: what runs regardless of your settings?
The trickiest privacy leaks are the ones that aren't a feature you'd think to check — background telemetry, crash reporters, usage pings that fire whether or not you opted into "cloud" anything. Ask specifically: is there an SDK phoning home in the background, independent of the settings you configured? The app itself ships with none: no telemetry, no crash reports, no feature counters, and no account to sign up for, which also means there's no account to correlate your usage against. (This website, openvoiceflow.com, separately uses privacy-friendly, cookie-free analytics for page views — a website measurement question, entirely apart from what the app does.)
Verifying it yourself instead of taking our word for it
Every claim above is checkable, and you don't need to trust a blog post to confirm it:
- Airplane mode. Turn off Wi-Fi with cleanup set to None and dictate normally. It works, because nothing in that path needs a network — that's the fastest gut check there is.
- A network monitor. Run Little Snitch or an equivalent and watch connections while you dictate. With cleanup off, you should see nothing at all.
- The source. OpenVoiceFlow is MIT-licensed and open source specifically so the audio-handling and network code aren't a black box — anyone can read the exact path from microphone to cursor.
Run the same three checks against any tool claiming to be private, ours included. A claim that survives a network monitor is worth more than a claim that only survives a privacy policy.
FAQ
What does "on-device dictation" actually mean?
At minimum, that speech recognition runs entirely on your machine with no audio sent anywhere. It doesn't automatically mean the whole app is offline — many tools still send the resulting text to the cloud for cleanup.
Can you verify privacy claims yourself?
Yes: try airplane mode, watch a network monitor while dictating, and for open-source tools, read the code that handles audio and text directly.
Does OpenVoiceFlow ever send audio anywhere?
No — audio stays in memory, is never written to disk, and there's no code path that transmits it. Transcription happens on-device.
Does it send text to the cloud?
Only if you enable a cloud cleanup backend, and then just the transcript and instructions — never audio. Set cleanup to None or to local Ollama and no such request happens.
Check it against the source, not the sales page
OpenVoiceFlow is free and MIT-licensed. Read the privacy architecture in full, or install it and watch your own network monitor stay quiet.