Skip to content

mrinalwadhwa/freeflow

Repository files navigation

FreeFlow – seamless speech to text in any app

Press a hotkey, dictate naturally, polished text appears in any app.

Ramble, use filler words, correct yourself mid-sentence. FreeFlow turns messy speech into clean writing and injects it wherever your cursor is: your messaging app, your editor, your coding agent, the terminal, email, anything.

It is open source, so you have the freedom to customize it any way you want. It runs entirely on your Mac and talks directly to OpenAI with your own API key, so your audio and transcripts never pass through anyone else's servers.

Demo (sound on 🔊)

In this demo, you'll hear rambling speech with filler words and corrections. Watch what appears at the cursor.

freeflow-voice.mp4

Install

Requires macOS 14 or later. Install with Homebrew or download the DMG directly.

brew install mrinalwadhwa/freeflow/freeflow

On first launch, FreeFlow asks for your OpenAI API key and stores it in the macOS Keychain. Create one at platform.openai.com/api-keys. After that, grant accessibility and microphone permissions and you are ready to dictate.

Fast

Audio streams to OpenAI's Realtime API over a persistent WebSocket while you speak. The model transcribes incrementally, so by the time you release the key the transcript is already done. Median latency from key release to polished text at cursor is 0.55 seconds.

A warm backup connection is kept pre-opened in the background. After your first dictation, subsequent ones skip the WebSocket handshake entirely — 91% of sessions see zero connection setup time.

83% of dictations skip the LLM polish step entirely thanks to a local heuristic that detects clean transcripts. When polish is needed, gpt-4.1-nano handles it in 320–780 ms. If the streaming path fails, a batch fallback runs in parallel and catches it automatically.

See BENCHMARK.md for detailed timing breakdowns.

Private

Everything runs on your Mac. Your audio and transcripts flow directly to OpenAI with your own API key; there is no FreeFlow server in the middle. On macOS 26, FreeFlow can also transcribe entirely on-device using Apple's SpeechAnalyzer framework — no network, no API key needed, audio never leaves the Mac.

Open

Everything is in this repo: the app, the providers, the polish pipeline, the prompts. Change the models, rewrite the prompts, add a language, or fork the whole thing. See DEVELOP.md.

Contribute

Jump in, we'd love your help.

The single most useful contribution right now is mic compatibility data. FreeFlow works well with built-in mics and AirPods, but every USB mic, headset, and audio interface is different. The app's "Contribute Mic Data" menu item generates a one-click diagnostic report that can help us improve accuracy of dictation for everyone.

Want to add or improve support for a language? Here's how. Found an app where injection breaks? Open an issue. Code contributions and pull requests are welcome too. DEVELOP.md has the build and test guide.

About

FreeFlow - seamless speech to text in any app. Press a hotkey, dictate naturally, polished text appears in any app.

Resources

License

Stars

Watchers

Forks

Contributors

Languages