Voice Dictation
Dictate prompts instead of typing them: a local speech-to-text app for free, Groq for cents, and one rules line that makes the agent forgive homophones.
The one line: dictating is faster than typing and, because you say more, it usually briefs the agent better — so dictate your prompts and add one line to your rules file telling the agent to read through transcription errors.
The whole job is typing
Everything in this course comes down to putting words into a text box. Rules files, skills, hook descriptions, the prompt itself. Your throughput as an operator is bounded by how fast you produce prose, and in my experience speaking is roughly three to four times faster than typing.
That gap is why longer prompts feel expensive. A one-line prompt gets a vague answer, a paragraph of context gets a good one, and if the paragraph costs a minute of typing you write the one-liner. Dictation removes the cost, so you write the paragraph.
My position: never pay a monthly subscription for this. Polished apps ask around twenty dollars a month for what an open-source app does locally for free, and what the cloud does for cents.
Desktop: local model, fixed RAM, no per-word fee
Two open-source apps cover the desktop. Both work the same way: hold a hotkey, talk, and the text lands in whatever field has focus.
Both can load Whisper large instead, which is more accurate and noticeably slower. I stay on Parakeet: the latency of a large model breaks the rhythm of talking to an agent, and you are dictating prompts, not court records.
The real cost is memory. The model file is over half a gigabyte and sits in RAM while the app is loaded. That is the whole price. No per-minute billing, no account, and nothing leaves the machine — which matters when a prompt names internal services.
Cloud: Groq, and it is not Grok
For anything not running on your desktop, use Groq. Spelling matters here: Groq is an LLM inference host, not xAI's Grok chatbot. They serve whisper-large-v3-turbo at $0.04 per hour of audio as of writing (Groq speech-to-text), so a personal transcriber runs at cents, not dollars, per month.
The shape I use is a small Telegram bot: send it a voice message, it sends the audio to Groq and replies with the text. Deploy it on Railway, a VPS, or Cloudflare. Use this for phone dictation, where a local model is not an option, and keep the desktop app for the keyboard.
Tell the agent that you dictate
This is the part that changes agent behaviour. Speech-to-text produces homophone errors, and it produces them exactly on the words you care about: product names, CLI names, identifiers. "Vercel" comes back as "resell". "Biome" comes back as "by home". A model that treats the transcript as literal will either use the wrong name or stop and ask you what you meant.
One line in your rules file fixes it. Put this in ~/.claude/CLAUDE.md so it applies to every project:
The user often dictates prompts, so transcription errors are expected.
Read through obvious errors and resolve them from context instead of
asking (for example, "resell" means "vercel"). Ask only when the
intended term is genuinely ambiguous.User-level CLAUDE.md is concatenated with the project file rather than overridden, so this rides along everywhere without repeating it per repo — see the memory docs for the full load order and Rules Files and Scope for where else it can live. Keep the worked example in. Models generalise from an example better than from the instruction alone.
Say more than you would type
Brief the agent the way you would brief a person, and use the fact that talking is cheap. Speak for a long stretch. Describe the problem from three angles, say what you already ruled out and why, think out loud about the approach you are unsure of. Agents handle messy input far better than they handle thin input, and the model is good at pulling the signal out of a long run of prose.
This is where dictation stops being a speed trick. When I type, I compress: I write the conclusion and drop the reasoning that produced it. When I talk, I am more descriptive by default, so the model sees the logic behind the request and not just the request. It picks the right approach more often because it knows what I was weighing. A rambling two-minute brief beats a tight two-line prompt more often than it has any right to.
Paths and identifiers are the exception, because transcription breaks them and they carry no surrounding context to recover from. Two ways around it. Copy the path from your file browser and paste it after you release the hotkey. Or describe the file in the dictation — "the loader that reads the course frontmatter" — and let the agent find it, which it is good at. Dictate the reasoning, paste the symbols.
What to do
- Install Hex on macOS or Handy on Windows, load Parakeet, and bind a push-to-talk hotkey.
- Cancel any speech-to-text subscription you pay for.
- Add the dictation line above to
~/.claude/CLAUDE.md, with the worked example kept in. - Stand up a Groq
whisper-large-v3-turbotranscriber only if you need dictation off the desktop. - Dictate long: say the reasoning and the rejected options, not just the request.
- Paste file paths after dictating, or describe the file and let the agent find it.