Privacy Policy
Last updated: September 28, 2026
The short version
Your voice and your words never leave your Mac. FreeFlow records, transcribes, and stores everything locally. The app has no telemetry, no analytics, no account, and no tracking of any kind. The only thing it can ever send about you is a feedback message you type and press Send on — see every network call below.
This website is a separate matter, and we would rather say so than let you find out. It counts page views — see This website below.
What stays on your Mac
Audio recordings, transcripts, dictation history, modes, dictionary entries, and settings all live in ~/Library/Application Support/FreeFlow/ as plain files you can read, back up, or delete at any time. Deleting a dictation in the app moves it to the Trash. A retention setting can trim history automatically — also to the Trash.
One exception to that folder: the optional read-aloud voice is cached by FluidAudio, the on-device speech library FreeFlow uses, under ~/.cache/fluidaudio/Models/ so other apps built on it can share the download. Deleting the voice under Models removes it.
The optional Claude Code integration is the one feature that reads and writes outside that folder, so here is exactly what it touches. Connecting adds one tagged entry to ~/.claude/settings.json (Claude Code’s own settings file) and keeps a copy of the original beside it as settings.json.bak-freeflow; disconnecting removes that entry again. While it is connected, Claude Code and FreeFlow pass small JSON files through ~/Library/Application Support/FreeFlow/agent/ — the question or command Claude is asking about, and the answer you give. Choosing Always on a permission card appends one rule to that project’s own .claude/settings.local.json, and the card shows you what the rule allows before you choose it. Nothing here leaves your Mac.
Turning on Incognito in Settings goes further: for as long as it is on, dictation still types into your app, but no audio and no transcript is written to disk, and the text is not left on your clipboard afterwards.
Every network call the app makes
FreeFlow connects to the network in exactly four situations:
- Model downloads — speech models, and the optional read-aloud voice, are fetched from Hugging Face (huggingface.co) when you install one, from the
argmaxincandFluidInferencerepositories; the files themselves may be served from Hugging Face’s own content-delivery hosts underhf.co, as any Hugging Face download is. No personal data is sent; it is a file download. - License activation — when you enter a license key, it is sent to Lemon Squeezy (our merchant of record) to activate this Mac, and revalidated at most every 14 days. Payment details are handled entirely by Lemon Squeezy; FreeFlow never sees them.
- Update check — the app fetches a small version file from freeflow.audio about once a day (and when you choose “Check for Updates”). Nothing about you is sent with it, and the daily check can be turned off in Settings. If you choose Install when a new version is offered, the app downloads that build from freeflow.audio, checks its signature, and replaces itself — again with nothing about you attached.
- Feedback — only when you open Send feedback, write something, and press Send. It carries your message, the app version, an email address if you chose to give one, a screenshot if you attached one, and the diagnostics report only while Include diagnostics is on — the same text that toggle shows you before you send (version, permission states, your microphone and model, and the last 50 lines of the app log). It arrives as an email to the maintainer, and your address is used only to reply. Never opening that window means nothing is ever sent.
That list is a policy, not a snapshot: if a future version adds a network call, this page changes in the same release. The Claude Code integration added in 1.6.0 is deliberately not on it: FreeFlow and Claude Code talk to each other through files on your own disk, with no server, no port and no connection of any kind. Nor is the WhatsApp link under Help: it opens a wa.me address in your browser, like any link, and nothing is sent unless you write. Nor is AI formatting (1.7.0): it runs on Apple’s on-device model through the Foundation Models framework, so your transcript is rewritten on your Mac and never sent anywhere.
This website
freeflow.audio serves static pages from Cloudflare. One thing counts visits, and it is not in the app.
- Google Analytics (measurement ID
G-5B0SX1VVX7) — only if you agree to it. Until you press Sure on the banner, the tag is loaded with storage denied: no cookies are set and no identifier is created. It does still send Google a cookieless ping for each page view — the page address, your browser’s user-agent string and, as with any web request, your IP address. If you accept, it sets two cookies,_gaand_ga_5B0SX1VVX7, both expiring after two years, holding a random identifier and session state. Google Analytics does not log or store IP addresses; addresses are used in passing to derive coarse location and then discarded, and EU traffic is handled on EU servers first. If you press No thanks, nothing is stored and the banner does not come back.
You can change your mind by clearing this site’s data in your browser, which brings the banner back.
The demos on the home page never touch your microphone. Holding ⌥, or pressing the on-screen key, plays sample sentences that are already written into the page, and the “race your own typing” test measures your speed inside the page itself. Nothing from either is stored or sent anywhere.
Purchases happen on Lemon Squeezy’s checkout, under their privacy policy.
Questions
Write to support@freeflow.audio.