How I built a local dictation app for Mac
Building FnFlow: a warm whisper.cpp server that loads the model while you talk, a speech model inside the installer, paste checks for Electron apps, and Whisper's phantom phrases.
Notes from building FnFlow: how it works, how it compares, what changed.
Building FnFlow: a warm whisper.cpp server that loads the model while you talk, a speech model inside the installer, paste checks for Electron apps, and Whisper's phantom phrases.
Wispr Flow, Superwhisper, VoiceInk, Spokenly, MacWhisper, Aqua Voice and Willow: which permissions they ask for, which key they use, how they handle the fn/🌐 conflict, and how fast you get to the first dictation.
Benchmark of whisper.cpp 1.9.4 with Metal on an M4 Pro: large-v3-turbo f16, q8_0 and q5_0 plus small q5_1 on 32 real dictations. Word diff, latency, cold vs warm, and the commands to reproduce it.
FnFlow is a free Wispr Flow alternative that runs locally. Hold fn, talk, and it's typed into Cursor, Slack or any other app. Whisper runs on your Mac's GPU, text shows up in about 1.2 s, and there's no word limit.
FnFlow and VoiceInk compared. Both are local Whisper dictation apps for Apple Silicon Macs. FnFlow is a free download, and VoiceInk is open source with a paid app.
Dictate prompts to Cursor, Claude Code and VS Code with your voice. Hold fn, talk, and FnFlow types into the chat or terminal. Recognition runs locally and uses your project's names as spelling hints.