Users pay for dictation that sounds like their writing and works on mobile too. Model tuning and polish are the value.
REPLACEMENT BRIEF
dictation
Can AI replace Wispr Flow?
Hotkey, record, transcribe with Whisper, paste at the cursor: a one-sitting build that many people have already cloned. Wispr Flow's edge is a tuned auto-editing model and per-app formatting.
Reviewed · DeepFeather editorial
known limits their tuned auto-editing voice model; per-app tone formatting
Build a local push-to-talk voice dictation assistant that captures microphone audio on keypress, streams audio to Whisper API, and pastes text into active apps.
Build the personal version →AT A GLANCE
- price
- $15/mo
- listed annual price
- $180/yr
- replaceable scope
- Build a local push-to-talk voice dictation assistant that captures microphone audio on keypress, streams audio to Whisper API, and pastes text into active apps.
- build time
- 3–6 h
Build promptreviewed prompt · not run
the prompt
Curated promptBuild me a system-wide AI dictation tool like Wispr Flow for macOS. Requirements: - A background app with a global hotkey (hold-to-talk fn key or a chosen shortcut). While held: record the mic. On release: transcribe and paste. - Transcribe with whisper.cpp locally (small or medium model), or the Groq/OpenAI Whisper API if a key exists in .env · pick per a config flag. - Pipe the raw transcript through an LLM (key in .env) with a short prompt that removes filler words, fixes punctuation, and matches casing to dictation style. - Insert the result at the current cursor position in whatever app has focus (simulate keystrokes or use the pasteboard + Cmd-V approach, restoring the previous clipboard afterwards). - Show a tiny floating pill while recording so I know it's live. - Menu bar toggle for on/off, launch at login, and a settings file for the hotkey. - No accounts, no telemetry, works offline with the local model. - README with the Accessibility/Input Monitoring permissions I need to grant.
The prompt stays readable first. Choose a launch option when you are ready.
$ open in your agent (prompt prefilled, you press enter) or copy it raw
Build Pack
Build a Wispr Flow replacement: the plan
What to build, what to skip on purpose, and how to tell it works. Use any agent or prompt you like — the acceptance tests decide whether it worked.
- Estimated time
- 3–6 h
- Estimated monthly cost
- $0–2/mo
- Subscription, for contrast
- $15/mo · Pro
Editorial estimate, not a measured run · Reviewed · the subscription recurs monthly with none of your hours; the build costs one-time hours first
In scope
- Global hold-to-talk hotkey daemon on macOS: records microphone audio while held, transcribes on release
- Selectable transcription backend: local whisper.cpp model (offline) or Groq/OpenAI Whisper API via .env
- Optional LLM cleanup pass that strips filler words, fixes punctuation and formats spoken lists without changing meaning
- Cursor injection: writes cleaned text to the pasteboard, triggers Cmd+V into the focused app, and restores the prior clipboard
- Menu-bar status icon plus a tiny floating recording indicator pill while the mic is live
Non-goals
- iOS or Android custom mobile keyboard extensions
- Cloud-synced personal dictionary across multiple machines
- Per-app automatic tone switching based on active window bundle ID
- Proprietary fine-tuned speech models — uses stock Whisper plus a short cleanup prompt
Recommended stack
- App shell
- Swift menu-bar app or Python (rumps + pyobjc)Registers global hotkeys, shows a menu-bar toggle and drives macOS Accessibility paste
- Audio capture
- AVAudioEngine or sox / sounddeviceWrites a temporary 16kHz mono WAV file while the hotkey is held
- Transcription
- whisper.cpp CLI or Groq/OpenAI Whisper APIOffline zero-cost local inference or sub-second cloud transcription
- Cleanup pass
- Optional LLM API call (Haiku / GPT-4o-mini)Removes 'um/uh' and fixes punctuation in a couple hundred milliseconds
Data model
config.jsonhotkeyengine (local/cloud)whisper_model_pathcleanup_enabledcustom_terms[]Stored in ~/.config/dictate/config.json; API keys stay in .envhistory.jsonl (optional)tsduration_secraw_textcleaned_textLocal-only ring buffer so you can recover the last dictation if paste fails
Steps
- Hotkey listener and mic captureRegister the global hold-to-talk shortcut; on keydown start recording 16kHz mono WAV to /tmp, and on keyup stop and show a 'Transcribing…' state on the floating pill.
- Whisper transcription adapterImplement a two-mode function: run whisper.cpp locally against the WAV file, or POST it to the Whisper API when engine=cloud.
- LLM filler-word cleanupWhen cleanup_enabled is true, pass raw_text through a strict system prompt that removes disfluencies and fixes punctuation without rewriting the user's phrasing.
- Clipboard-preserving pasteSnapshot NSPasteboard, write the final transcript, synthesize Cmd+V via CGEvent, wait 100ms, and restore the original clipboard contents.
- Permissions and launch agentDocument the required macOS Microphone, Accessibility and Input Monitoring permissions in the README, and include a LaunchAgents plist for login startup.
Acceptance tests
- Hold the hotkey in a code editor, speak a sentence with 'um' and 'actually', and releaseCleaned, punctuated text is pasted at the cursor within 1–2 seconds
- Copy a URL to the clipboard, dictate a sentence, then press Cmd+V manuallyYour original copied URL is still on the clipboard after dictation finishes
- Switch engine to local with Wi-Fi turned off and dictatewhisper.cpp transcribes offline and inserts the text without network errors
- Tap the hotkey for under 200ms without speakingDiscards the empty clip without pasting hallucinated text
Only you can do this
- Grant Microphone, Accessibility and Input Monitoring permissions to the app in macOS System Settings
- Download the whisper.cpp base/small model file (or add an API key to .env)
- Pick a hold-to-talk key that does not collide with your existing shortcuts
What drives the cost
$0/month when running whisper.cpp locally on Apple Silicon. If you use cloud Whisper + a lightweight cleanup model for 30 minutes of dictation a day, API usage typically runs $0.50–$2/month.
Cost sources: wisprflow.ai (checked ) · github.com (checked )
what AI can build
Build a local push-to-talk voice dictation assistant that captures microphone audio on keypress, streams audio to Whisper API, and pastes text into active apps.
The prompt was editor-reviewed; no completed build is recorded.
The honest tradeoff
why people still pay
what you lose
xtheir tuned auto-editing voice model
xper-app tone formatting
xthe mobile keyboard
xpolish on edge cases (accents, noise)
Start with existing software
prior art · use these instead of building, if you'd rather
EVIDENCE LEDGER
What this page can prove
The verdict judges replaceability. The evidence level records what DeepFeather actually checked.
The prompt was editor-reviewed; no completed build is recorded.
Pro · monthly
known limits · their tuned auto-editing voice model; per-app tone formatting
BUILD FEEDBACK
Did you try this build?
Report the outcome. Submissions enter a manual evidence queue and never auto-upgrade the verdict.
Want next week’s replacements?
New verdicts + most-wanted, weekly. Free. Unsubscribe anytime.
Share this verdict
questions
Can AI replace Wispr Flow?
Likely for the core workflow. This is an editorial catalog judgment, not a verified build; validate any result against your own acceptance criteria.
How much does Wispr Flow cost?
Wispr Flow is listed at about $15/month (Pro, checked 2026-10-04), or $180 per year. This is a pricing reference, not evidence of a completed replacement or realized savings.
What do I lose by replacing Wispr Flow?
Honestly: their tuned auto-editing voice model; per-app tone formatting; the mobile keyboard; polish on edge cases (accents, noise). If any of those are load-bearing for you, keep paying.
Is there an open-source alternative to Wispr Flow?
Yes — whisper.cpp (local transcription engine), VoiceInk (open-source macOS dictation app). Using prior art is also a valid exit; the prompt is for when you want it exactly your way.