Yappy privacy model

The privacy page is the plain-language version. This one is component by component, for people who want to check.

Never leaves the machine

ComponentWhere it runsWhy it cannot leak
Microphone captureAVAudioEngine, in-processBuffers are handed straight to the local recogniser and released.
Speech recognitionwhisper.cpp, localThe model file is on disk; there is no network client in this path.
Screen contextApple Vision OCR, on-deviceThe screenshot is read into text and discarded; never written to disk.
Learned playbooksLocal files under ~/.yappyWritten and read by the app only.
Correction historyLocalUsed to bias the next transcription toward words you actually use.

There is no configuration in which audio is uploaded. Not on the free tier, not on the hosted plan.

Leaves the machine, by your choice

ComponentWhat is sentWhen
Cleanup with a hosted providerThe text of one transcriptOnly when llm.provider is a hosted option
Agent ModeTask text plus the screen-derived context to carry it outOnly when you hold Right ⌘
Update checkApp version, to fetch a signed appcastWhen autoUpdate is on
Usage analyticsFeature events, app and OS versionWhen shareUsageAnalytics is on
Send FeedbackWhat the dialog shows you before sendingOnly when you press send

Set llm.provider to ollama and turn Agent Mode off, and nothing in the dictation path touches the network.

What analytics never contains

Transcripts, audio, screen contents, filenames, window titles, prompts, and clipboard contents are all excluded at the point of capture, not filtered later. The events are things like "dictation completed", "agent task started", app version, and macOS version.

Verifying it yourself

You do not have to take our word for the local claims:

  1. Turn Wi-Fi off.
  2. Set llm.provider to ollama (or turn AI Cleanup off entirely).
  3. Dictate.

The text still appears. Whisper, cleanup, and OCR are all running on your Mac. Little Snitch or nettop will show you the same thing with the network on.

macOS permissions

PermissionNeeded forIf denied
MicrophoneAny dictationDictation is unavailable; everything else works
AccessibilityGlobal hotkey and inserting textThe key does nothing; grant and relaunch
Screen RecordingScreen context onlyScreen context silently stays off

Each is revocable in System Settings → Privacy & Security and takes effect immediately. Yappy degrades to the features that permission is not needed for rather than nagging.

Retention

Yappy keeps no transcripts server-side, because it sends none. Local correction history lives on your machine and is deleted with the app. Analytics events are retained by PostHog under the project's retention window and carry no content.

Reading this as an agent? The same page in markdown: /docs/privacy-model.md · machine index: /llms.txt · API: /openapi.json · MCP: https://yappy.biz/mcp