All posts
|6 min read

Talk to Claude Code by voice: OpenWhisp is now an MCP server

To talk to Claude Code by voice, enable OpenWhisp's Agent Bridge and run one command: openwhisp setup claude-code. It registers OpenWhisp as an MCP server and adds the agent instruction for you. From then on your agent asks questions out loud — the voice overlay opens, you speak, and when you go quiet the transcript returns to the agent. Everything runs on your Mac; no cloud, no API key.

If you use a coding agent, you know the rhythm: it works for a while, then stops to ask a question — “deploy to staging or production?”, “which of these three approaches do you prefer?” — and you type a paragraph back into a chat box. OpenWhisp’s new Agent Bridge closes that loop with your voice: the agent asks out loud, you answer out loud, and it keeps working. No other dictation app ships this.

What the Agent Bridge is

OpenWhisp now doubles as a local Model Context Protocol server — the standard way tools plug into agents like Claude Code, Cursor, Hermes, and OpenClaw. Register it once and your agent gets three new tools:

  • openwhisp_dictate — the agent asks you a question by voice. OpenWhisp’s overlay opens with the prompt, you speak, and the transcript returns to the agent.
  • openwhisp_refine — the agent rewrites text using the same on-device AI model as your refine hotkey. No other dictation app exposes this to agents at all.
  • openwhisp_history — the agent reads your recent dictations (text, timestamp, target app), stored only on your Mac.

Set it up in one command

Turn the bridge on in Settings → Agent Bridge (it’s off by default — nothing listens until you enable it), then let OpenWhisp wire itself up:

openwhisp setup claude-code

That does two things: registers OpenWhisp as an MCP server (via claude mcp add), and appends a standing instruction to your ~/.claude/CLAUDE.md telling the agent to ask questions through openwhisp_dictate instead of plain text. The instruction line matters — agents only reach for tools they’re told to prefer. Both steps are idempotent, so re-running is safe, and --print previews the changes without writing anything.

openwhisp setup cursor merges the server into your project’s .cursor/mcp.json without disturbing other servers you have; Hermes and OpenClaw get printed instructions. The first time an agent connects, OpenWhisp asks you to approve it — once, always, or only while the app runs.

Example 1: answer your agent without touching the keyboard

You ask Claude Code to ship a release. Mid-task it needs a decision, so instead of parking the question in the terminal and waiting for you to notice, it calls openwhisp_dictate:

● openwhisp_dictate("Tests pass. Deploy to staging or production?")
  ↳ the OpenWhisp overlay opens — you say:
    "production, and tag it v1.4"
  ↳ you go quiet — the answer is sent on its own
● Deploying to production, tagging v1.4…

You were reading a doc in another window; you answered in three seconds without switching apps or pressing a single key — when you stop talking, OpenWhisp detects the silence and ends the turn for you (a natural pause between words won’t cut you off; toggleable in Settings). Prefer an explicit finish? openwhisp dictate --stop from any shell sends what was captured, and --cancel discards it. This is the difference between an agent that waits for typed input and one you can talk to.

Example 2: brain-dump a bug report, let the agent file it

Describing a bug is faster out loud than in prose. Tell your agent “ask me about the bug, then file a GitHub issue” and it will interview you by voice — what happened, how to reproduce it, what you expected — then turn your rambling answers into a clean, structured issue. You talk for ninety seconds; it writes the report.

Example 3: your dictation AI, in any shell pipeline

The bridge also ships an agent-callable CLI, which means the refine step works anywhere you can pipe text — no agent required:

# make the clipboard formal, in place
pbpaste | openwhisp refine -i "make it formal" | pbcopy

# tighten a commit message before you commit
git log -1 --format=%B | openwhisp refine -i "tighten this up"

The rewrite runs on the same on-device model as OpenWhisp’s refine hotkey — your prompts, your machine, nothing sent anywhere.

Example 4: turn your dictation history into a standup

Everything you dictate is already in OpenWhisp’s local, searchable history. With openwhisp_history, your agent can use it: “read my dictations from this morning and draft a standup update” — and the notes you spoke into tickets, commit messages, and chats all day become a summary you didn’t have to write.

Built so agents can’t go rogue

Handing agents a microphone and an AI model deserves paranoia, so the bridge is engineered around consent:

  • Off by default. No socket exists until you enable the bridge in Settings.
  • You approve every client. Each agent is approved the first time it connects, and you can revoke any of them in Settings.
  • Local, signed connections only. The transport is a private UNIX socket on your Mac — not a TCP port — and by default only OpenWhisp’s own code-signed CLI may connect, so browser pages and random processes can’t reach it.
  • The cloud gate. If your AI provider is OpenAI, agent-initiated refinement is blocked unless you explicitly allow it — a prompt-injected agent can’t exfiltrate text through your API key. Local models are unaffected.
  • The human always wins the mic. Pressing your dictation hotkey during an agent session cancels it — the agent gets nothing — and starts your own. Agent microphone use always shows the overlay, and password fields are never dictated into.

The full design is documented in docs/AGENT_BRIDGE.md — and because OpenWhisp is open source, you can read the implementation rather than take the security story on faith.

Frequently asked questions

Does voice input work with Cursor and other agents, not just Claude Code?
Yes. Any MCP-capable agent can use the bridge — run `openwhisp setup <agent>` for Cursor, Hermes, or OpenClaw. Short tool-call timeouts aren't a problem either: while a dictation waits for you, OpenWhisp streams MCP progress notifications so agents like Cursor (which caps tool calls near 60 seconds) don't give up mid-answer.
Is my voice sent to the cloud when an agent asks me a question?
No. The agent's question and your spoken answer are handled entirely on your Mac — transcription runs on-device, and the bridge itself is a local UNIX socket, not a network service. Cloud AI is only involved if you explicitly allow agents to use a cloud provider for refinement.
Can any process on my Mac connect to the Agent Bridge?
No. The bridge is off by default, the socket is only readable by your user account, and by default only OpenWhisp's own code-signed CLI may connect. On top of that, every agent must be approved by you the first time it connects.

Try OpenWhisp

Free, open source, and 100% on-device dictation for Apple Silicon Macs.

Keep reading