Voice Mode

Natural voice conversations for AI assistants via MCP

$ voice-mode --status
[OK] Service running on stdio_

// About

Voice Mode brings human-like voice interactions to Claude, ChatGPT, and other LLMs through the Model Context Protocol (MCP).

# Features
  • Voice conversations with Claude - ask questions and hear responses
  • Multiple transports - local microphone or LiveKit room-based communication
  • OpenAI-compatible - works with any STT/TTS service (local or cloud)
  • Real-time - low-latency voice interactions with automatic transport selection
  • MCP Integration - seamless with Claude Desktop and other MCP clients

Compatible with Linux, macOS, Windows (WSL) | Python 3.10+

// Installation

# Quick install with Claude Code (recommended)
$ claude mcp add --scope user voice-mode uvx voice-mode

# Or install with UV
$ uvx voice-mode

# Or install with pip
$ pip install voice-mode
# Set your OpenAI API key
$ export OPENAI_API_KEY=your-openai-key

# Start Claude with Voice Mode
$ claude
Claude: Ready for voice interaction
> /converse

// Quick Demo

# Example conversation
> "Let's have a voice conversation"
[Voice Mode] Speaking: "Hello! I'm ready to chat..."
[Voice Mode] Listening...

> "Tell me a joke"
[Voice Mode] Claude speaks and waits for your response

> "Say goodbye"
[Voice Mode] Claude speaks without waiting

Watch the demo video to see Voice Mode in action.

// Documentation

# Available tools
converse() # Have a voice conversation
listen_for_speech() # Listen and convert to text
check_room_status() # Check LiveKit room status
check_audio_devices() # List audio devices
start_kokoro() # Start local TTS service
stop_kokoro() # Stop local TTS service
kokoro_status() # Check Kokoro TTS status
# Optional configuration
STT_BASE_URL=http://127.0.0.1:2022/v1 # Local Whisper
TTS_BASE_URL=http://127.0.0.1:8880/v1 # Local TTS
TTS_VOICE=alloy # Voice selection
VOICE_MODE_DEBUG=true # Enable debug mode
VOICE_MODE_SAVE_AUDIO=true # Save audio files

Full documentation at github.com/mbailey/voicemode