Labsco
MCP SERVER

Voice Mode

by mbailey

Talk to a coding agent out loud and hear it answer — locally with Whisper and Kokoro, or through OpenAI when you would rather not run them.

Speech Synthesis & Transcription
Summary
Voice is about being available when typing is not.

Walking to a meeting, cooking, holding a coffee — the agent is still reachable. And with Whisper and Kokoro installed locally, nothing you say has to leave the machine to get there.

What it is

A voice layer for Claude Code and other MCP-capable agents. Speech comes in, speech goes out, with silence detection deciding when you have finished talking.

What you get
  • `converse` — the tool the agent calls to speak and listen, and `service` for managing the underlying voice services
  • Local speech services that work offline: Whisper.cpp for speech-to-text and Kokoro for text-to-speech with several voices, both presenting the same API as OpenAI so the switch between them is seamless
  • Smart silence detection that stops recording when you stop speaking, and latency low enough for the exchange to feel like a conversation
  • A Claude Code plugin with `/voicemode:install` and `/voicemode:converse` slash commands
  • Configuration through `voicemode config edit`, covering audio format, Whisper model size, whether to prefer local services, and skipping TTS for a text-only reply
Requirements

A computer with a microphone and speakers, and Python between 3.10 and 3.14. Linux, macOS, Windows (native or WSL) and NixOS are supported. The quickest route for Claude Code users is the plugin: `claude plugin marketplace add mbailey/voicemode` then `claude plugin install voicemode@voicemode`, followed by `/voicemode:install` to pull in the CLI and the local voice services. Otherwise install `uv` and run `uvx voice-mode-install`, then `claude mcp add --scope user voicemode -- uvx --refresh --from voice-mode voicemode-mcp-launcher`. `OPENAI_API_KEY` is optional and acts as a fallback when the local services are not available. To avoid permission prompts, allow `mcp__voicemode__converse` and `mcp__voicemode__service` in `~/.claude/settings.json`.

Setup effort

One command — claude mcp add --scope user voicemode -- uvx --refresh --from voice-mode voicemode-mcp-launcher