Dictate to Claude Code, fully offline.
A whole paragraph of prompt lands in your agent in the time typing would get you a sentence. Here’s the setup where none of that audio leaves your Mac, and where the built-in option is honestly fine.
To dictate into Claude Code without sending audio to any server: run an on-device dictation app and speak into the terminal’s prompt like typed input. Edict bundles its speech models inside the app, works offline from first launch, types into any terminal including over SSH, and works regardless of Claude Code’s auth mode.
Last verified 2026-07-11
Two ways to talk to Claude Code
Claude Code has voice built in: /voice, free, zero-install. Per Anthropic’s docs it streams your audio to their servers for transcription ("Audio is not processed locally"), needs a Claude.ai account rather than API-key or Bedrock/Vertex auth, and doesn’t work over SSH. If none of that bothers you, use it; it’s good. The full comparison is on this site.
The other way is an on-device dictation app that types into the terminal like a keyboard. That’s Edict: the walkthrough below takes about three minutes.
Set up Edict for agent work
- 01
Download Edict and drag it to Applications. The speech models are inside the app, so the first launch works with networking off. Grant microphone and accessibility permissions when asked.
- 02
Tap or hold Right Command in your terminal and talk. Release (or tap again) and the transcript pastes at your cursor. Escape cancels a take; Right Option re-pastes the last one.
- 03
Add your jargon to the dictionary in Settings (it’s a plain CSV): library names, product names, teammates. Dictation comes out spelled your way from then on.
- 04
Optional: allowlist your terminal for auto-send in Settings. A finished dictation then submits itself to the agent, and the pill signals it before you release the key.
- 05
Talk in full thoughts. Verbatim is the contract: what you said is what Claude Code gets, no AI rewrite between you and your agent.
The wrong-window guard
The failure mode of every dictation tool in agent work: you talk for forty seconds, focus moved somewhere else meanwhile, and your prompt lands in a Slack message. Edict watches for exactly this. If focus changed while you talked, the transcript stays on your clipboard instead of pasting, and the pill tells you so. Paste it where it belonged and carry on.
Over SSH, and any auth mode
Because Edict types into your local terminal, the text reaches the remote session as ordinary input: dictating into a Claude Code session running over SSH just works. Same reasoning for authentication: whether Claude Code is signed in with a Claude.ai account, an API key, Bedrock, or Vertex, dictated text is just input. The built-in /voice supports neither of those situations, per Anthropic’s docs.
What the MCP server adds
Edict ships a local MCP server, so the agent itself can work with your voice artifacts: search transcript history, pull your last dictation, add words to the dictionary, or submit an audio or video file for on-device transcription and get back SRT, VTT, or text with speaker labels. Wire it up once in the docs and Claude Code can, for example, transcribe a meeting recording locally and work from the transcript, no audio uploaded anywhere.
Common questions
Can Claude Code’s built-in voice mode work offline?
No. Anthropic’s documentation states voice dictation streams audio to their servers and is not processed locally. Offline dictation into Claude Code needs an on-device app such as Edict, whose models ship inside the app.
Does dictation work with Claude Code over SSH?
The built-in /voice doesn’t support remote environments including SSH. Edict does, because it types into your local terminal and the remote session receives the text as ordinary input.
Will my spoken prompt get rewritten?
Not with Edict: it’s verbatim by design, applying only your own dictionary’s spelling fixes. Your prompt reaches the agent as you said it.
What happens if I talk while the wrong window is focused?
Edict’s wrong-window guard notices focus changed during the take and keeps the transcript on your clipboard instead of pasting it into the wrong app.
Does this work with Cursor and other agents?
Yes. Edict types wherever your cursor is, so any agent with a text input works the same way: Cursor, Claude Code, Codex, or a chat box in the browser.
Apple Silicon (M1 or newer) · macOS 15 Sequoia or later · 7-day full trial · one-time purchase