Leverages OpenAI's API for speech-to-text and text-to-speech services, supporting both cloud-based processing and compatibility with local alternatives through an OpenAI-compatible API interface.
Features a demo video showcasing Voice Mode functionality that users can watch to understand how the voice interactions work.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Voice Modestart a voice conversation"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
VoiceMode
Install via:
uv tool install voice-mode| getvoicemode.com
Natural voice conversations for AI assistants. VoiceMode brings human-like voice interactions to Claude Code, AI code editors through the Model Context Protocol (MCP).
π₯οΈ Compatibility
Runs on: Linux β’ macOS β’ Windows (WSL) β’ NixOS | Python: 3.10-3.14
Related MCP server: TTS-MCP
β¨ Features
ποΈ Natural Voice Conversations with Claude Code - ask questions and hear responses
π£οΈ Supports local Voice Models - works with any OpenAI API compatible STT/TTS services
β‘ Real-time - low-latency voice interactions with automatic transport selection
π§ MCP Integration - seamless with Claude Code (and other MCP clients)
π― Silence detection - automatically stops recording when you stop speaking (no more waiting!)
π Multiple transports - local microphone or LiveKit room-based communication (optional)
π― Simple Requirements
All you need to get started:
π€ Computer with microphone and speakers
π OpenAI API Key (Recommended, if only as a backup for local services)
Quick Start
Install VoiceMode and dependencies with UV (Recommended)
Linux (fedora, debian/ubuntu)
macOS
Windows WSL
# Install VoiceMode MCP python package and dependencies
curl -LsSf https://astral.sh/uv/install.sh | sh
uvx voice-mode-install
# While local voice services can be installed automatically, we recommend
# providing an OpenAI API key as a fallback in case local services are unavailable
export OPENAI_API_KEY=your-openai-key # Optional but recommended
# Add VoiceMode to Claude
claude mcp add --scope user voicemode -- uvx --refresh voice-mode
# Start a voice conversation
claude converseManual Installation
For manual setup steps, see the Getting Started Guide.
π¬ Demo
Watch VoiceMode in action with Claude Code:

The converse function makes voice interactions natural - it automatically waits for your response by default, creating a real conversation flow.
Installation
Prerequisites
Python 3.10-3.14
Astral UV - Package manager (install with
curl -LsSf https://astral.sh/uv/install.sh | sh)OpenAI API Key (or compatible service)
Note on LiveKit: LiveKit integration is optional and requires Python 3.10-3.13 (Python 3.14 support pending upstream dependencies). Install with:
uv tool install voice-mode[livekit]. See LiveKit Integration Guide for details.
System Dependencies
sudo apt update
sudo apt install -y ffmpeg gcc libasound2-dev libasound2-plugins libportaudio2 portaudio19-dev pulseaudio pulseaudio-utils python3-devNote for WSL2 users: WSL2 requires additional audio packages (pulseaudio, libasound2-plugins) for microphone access.
sudo dnf install alsa-lib-devel ffmpeg gcc portaudio portaudio-devel python3-devel# Install Homebrew if not already installed
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install dependencies
brew install ffmpeg node portaudioFollow the Ubuntu/Debian instructions above within WSL.
VoiceMode includes a flake.nix with all required dependencies. You can either:
Use the development shell (temporary):
nix develop github:mbailey/voicemodeInstall system-wide (see Installation section below)
Quick Install
# Using Claude Code (recommended)
claude mcp add --scope user voicemode uvx --refresh voice-modeConfiguration for AI Coding Assistants
π Looking for detailed setup instructions? Check our comprehensive Getting Started Guide for step-by-step instructions!
Below are quick configuration snippets. For full installation and setup instructions, see the integration guides above.
claude mcp add --scope user voicemode -- uvx --refresh voice-modeOr with environment variables:
claude mcp add --scope user --env OPENAI_API_KEY=your-openai-key voicemode -- uvx --refresh voice-modeAlternative Installation Options
git clone https://github.com/mbailey/voicemode.git
cd voicemode
uv tool install -e .1. Install with nix profile (user-wide):
nix profile install github:mbailey/voicemode2. Add to NixOS configuration (system-wide):
# In /etc/nixos/configuration.nix
environment.systemPackages = [
(builtins.getFlake "github:mbailey/voicemode").packages.${pkgs.system}.default
];3. Add to home-manager:
# In home-manager configuration
home.packages = [
(builtins.getFlake "github:mbailey/voicemode").packages.${pkgs.system}.default
];4. Run without installing:
nix run github:mbailey/voicemodeConfiguration
π Getting Started - Step-by-step setup guide
π§ Configuration Reference - All environment variables
Quick Setup
The only required configuration is your OpenAI API key:
export OPENAI_API_KEY="your-key"Local STT/TTS Services
For privacy-focused or offline usage, VoiceMode supports local speech services:
Whisper.cpp - Local speech-to-text with OpenAI-compatible API
Kokoro - Local text-to-speech with multiple voice options
These services provide the same API interface as OpenAI, allowing seamless switching between cloud and local processing.
Troubleshooting
Common Issues
No microphone access: Check system permissions for terminal/application
WSL2 Users: Additional audio packages (pulseaudio, libasound2-plugins) required for microphone access
UV not found: Install with
curl -LsSf https://astral.sh/uv/install.sh | shOpenAI API error: Verify your
OPENAI_API_KEYis set correctlyNo audio output: Check system audio settings and available devices
Audio Saving
To save all audio files (both TTS output and STT input):
export VOICEMODE_SAVE_AUDIO=trueAudio files are saved to: ~/.voicemode/audio/YYYY/MM/ with timestamps in the filename.
Documentation
π Read the full documentation at voice-mode.readthedocs.io
Getting Started
Getting Started - Step-by-step setup for all supported tools
Configuration Guide - Complete environment variable reference
Development
Development Setup - Local development guide
Service Guides
Whisper.cpp Setup - Local speech-to-text configuration
Kokoro Setup - Local text-to-speech configuration
LiveKit Integration - Real-time voice communication
Links
Website: getvoicemode.com
Documentation: voice-mode.readthedocs.io
GitHub: github.com/mbailey/voicemode
Community
Twitter/X: @getvoicemode
YouTube: @getvoicemode
See Also
π Getting Started - Setup instructions for all supported tools
π§ Configuration Reference - Environment variables and options
π€ Local Services Setup - Run TTS/STT locally for privacy
License
MIT - A Failmode Project
mcp-name: com.failmode/voicemode