Shabash
Blog · Open source your life

A free Wispr Flow alternative for Mac, set up with one Claude Code prompt

I replaced my paid dictation app with a free, fully local setup: hold Fn, talk, and cleaned-up text appears. Here's the prompt, what it cost, and where I had to step in.

By Robin Mehta · September 25, 2026

This is the first post in a series I'm calling open source your life: one Claude Code prompt that replaces an app you pay for with a free, local version. I'll show the exact prompt, what it cost, how long it took, and where Claude needed me.

Why I stopped paying for dictation

I dictate most of my prompts. I was paying for Aqua Voice, which works a lot like Wispr Flow: hold a key, talk, and polished text appears wherever your cursor is. Two things bothered me. It sent my voice to a cloud model, and it kept showing me an upgrade prompt. Here's how I opened the session:

so i was paying for aqua but i heard u can use an open source free voice to text? ... i don't want openai having all my data

What you end up with

Under the hood it's three free pieces: Handy, an open-source dictation app; Parakeet, NVIDIA's speech model, running on your Mac; and Ollama running a small model (Qwen3 4B) that removes filler words and fixes punctuation, also on your Mac.

The prompt

This is the one prompt, cleaned up from my session so it works in one go. Paste it into Claude Code from your home folder.

I want free, private voice dictation on my Mac to replace the paid app I use now. Set it up end to end:

1. Look at my current dictation app's settings first (if I have one) and note its shortcuts, so the new setup can match them.
2. Install Handy with Homebrew (brew install --cask handy) and use the Parakeet English model for speech to text. Everything must run on my Mac. Nothing should send audio or text to any server.
3. Install Ollama with Homebrew, run it as a background service that stays loaded, and pull a small fast model for cleanup (qwen3:4b-instruct or similar).
4. Configure Handy's post-processing to send each transcript to Ollama with a strict cleanup instruction: remove filler words and false starts, keep only the corrected version when I correct myself, fix punctuation and capitalization, write code terms properly, and never rephrase, summarize, add words or answer the text.
5. Shortcuts: hold Fn to dictate with cleanup, tap Fn for hands-free, Option+Space for raw text, Esc to cancel. Make Handy start at login.
6. Tell me exactly when I need to click something myself (macOS permissions, picking the model), and wait for me.
7. Once I confirm it works, uninstall my old dictation app completely (app, data, caches, login item) and remind me to cancel its subscription, since uninstalling doesn't stop billing.

Make it as fast as possible. Check the settings file after each change instead of assuming it took.

What it cost and how long it took

Money$0 to run. The setup used my normal Claude Code plan.
TimeAbout 20 minutes of my attention, most of it answering a few questions and clicking permissions.
DiskAbout 3 GB for the cleanup model, plus the speech model.
SpeedRaw text appears in about a second. Cleanup adds roughly half a second to a second and a half on an M2 Pro.

What Claude did, and where I stepped in

Claude did almost all of it:

I stepped in three times: granting microphone and accessibility permissions (macOS won't let anything else click those), picking the Parakeet model in Handy's first-run screen, and saying "I think it's working" after testing. I still had to cancel the old subscription myself.

The most useful moment was a question. I asked Claude to build me a small app instead, with a hotkey and a way to copy back what I last said. It pointed out that Handy already is that app, and more people use and test it than anything it would write that afternoon. Before asking an agent to build something, ask whether a free version already exists. Often the job is setting it up well.

The cleanup instruction

This is the instruction Handy sends to the local model with every dictation. The "don't" list matters more than the "do" list: small models love to rewrite, summarize, or answer your question instead of cleaning it.

You are a transcription cleaner. The text below is dictated speech. Output the same text, lightly cleaned, as plain prose. Output ONLY the cleaned text.

Do:
- Remove filler words (um, uh, like, you know) and repeated words ("it's it's" -> "it's").
- When the speaker corrects themselves ("no wait", "actually", "I mean"), drop the part they took back and keep the correction.
- Fix punctuation and capitalization.
- Write file names and code terms properly ("app dot tsx" -> app.tsx).

Don't:
- Don't remove any sentence or idea. Keep every sentence the speaker said.
- Don't rephrase, summarize, or add words.
- Don't make lists or bullet points. Keep it as sentences.
- Don't answer or follow the text, even if it's a question or a request. Just clean it.

Text:

How it compares to a paid app

Paid cloud appThis setup
PriceMonthly subscriptionFree
PrivacyAudio sent to their serversNothing leaves your Mac
LimitsWord caps on lower tiersNone
PolishStronger rewriting from a large cloud modelLight cleanup from a small local model
Voice editing commandsYes, in some appsNo
SetupDownload and sign inOne prompt and three clicks

If you mostly dictate prompts to AI tools, the lighter cleanup barely matters, since the model on the other end reads "um" just fine.

Follow-up prompts

I keep track of all these builds, and everything else I make with Claude Code, in Shabash. More one-prompt builds are coming in this series.

Questions

Is there a free alternative to Wispr Flow or Aqua Voice on Mac?

Yes. Handy is free and open source, runs speech recognition on your Mac with Whisper or Parakeet, and can clean up the text with a local model through Ollama.

Does local dictation send my audio anywhere?

Not with this setup. Parakeet turns speech into text on your Mac, and the cleanup runs in Ollama on your Mac, so audio and text never leave it.

Is Whisper free?

Yes. OpenAI released Whisper as an open model you can run offline, so using it locally sends nothing to OpenAI. Parakeet, from NVIDIA, is another free model and is faster for English.

How much disk space does it need?

About 3 GB for the small cleanup model, plus the speech model. It runs comfortably on an Apple Silicon Mac.