Free & fast alternative to Wispr Flow
2,661
stars
438
commits
Swift
primary language
Sep 7, 2026
updated
Free and open source alternative to Wispr Flow, Superwhisper, and Monologue.
⬇ Download FreeFlow.dmg
Works on all Macs (Apple Silicon + Intel)
Thank you to @marcbodea for maintaining FreeFlow!
FreeFlow is a free Mac dictation app inspired by Wispr Flow, Superwhisper, and Monologue. It gives you fast AI transcription, context-aware cleanup, and voice-driven text editing without a monthly subscription.
Fn to talk, or tap Command-Fn to start and stop dictation, and have whatever you say pasted into the current text fieldEdit Mode lets you highlight existing text and transform it with a spoken instruction, like "make this shorter" or "turn this into bullets." Enable it in settings, then use your normal dictation shortcut on selected text, or choose Manual mode to require an extra modifier key.
There is no FreeFlow server, so FreeFlow does not store or retain your data. The only information that leaves your computer are API calls to your configured transcription and LLM provider.
If you'd rather keep cleanup more literal and less context-aware, you can paste this simpler prompt into the custom system prompt setting:
You are a dictation post-processor. You receive raw speech-to-text output and return clean text ready to be typed into an application.
Your job:
- Remove filler words (um, uh, you know, like) unless they carry meaning.
- Fix spelling, grammar, and punctuation errors.
- When the transcript already contains a word that is a close misspelling of a name or term from the context or custom vocabulary, correct the spelling. Never insert names or terms from context that the speaker did not say.
- Preserve the speaker's intent, tone, and meaning exactly.
Output rules:
- Return ONLY the cleaned transcript text, nothing else. So NEVER output words like "Here is the cleaned transcript text:"
- If the transcription is empty, return exactly: EMPTY
- Do not add words, names, or content that are not in the transcription. The context is only for correcting spelling of words already spoken.
- Do not change the meaning of what was said.
Example:
RAW_TRANSCRIPTION: "hey um so i just wanted to like follow up on the meating from yesterday i think we should definately move the dedline to next friday becuz the desine team still needs more time to finish the mock ups and um yeah let me know if that works for you ok thanks"
Then your response would be ONLY the cleaned up text, so here your response is ONLY:
"Hey, I just wanted to follow up on the meeting from yesterday. I think we should definitely move the deadline to next Friday because the design team still needs more time to finish the mockups. Let me know if that works for you. Thanks."
FreeFlow can use OpenAI-compatible local or self-hosted providers instead of Groq. In settings, configure the API base URL and model IDs for your local LLM provider, such as Ollama, LM Studio, or another OpenAI-compatible server. If your transcription backend uses a different endpoint from your LLM backend, set the transcription API URL separately.
Local models are often slower than hosted providers, especially on cold start, long recordings, or busy hardware.
FreeFlow keeps the default network timeout at 20 seconds, but you can extend it with macOS defaults:
defaults write com.zachlatta.freeflow transcription_timeout_seconds -float 120
defaults write com.zachlatta.freeflow post_processing_timeout_seconds -float 120
defaults write com.zachlatta.freeflow context_request_timeout_seconds -float 120
The timeout keys are:
transcription_timeout_seconds: audio transcription requestspost_processing_timeout_seconds: transcript cleanup and edit mode requestscontext_request_timeout_seconds: nearby app context requestsOnly positive values are used. Remove a custom timeout to return to the 20-second default:
defaults delete com.zachlatta.freeflow transcription_timeout_seconds
defaults delete com.zachlatta.freeflow post_processing_timeout_seconds
defaults delete com.zachlatta.freeflow context_request_timeout_seconds
Licensed under the MIT license.
Swift
94.4%
HTML
4.5%
Free & fast alternative to Wispr Flow
2,661
stars
438
commits
Swift
primary language
Sep 7, 2026
updated
Free and open source alternative to Wispr Flow, Superwhisper, and Monologue.
⬇ Download FreeFlow.dmg
Works on all Macs (Apple Silicon + Intel)
Thank you to @marcbodea for maintaining FreeFlow!
FreeFlow is a free Mac dictation app inspired by Wispr Flow, Superwhisper, and Monologue. It gives you fast AI transcription, context-aware cleanup, and voice-driven text editing without a monthly subscription.
Fn to talk, or tap Command-Fn to start and stop dictation, and have whatever you say pasted into the current text fieldEdit Mode lets you highlight existing text and transform it with a spoken instruction, like "make this shorter" or "turn this into bullets." Enable it in settings, then use your normal dictation shortcut on selected text, or choose Manual mode to require an extra modifier key.
There is no FreeFlow server, so FreeFlow does not store or retain your data. The only information that leaves your computer are API calls to your configured transcription and LLM provider.
If you'd rather keep cleanup more literal and less context-aware, you can paste this simpler prompt into the custom system prompt setting:
You are a dictation post-processor. You receive raw speech-to-text output and return clean text ready to be typed into an application.
Your job:
- Remove filler words (um, uh, you know, like) unless they carry meaning.
- Fix spelling, grammar, and punctuation errors.
- When the transcript already contains a word that is a close misspelling of a name or term from the context or custom vocabulary, correct the spelling. Never insert names or terms from context that the speaker did not say.
- Preserve the speaker's intent, tone, and meaning exactly.
Output rules:
- Return ONLY the cleaned transcript text, nothing else. So NEVER output words like "Here is the cleaned transcript text:"
- If the transcription is empty, return exactly: EMPTY
- Do not add words, names, or content that are not in the transcription. The context is only for correcting spelling of words already spoken.
- Do not change the meaning of what was said.
Example:
RAW_TRANSCRIPTION: "hey um so i just wanted to like follow up on the meating from yesterday i think we should definately move the dedline to next friday becuz the desine team still needs more time to finish the mock ups and um yeah let me know if that works for you ok thanks"
Then your response would be ONLY the cleaned up text, so here your response is ONLY:
"Hey, I just wanted to follow up on the meeting from yesterday. I think we should definitely move the deadline to next Friday because the design team still needs more time to finish the mockups. Let me know if that works for you. Thanks."
FreeFlow can use OpenAI-compatible local or self-hosted providers instead of Groq. In settings, configure the API base URL and model IDs for your local LLM provider, such as Ollama, LM Studio, or another OpenAI-compatible server. If your transcription backend uses a different endpoint from your LLM backend, set the transcription API URL separately.
Local models are often slower than hosted providers, especially on cold start, long recordings, or busy hardware.
FreeFlow keeps the default network timeout at 20 seconds, but you can extend it with macOS defaults:
defaults write com.zachlatta.freeflow transcription_timeout_seconds -float 120
defaults write com.zachlatta.freeflow post_processing_timeout_seconds -float 120
defaults write com.zachlatta.freeflow context_request_timeout_seconds -float 120
The timeout keys are:
transcription_timeout_seconds: audio transcription requestspost_processing_timeout_seconds: transcript cleanup and edit mode requestscontext_request_timeout_seconds: nearby app context requestsOnly positive values are used. Remove a custom timeout to return to the 20-second default:
defaults delete com.zachlatta.freeflow transcription_timeout_seconds
defaults delete com.zachlatta.freeflow post_processing_timeout_seconds
defaults delete com.zachlatta.freeflow context_request_timeout_seconds
Licensed under the MIT license.
Swift
94.4%
HTML
4.5%