# Every connection the app makes, listed in full.

Canonical page: https://flit.fyi/privacy

> Flit's complete privacy statement: no account, no telemetry, no server, and the network-monitor recipe to verify it yourself.

Last updated 17 September 2026

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

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

| Stage            | What runs                                                                     | Where                                |
| ---------------- | ----------------------------------------------------------------------------- | ------------------------------------ |
| Speech-to-text   | Flit’s own local speech models, or Apple’s built-in recognizer                | Your Mac                             |
| Smart formatting | A local formatting model, or Apple’s on-device model where macOS provides one | Your Mac                             |
| History          | A local database, plus audio files only if you opt in                         | `~/Library/Application Support/Flit` |

There is **no account, no telemetry, no analytics, and no crash reporter**, and no server ever sees your voice or your text. The design keeps all networking in three well-defined places, listed below in full.

## The only network calls Flit ever makes

1. **Model downloads you explicitly start** — clicking _Download_ in Settings fetches model files from `huggingface.co`. Apple’s own speech and formatting assets are fetched by macOS itself.
2. **License activation, once per Mac** — when you paste your license key, Flit sends `apps.fore.studio` the key, a SHA-256 hash of this Mac’s platform UUID (never the UUID itself), the Mac’s name, and the macOS and Flit versions, and receives a signed license file that it then verifies offline on every launch. While licensed it re-confirms the key and hash at most once every 7 days and fetches a signed list of revoked licenses. Nothing you dictate is part of any of this, and the trial makes no network call at all.
3. **The update check** — Sparkle asks, on first launch, whether Flit may check for updates. If you say yes it periodically fetches `statics.fore.studio/flit/updates/appcast.xml`, sending the installed version and macOS version so it can pick the right build. Say no and it never checks unless you choose _Check for Updates…_ from the menu yourself.

That is the whole list.

## 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](https://obdev.at/products/littlesnitch), 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 while dictating: **none**. Across a whole day you will see at most the three things above: the downloads you clicked, one license confirmation to `apps.fore.studio` (weekly at most, never during a dictation), and the update check to `statics.fore.studio` if you allowed it.

`Flit.app` can also be inspected statically: the binary links no analytics SDK (`otool -L Flit.app/Contents/MacOS/Flit` shows Apple’s system frameworks plus Sparkle, the open-source updater).

## Local data you control

- **Transcript history** — optional, capped, delete-all in Settings → History.
- **Audio history** — off by default; explicit opt-in with auto-delete policies.
- **Clipboard hygiene** — dictated text is marked transient (`org.nspasteboard.TransientType`), so clipboard managers don’t archive it.

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

## This website

flit.fyi is a static site set in your Mac's own typeface, so no font server is asked for anything. Google Analytics counts page views, downloads and checkout attempts so we know which pages are worth writing and whether the buy button works. Cloudflare, which serves the site, counts page views without a cookie, and Cloudflare Turnstile checks that the email signup form is being used by a person.

Google Analytics sets a cookie, `_ga`, so a second visit is recognized as the same browser rather than a new one. What it receives is a page address, a referring page, your approximate location from your IP address, and which links you clicked. Not your name, not your email, and nothing you type. Advertising storage and personalization stay switched off, so none of it feeds ad targeting anywhere.

Blocking it costs you nothing. Every part of the site works with the tag blocked, and none of this touches the app, which has no analytics of any kind: no telemetry, no crash reporting, no identifier, and nothing you dictate ever leaves your Mac.

## 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 checks your key with us about once a week, exactly as the statement above describes, and that check carries nothing you dictate.

## Updates by email

If you subscribe to Flit updates on this site, we email you a link to confirm it was you, and nothing else is sent unless you click it. Your address is then stored on our own server at apps.fore.studio and used for one thing: telling you about new versions and announcements. Buyers are added to the same list so they hear about updates to what they paid for. It is never shared or sold, no email tracks opens, and every email has a one-click unsubscribe link that removes you straight away.

## 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](https://fore.studio/?utm_source=flit). Last updated 17 September 2026. Changes are posted here with a new date, and the date above changes with them.
