The same document that ships in the app

Flit privacy: verify it yourself

Claim: your audio and your text never leave your Mac. Ever.

Flit records your voice, transcribes it, and cleans it up entirely on-device:

StageWhat runsWhere
Speech-to-textNVIDIA Parakeet (CoreML on the Neural Engine), Apple Speech Analyzer, or whisper.cppYour Mac
Smart formattingApple Intelligence (Foundation Models) or Qwen3 1.7B via MLXYour Mac
HistorySQLite-backed store + optional audio files~/Library/Application Support/Flit

There is no account, no telemetry, no analytics, no crash reporter, and no server. The privacy guarantees are enforced with comments at every network-capable code path, and the design keeps all networking in two user-initiated places.

The only network calls Flit ever makes

  1. Model downloads you explicitly start — clicking Download in Settings fetches model weights from huggingface.co (Parakeet, Whisper, Qwen3). Apple Speech and Apple Intelligence assets are fetched by macOS itself.
  2. That’s it. There is no second thing.

Developer Mode

When you dictate into a code editor or terminal, Flit reads the focused window’s document path through the macOS Accessibility API (the same permission it already uses to paste), finds the project root, and indexes the project’s file and directory names so spoken identifiers are spelled correctly. The index lives in memory only — it is never written to disk, never included in history, and never sent anywhere. File contents are not read. Turn it off in Settings → Formatting.

Context-aware formatting

Off by default. When you turn it on (Settings → Formatting), Flit reads the dictation target’s focused text field and the text visible in its window through the macOS Accessibility API — the same permission it already uses to paste — so the formatter can spell names the way the conversation spells them and continue an unfinished sentence naturally. This capture lives in memory for exactly one dictation: it feeds the local formatting model only, is never written to disk or history, and never sent anywhere. Password/secure fields abort the capture entirely.

Edit selection by voice

This one also reads the screen, so it belongs in the same list. Off by default. When you turn “Edit selection by voice” on (Settings → Formatting), a dictation that both sits over a selection and sounds like an instruction — “make this shorter” — sends that selected text to the local formatting model so it can be rewritten in place. The selection is read through the Accessibility API, used for that one rewrite, and discarded; it is never written to disk or history and never leaves the Mac. Nothing is read when there is no selection, and a dictation that does not look like an instruction is inserted as ordinary text instead. Turn it off in Settings → Formatting.

Both are off when you install Flit, so out of the box it reads no text from your screen at all. The only thing it looks at either way is the focused element’s role — enough to tell a search box from a document, so a dictated query lands as search terms instead of a sentence. That check reads no text, and there is no setting to turn off because there is nothing to opt out of.

Learning from your corrections

A few seconds after a paste — and only if you are still in the same app — Flit reads the focused field once through the Accessibility API and compares it with what it inserted. The comparison happens in memory and the field text is discarded immediately. What is kept, locally: repeated word corrections (the written and corrected spellings) and per-app style counters (for example “dropped the trailing period in WhatsApp, 3 times” — a bundle ID, a category, and a number; never your text). Both only ever become suggestions in Settings with Add/Dismiss buttons — Flit never changes your dictionary or your app styles on its own. Password/secure fields are never readable this way.

Verify with a network monitor

Using Little Snitch, LuLu, or Proxyman:

  1. Install your models first (Settings → Models / Formatting → Download).
  2. Start the network monitor and filter by process Flit.
  3. Dictate anything, anywhere, as much as you like.
  4. Observed connections: none. The process makes zero outbound requests outside the downloads you clicked.

Flit.app can also be inspected statically: the binary links no analytics SDK (otool -L Flit.app/Contents/MacOS/Flit shows only Apple system frameworks).

Local data you control

Questions or a hole in the claim? Open an issue — we treat privacy reports as P0.

This website

flit.fyi is a static site. It sets no cookies, runs no analytics, loads no third party scripts, and self-hosts its fonts, so visiting it tells us nothing about you. There is no consent banner because there is nothing to consent to.

Purchases

Payment is handled by Paddle, our merchant of record, which processes your card and billing details under its own privacy policy. What we receive is your name, email and receipt, kept as the record that your license exists and so we can resend a key if you lose it. We never see card numbers. The app itself never contacts us to validate a license.

Your rights

Under the GDPR and similar laws you can ask what we hold about you, have it corrected or deleted, and complain to your local data protection authority. Since the complete answer is at most a name, an email and a receipt, requests to hi@flit.fyi are handled quickly.

Who is responsible

Flit and this site are operated by Fore Studio. Effective August 2026; changes are posted here with a new date.