Learn FreeFlow in 15 minutes
FreeFlow turns your voice into text in any app on your Mac. Hold a key, talk, let go, and your words appear wherever you were typing. This page lets you try every feature in your browser before you install anything.
Transcription runs on your Mac with Apple's speech engine. No subscription.
Add one key and Claude cleans up what you said, for about $0.0002 a dictation.
Mail, Slack, docs, your code editor, a browser. If you can type there, you can talk there.
Live transcripts of calls and lectures, with a summary and your to-dos at the end.
How this tutorial works
Most lessons have a small pretend Mac. On a real Mac you'll use the fn key (it may show a 🌐 globe). Browsers can't see that key, so here you hold F instead. control, option, space and esc are the real keys. On a phone or tablet, press and hold the on-screen keys.
- Press and hold F (or the on-screen fn key above) to check that it works
Nothing here listens to you. The "speech" in this tutorial is scripted, and nothing you do is sent anywhere. Your progress is saved in this browser only.
Install FreeFlow
FreeFlow is built from source on your Mac. It takes about five minutes. You can also skip ahead and finish the tutorial in your browser first.
What you need
- A Mac running macOS 26 or later
- Xcode 26, free from the Mac App Store. Open it once after installing so it can finish setting up.
- An Anthropic API key from console.anthropic.com, for the Claude features. Plain dictation works without one.
1. Get the code
Open the ZIP in Finder to unpack it. Then open Terminal (in Applications → Utilities) and run:
cd ~/Downloads/FreeFlow-maingit clone https://github.com/brian-stockwell/FreeFlow.git
cd FreeFlow2. Build and launch
scripts/build.sh --runThis builds the app, signs it, installs it to the Applications folder in your home folder and opens it. A waveform icon appears in your menu bar. FreeFlow lives there, not in the Dock.
Tip: the build signs FreeFlow with your Apple Development certificate if you have one. That way macOS remembers your permissions when you update. To get one, open Xcode → Settings → Accounts, add your Apple ID, then choose Manage Certificates → + → Apple Development. A free Apple ID works. Without a certificate FreeFlow still runs, but macOS asks for its permissions again after every rebuild.
3. Finish setup
On first launch FreeFlow opens Settings. Work down the Setup section until every row has a green check:
| Row | What to do | Why |
|---|---|---|
| Microphone | Click Allow | So it can hear you |
| Accessibility | Open System Settings and switch FreeFlow on | For the hotkeys, and to paste into the right text field |
| Input Monitoring | Open System Settings and switch FreeFlow on | To notice when you press fn |
| Speech model | Click Download | Apple's on-device model for your language |
| Claude API key | Paste it, then click Test key | Stored in your Mac's Keychain, never in plain text |
Coming from Wispr Flow? FreeFlow imports your Wispr dictionary, snippets, writing styles and email signature the first time it starts.
- FreeFlow is built and its waveform icon is in my menu bar (click to check off)
- Every row in Settings → Setup is green (click to check off)
Your first dictation
Click into any text field, hold fn, say something and let go. FreeFlow pastes exactly what it heard.
Plain fn uses Apple's speech recognition on your Mac, so it's free, private and quick. It types every word you say, though, including the ums. Lesson 4 fixes that.
- Hold F (your stand-in for fn) until the sentence finishes, then let go
- Tap F quickly. Nothing is pasted, because FreeFlow ignores accidental taps.
Watch the bottom of the screen. That dark pill is the Flow Bar. It grows while FreeFlow listens and shows the words it's hearing.
Let Claude clean it up
Hold fn + control instead, and FreeFlow sends the transcript to Claude before pasting.
Claude removes fillers and stutters, fixes grammar and punctuation, writes numbers the way you'd type them and turns spoken lists into real lists. It keeps your words and your voice. It doesn't rewrite you.
- Hold control + F and let the sentence finish
- Pick "coffee at two, actually three" and dictate it with control. Only your correction is kept.
- Pick "first, second, third" and dictate it with control to get a numbered list
- Start with F alone, then tap control while you're still talking
Changed your mind mid-sentence? Say "actually", "no wait", "scratch that" or just restate it. FreeFlow keeps only the corrected version. "I actually loved it" stays as it is.
Never lose a dictation. If Claude can't be reached, FreeFlow pastes the plain transcript instead and tells you.
It knows where you're typing
FreeFlow checks which app you're in, and in a browser which website, then formats your words to fit.
Emails get a greeting and a sign-off. Chat messages stay short. It also reads the text around your cursor and names on screen, so it can continue your sentence and spell the people you're writing to correctly. Use the Dock to switch apps.
- Dictate the message into Mail with control + F
- Switch to Slack or Messages in the Dock and dictate the same thing
The categories
| Category | For example |
|---|---|
| Mail, Outlook, Superhuman, Gmail and other webmail | |
| Work messages | Slack, Teams, Discord, Linear, Notion |
| Personal messages | Messages, WhatsApp, Telegram, Signal |
| AI prompts | Claude, ChatGPT, Cursor, VS Code, Terminal |
| Documents | Word, Pages, Notes, Obsidian, Google Docs |
| Other | Everything else |
If an app lands in the wrong category, you can move it on FreeFlow's Style page.
Pick a writing style
Each category has its own tone, set on FreeFlow's Style page. Change one below and watch the same sentence change.
You said: "sounds good see you at three tomorrow"
- Change any category's style
The Style page also has your email signature, which FreeFlow uses when it signs off an email, and a cleanup level. Light, the default, removes fillers and fixes grammar. Medium also tightens wordy sentences. None just punctuates.
Hands-free and cancel
For longer thoughts you don't have to keep holding the key. FreeFlow keeps listening until you tap fn again.
Start hands-free with fn + space, or double-tap fn. Press esc at any point to throw a recording away.
- Hold F, press space, let go of both and keep "talking". Tap F when you're done.
- Double-tap F (or the on-screen fn key) to start hands-free, then tap it again to finish
- Start any recording and press esc to cancel it
Good to know: a dictation stops by itself after 20 minutes, with a warning a minute before. You can change the limit in Settings.
Command Mode: edit with your voice
Select some text, hold fn + option, and say what you want changed.
FreeFlow sends your instruction and the selected text to Claude, then swaps in the result. With nothing selected, it works on the whole text field. Click the text in the window to select it.
- Select the text, then hold option + F and give an instruction
- Try a second instruction. Click Reset text first if you like.
Already talking? Tap option while holding fn to switch into Command Mode mid-sentence. If no text field is active, the result is copied to your clipboard instead.
Transforms: one-key rewrites
Transforms are saved instructions on a shortcut. Select text, press one, and the result replaces it.
With nothing selected, a Transform rewrites the whole field. In an empty field it works on your last dictation from the past minute. You can edit these and create your own on FreeFlow's Transforms page. Here, press option + a number, or click a button.
- Press option + 1 to Polish the rambling text
- Click Reset text, then try another Transform (option + 2 to 5)
Dictionary and snippets
Teach FreeFlow the names, brands and jargon it gets wrong.
A word makes sure something is always spelled your way. A replacement turns what the speech engine hears into what you meant. A snippet expands a short phrase you say into longer text, like your address or a meeting link. Try it below. The test box shows what FreeFlow would type.
- Add a word or replacement of your own
- Add a snippet, then type its trigger phrase into the test box
It also learns on its own. If you fix a name or an unusual word right after FreeFlow pastes it, FreeFlow notices and adds that word to your dictionary.
Meetings and lectures
Press option + N to record a meeting, and again to stop.
FreeFlow transcribes your microphone as Me and your Mac's sound (the other people on the call) as Them, live and on your Mac. When you stop, Claude writes a summary, the decisions and everyone's to-dos. In a class? Tap control on its own while recording to switch to Lecture mode, which writes study notes instead.
- Start a meeting with option + N (or the button), let a few lines come in, then stop it
- While recording, tap control on its own to switch to Lecture mode
- After the summary appears, ask a question about the meeting
Private by design: meeting audio is deleted as soon as the transcript is saved. FreeFlow can also notice when you join a Zoom, Teams, Meet, Webex or FaceTime call and offer to record it.
Your FreeFlow window
Click the waveform icon in the menu bar and choose Open FreeFlow.
Paste it again
Clicked away before the paste landed? ⌘ + control + V pastes your last transcript again, and ⌘ + control + C copies it.
- Paste your last transcript with ⌘ + control + V (or the on-screen key)
- Move a slider in the cost calculator below
What's inside
Every dictation, with what you said and what was pasted.
Transcripts, summaries, to-dos and "ask about this meeting".
Quick notes you can dictate into.
Your words, replacements and snippets.
Tone per category, app mappings, email signature.
Edit the built-ins or add your own.
Words per minute, streaks and your exact API cost.
Permissions, models, microphone, sounds, data.
Your history from this tutorial
FreeFlow's Home page keeps a list like this one.
What it costs
FreeFlow is free. You pay Anthropic only for the Claude calls you make, and plain fn dictation never calls Claude. Your actual spending is on the Insights page.
Cheat sheet
Everything on one page. Print it or keep this tab open.
| Keys | What it does |
|---|---|
| fn hold | Dictate. On-device and free, pasted exactly as heard. |
| fn + control hold | Dictate, cleaned up by Claude for the app you're in |
| fn + option hold | Command Mode: say how to change the selected text |
| fn + space, or double-tap fn | Hands-free. Tap fn to finish. |
| control / option while talking | Switch to cleanup / Command Mode mid-sentence |
| esc | Cancel the recording |
| ⌘ control V | Paste the last transcript again |
| ⌘ control C | Copy the last transcript |
| option 1 to 5 | Transforms: Polish, Prompt Engineer, Turn into a list, Make it concise, Fix grammar only |
| option N | Start or stop recording a meeting |
| control tap, while recording a meeting | Switch between Meeting and Lecture mode |
If something's off
| Problem | Fix |
|---|---|
| Nothing happens when I hold fn | Settings → Setup: switch on Accessibility and Input Monitoring for FreeFlow, then click Retry next to Hotkeys. |
| The emoji picker opens | System Settings → Keyboard → "Press 🌐 key to" → Do Nothing |
| "No speech detected" | Check the speech model is downloaded and the right microphone is picked in Settings → Dictation. |
| "Pasted raw transcript" | Claude couldn't be reached. Check your internet connection, and test your API key in Settings. |
| Text went to the clipboard, not the app | No text field was active. Click into one and press ⌘ control V. |
| Permissions reset after an update | Build with the same Apple Development certificate each time (see Install). |