REPLACEMENT BRIEF

dictation

Can AI replace Wispr Flow?

EDITORIAL ANSWERYESCurated prompt

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 prompt
Build 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.
Copy or open in an agent

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 .env
  • history.jsonl (optional)tsduration_secraw_textcleaned_textLocal-only ring buffer so you can recover the last dictation if paste fails

Steps

  1. 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.
  2. 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.
  3. 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.
  4. Clipboard-preserving pasteSnapshot NSPasteboard, write the final transcript, synthesize Cmd+V via CGEvent, wait 100ms, and restore the original clipboard contents.
  5. 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

their tuned auto-editing voice model

per-app tone formatting

the mobile keyboard

polish 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.

Read the methodology →
evidence level
Curated prompt

The prompt was editor-reviewed; no completed build is recorded.

replacement boundaryBuild 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.

known limits · their tuned auto-editing voice model; per-app tone formatting

editorial reviewreviewed

BUILD FEEDBACK

Did you try this build?

Report the outcome. Submissions enter a manual evidence queue and never auto-upgrade the verdict.

← back to the build pack scope

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.