Offline dictation on Mac: what stays on your machine, and how to check
YappYapp does offline dictation on your Mac: the speech model runs on your own machine, and your voice and your transcripts are never sent anywhere. The app does go online in a few narrow cases (downloading a model you picked, checking for updates), and this post lists every one of them, with a test you can run in two minutes to see it for yourself.
If you want the wider picture of dictating without a connection, including which models to pick, start with the offline dictation on Mac guide.
Why dictation is worth keeping local
Think about what you actually say to a dictation app. Emails to clients. Half-formed ideas. The message you rewrote three times. Dictation hears your thoughts before you have had a chance to edit them.
Most dictation apps record your voice, send it to a company's servers, turn it into text there and send the text back. The company promises to be careful with it, and you have to take its word for it. YappYapp works the other way round: the recording and the text both stay on your Mac, and you do not have to take anyone's word for it, because you can watch the network yourself.
What stays on your Mac
- The recording. Your microphone audio goes to a temporary file on your Mac, which is deleted after the transcription finishes, fails or is cancelled.
- The transcription. The speech engines (Whisper, Parakeet and Qwen3-ASR) all run on your Mac. Some of them run as a small helper process that only listens on
127., your Mac's own internal address, behind a random port and path. Other computers on your network cannot reach it.0. 0. 1 - The text. The app keeps the last 10 transcripts in memory so you can copy them again. That history is cleared when you quit and is never written to disk.
- Cleanup and translation. The optional filler-word cleanup and translation also run locally, on the same kind of loopback helper.
- Password fields. When a password box or any other secure input is active, YappYapp does not type there, and it tells you which app is holding secure input. That is macOS secure keyboard entry at work, described in Apple's technote on secure input.
Every network call the app makes
This table comes from the app's source code and its README. These are all the connections YappYapp opens.
| What | When | What is sent | How to turn it off |
|---|---|---|---|
| Update check | Once a day, in the app installed from the DMG, or when you press CHECK NOW | A request for the update feed on raw. (the yappyapp-releases repository). It carries version numbers, nothing about you or your dictations | In Setup, switch off CHECK FOR UPDATES DAILY. Builds compiled from source never check |
| Update download | Only when you accept an update | A download of the new DMG from github.. Its signature is verified before it installs | Decline the update |
| Speech model download (Whisper, Parakeet, Qwen3-ASR) | Only when you pick a model that is not installed yet | A request for the model files at a fixed version on huggingface.. For Parakeet, the app first asks for the list of files. Every file is checked against a known checksum | In Setup, switch off ALLOW MODEL DOWNLOADS |
| Cleanup model download (optional) | Only when you turn on model cleanup, and only if the bundled llama.cpp runtime is present | A request for one pinned model file on huggingface., checksum-verified | Same switch: ALLOW MODEL DOWNLOADS |
| Translation model download (optional) | Only when you pick a translation model | A request for one pinned model file on huggingface., checksum-verified | Same switch: ALLOW MODEL DOWNLOADS |
Two things are deliberately missing from that table. The YOUTUBE and LINKEDIN buttons under Setup > HELP open a page in your browser when you click them; the app itself never contacts those sites. And there is no analytics, no crash reporting and no account inside the app.
On a managed Mac, an administrator can force both switches off with a configuration profile, so a team can ship models preinstalled and keep the app off the network entirely. The guide to dictation for confidential work covers that setup.
The check that runs before every release
The rule is enforced by a script in the public repository, run in continuous integration and in release verification. It fails the build if the app's code contains a web address that is not on a short approved list (the model downloads, the local helpers and the two help links), if networking code shows up outside the model downloaders and the local helpers, or if a local helper is not pinned to 127.. Anyone can read that script and the rest of the code at github.
Test it yourself with Wi-Fi off
You need two minutes and a model that is already installed.
- Open YappYapp and check in the MODELS tab that your speech model is installed.
- Turn off Wi-Fi from the menu bar, and unplug the Ethernet cable if you use one.
- Open TextEdit or Notes, click into a document, press your dictation shortcut and say a full sentence.
- Release the key. The text appears as usual.
If you use cleanup or translation, try them too: once their models are installed, they work without a connection as well. The only things that fail offline are the ones in the table above: CHECK NOW cannot reach the update server, and a model you have not downloaded yet cannot be downloaded.
Watch it with a firewall like LuLu or Little Snitch
The Wi-Fi test shows that dictation does not need the internet. A firewall that asks before each new connection shows what the app does while you are online. Two common choices on Mac are LuLu, which is free, and Little Snitch.
Install one, then use YappYapp normally for a day. Here is what you should see:
- While you dictate: no outgoing connection from YappYapp. If your firewall also shows local traffic, you may see the app's helper processes talking to
127.. That address is your own Mac, and the traffic never leaves it.0. 0. 1 - Once a day, if update checks are on: one request to
raw.. Deny it, or switch off the daily check in Setup, and the app keeps working.githubusercontent. com - When you download a model: a connection to
huggingface., which may hand the file over to its own download servers.co - When you accept an update: a connection to
github.for the new DMG.com
With ALLOW MODEL DOWNLOADS and CHECK FOR UPDATES DAILY both off, the firewall should stay silent. If you ever see anything else, that is a bug, and the project's security policy is the place to report it privately.
What local costs you
Running everything on your own Mac has costs. The voice models take up disk space, and you choose how much, from small to large. YappYapp needs a Mac with Apple Silicon and macOS 14 or newer, and the newest chips feel faster than older ones. The optional cleanup adds a short wait after each dictation because it runs on your machine too.
For this website, which is a separate thing from the app, the privacy page explains what is and is not collected.
FAQ
Does YappYapp work without an internet connection?
Yes, once a speech model is installed. Dictation, cleanup and translation all run on your Mac. You only need a connection to download a model or an update.
Does YappYapp send my voice or my text anywhere?
No. The recording is deleted after transcription, the last 10 transcripts live in memory until you quit, and none of it is part of any network request the app makes.
Can I block every connection and still use the app?
Yes. Install the models you want, then switch off ALLOW MODEL DOWNLOADS and CHECK FOR UPDATES DAILY in Setup. You can also deny the app in your firewall; dictation keeps working.
Where do I get it?
Download YappYapp, then follow the setup guide. The pets are explained in the post about the cat.