Privacy & Permissions
Last updated: September 7, 2026 · Applies to ListenIn for Mac v0.1+
A dictation app hears the most sensitive thing you own — your unfiltered voice.
So instead of a wall of legalese, here is exactly what moves where, and why.
Your audio
- Audio never touches our servers — or Apple's. Speech-to-text runs on Apple's engines with on-device recognition forced on, so even the classic path can't fall back to Apple's speech service. The cost is stated plainly: on macOS 14–15, if the dictation language isn't downloaded (System Settings › Keyboard › Dictation Languages), recognition fails rather than quietly going to the cloud.
- Crash recovery is local. During an active dictation, ListenIn writes a temporary audio copy and rolling raw-transcript journal to Application Support on your Mac. A normal finish or cancellation deletes that draft. After an interruption, recovery audio stays local; on launch, ListenIn prunes recovered recordings to the five newest.
- ListenIn never uses audio for training. Our cleanup server doesn't receive it.
Your text
- When AI cleanup is on, the recognized text — plus optional personal-dictionary terms, recent text context, and cleanup settings — is sent over HTTPS to our cleanup API, which forwards it to an AI provider — DeepSeek primarily, with Anthropic and Google as fallbacks — under their respective API terms. No audio is included.
- So that your corrections stick, the same request may also carry word-level data only: corrections you made by hand, as heard → meant pairs (e.g. "gethub → GitHub"), and frequently used terms learned from your own history. Single words, never sentences, never past transcripts.
- We don't store your transcripts. Our server keeps only anonymous word-count totals for quota (see below). No transcript database exists.
- Bring your own models: add any OpenAI-compatible or Anthropic API in Settings (local Ollama included) and your text goes directly from your Mac to that provider — our servers are bypassed entirely.
- Dictation history and your personal dictionary live only on your Mac. Delete them anytime from the app.
Identifiers & payments
- Free-tier and trial quotas are keyed to a random anonymous device ID — no account, no email, no name.
- Payments are processed by Polar as merchant of record. We never see your card details. Your license key is validated against Polar to unlock Pro.
- The website loads Google Tag Manager on every page, for advertising measurement. Google receives your IP address and the page you are on; tags configured inside the container may set cookies. The app itself is unaffected — nothing on this list changes because of it.
Anonymous activation events
- To see where new users get stuck — and nothing else — the app reports a handful of one-time yes/no events tied to the anonymous device ID: first launch, first successful dictation, whether the microphone and Accessibility permissions went through or hit a wall, whether the fn-key conflict appeared, and whether the welcome guide was finished.
- Each event is a single boolean, sent at most once per device, ever. This is not a behavior stream, and it cannot contain audio, transcripts, word counts, timings, or anything you said.
- In offline mode the app sends none of this — not a byte.
- Our own counter records page views and download clicks by path and date only — no cookies, no visitor IDs, no fingerprinting. It runs alongside Google Tag Manager, not through it.
macOS permissions, explained
| Permission | What it's for | What it's not |
| Microphone | Hearing you while you hold the trigger key. | Never records in the background; capture runs only during a dictation. |
| Speech Recognition | Apple's engine turns your speech into text. | — |
| Accessibility | Catching your trigger key (fn by default) system-wide, pasting cleaned text at your cursor, and — for a short window after each dictation — re-reading the text it just inserted so it can learn your corrections. | Only the trigger key is acted on — doesn't log keys, doesn't read other windows, doesn't watch your screen outside that window. Not a keylogger. |
Updates & crash reports
- Auto-updates use Sparkle with signed releases hosted on GitHub; the updater checks a public feed and never sends personal data.
- When the app crashes, a crash report goes to Sentry, scrubbed of all text content before it leaves your Mac — no transcripts, no clipboard, no field contents, no interaction breadcrumbs. A report contains the technical stack trace, app version, and macOS version: enough to tell us where it broke, and nothing you said or typed.
Questions
Ask anything, publicly or privately: GitHub support. If this page and the app ever disagree, the app's actual behavior is a bug — tell us and we'll fix it.