| name | voicemode |
| description | Voice interaction for Claude Code. Use when users mention voice mode, speak, talk, converse, voice status, or voice troubleshooting. |
First-Time Setup
If VoiceMode isn't working or MCP fails to connect, run:
/voicemode:install
After install, reconnect MCP: /mcp → select voicemode → "Reconnect" (or restart Claude Code).
VoiceMode
Natural voice conversations with Claude Code using speech-to-text (STT) and text-to-speech (TTS).
Note: The Python package is voice-mode (hyphen), but the CLI command is voicemode (no hyphen).
When to Use MCP vs CLI
| Task | Use | Why |
|---|
| Voice conversations | MCP voicemode:converse | Faster - server already running |
| Service start/stop | MCP voicemode:service | Works within Claude Code |
| Installation | CLI voice-mode-install | One-time setup |
| Configuration | CLI voicemode config | Edit settings directly |
| Diagnostics | CLI voicemode diag | Administrative tasks |
Usage
Use the converse MCP tool to speak to users and hear their responses:
voicemode:converse("Hello! What would you like to work on?")
voicemode:converse("Searching the codebase now...", wait_for_response=False)
For most conversations, just pass your message - defaults handle everything else.
| Parameter | Default | Description |
|---|
message | required | Text to speak |
wait_for_response | true | Listen after speaking |
voice | auto | TTS voice |
For all parameters, see Converse Parameters.
Best Practices
- Narrate without waiting - Use
wait_for_response=False when announcing actions
- One question at a time - Don't bundle multiple questions in voice mode
- Check status first - Verify services are running before starting conversations
- Let VoiceMode auto-select - Don't hardcode providers unless user has preference
- First run is slow - Model downloads happen on first start (2-5 min), then instant
Handling Pauses and Wait Requests
When the user asks you to wait or give them time:
Short pauses (up to 60 seconds): If the user says something ending with "wait" (e.g., "hang on", "give me a sec", "wait"), VoiceMode automatically pauses for 60 seconds then resumes listening. This is built-in.
Longer pauses (2+ minutes): Use bash sleep N where N is seconds. For example, if the user says "give me 5 minutes":
sleep 300
Then call converse again when the wait is over:
voicemode:converse("Five minutes is up. Ready when you are.")
Configuration: The short pause duration is configurable via VOICEMODE_WAIT_DURATION (default: 60 seconds).
Check Status
voicemode service status
voicemode service status whisper
Shows service status including running state, ports, and health.
Installation
uvx voice-mode-install --yes
voicemode service install whisper
voicemode service install kokoro
See Getting Started for detailed steps.
Service Management
voicemode:service("whisper", "start")
voicemode:service("kokoro", "start")
voicemode:service("whisper", "logs", lines=50)
| Service | Port | Purpose |
|---|
| whisper | 2022 | Speech-to-text |
| kokoro | 8880 | Text-to-speech |
| voicemode | 8765 | HTTP/SSE server |
Actions: status, start, stop, restart, logs, enable, disable
Configuration
voicemode config list
voicemode config set VOICEMODE_TTS_VOICE nova
voicemode config edit
Config file: ~/.voicemode/voicemode.env
See Configuration Guide for all options.
DJ Mode
Background music during VoiceMode sessions with track-level control.
voicemode dj play /path/to/music.mp3
voicemode dj status
voicemode dj pause
voicemode dj resume
voicemode dj stop
voicemode dj next
voicemode dj prev
voicemode dj volume 30
voicemode dj mfp list
voicemode dj mfp play 49
voicemode dj mfp sync
voicemode dj find "daft punk"
voicemode dj library scan
voicemode dj library stats
voicemode dj history
voicemode dj favorite
Configuration: Set VOICEMODE_DJ_VOLUME in ~/.voicemode/voicemode.env to customize startup volume (default: 50%).
CLI Cheat Sheet
voicemode service status
voicemode service start whisper
voicemode service logs kokoro
voicemode deps
voicemode diag info
voicemode diag devices
voicemode history search "keyword"
voicemode history play <exchange_id>
voicemode dj play <file|url>
voicemode dj status
voicemode dj next/prev
voicemode dj stop
voicemode dj mfp play 49
Voice Handoff Between Agents
Transfer voice conversations between Claude Code agents for multi-agent workflows.
Use cases:
- Personal assistant routing to project-specific foremen
- Foremen delegating to workers for focused tasks
- Returning control when work is complete
Quick Reference
voicemode:converse("Transferring you to a project agent.", wait_for_response=False)
spawn_agent(path="/path", prompt="Load voicemode skill, use converse to greet user")
Hand-back:
voicemode:converse("Transferring you back to the assistant.", wait_for_response=False)
Key Principles
- Announce transfers: Always tell the user before transferring
- One speaker: Only one agent should use converse at a time
- Distinct voices: Different voices make handoffs audible
- Provide context: Tell receiving agent why user is being transferred
Detailed Documentation
See Call Routing for comprehensive guides:
Documentation Index