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).
Runs on: Linux β’ macOS β’ Windows (WSL) β’ NixOS | Python: 3.10+
- ποΈ Natural Voice Conversations with Claude Code - ask questions and hear responses
- π£οΈ Supports local VoiceModels - 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
All you need to get started:
- π€ Computer with microphone and speakers
- π OpenAI API Key (optional) - VoiceMode can install free, open-source transcription and text-to-speech services locally
Optional for enhanced performance:
- π Xcode (macOS only) - Required for Core ML acceleration of Whisper models (2-3x faster inference). Install from Mac App Store then run
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
Install Claude Code with VoiceMode configured and ready to run on Linux, macOS, and Windows WSL:
# Download and run the installer
curl -O https://getvoicemode.com/install.sh && bash install.sh
# 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
# Start a voice conversation
claude converse
This installer will:
- Install all system dependencies (Node.js, audio libraries, etc.)
- Install Claude Code if not already installed
- Configure VoiceMode as an MCP server
- Set up your system for voice conversations
- Offer to install free local STT/TTS services if no API key is provided
For manual setup steps, see the Getting Started Guide.
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.
- Python >= 3.10
- Astral UV - Package manager (install with
curl -LsSf https://astral.sh/uv/install.sh | sh
) - OpenAI API Key (or compatible service)
Ubuntu/Debian
sudo apt update
sudo apt install -y python3-dev libasound2-dev libasound2-plugins libportaudio2 portaudio19-dev ffmpeg pulseaudio pulseaudio-utils
Note for WSL2 users: WSL2 requires additional audio packages (pulseaudio, libasound2-plugins) for microphone access.
Fedora/RHEL
sudo dnf install python3-devel alsa-lib-devel portaudio-devel ffmpeg
macOS
# Install Homebrew if not already installed
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install dependencies
brew install portaudio ffmpeg cmake
Windows (WSL)
Follow the Ubuntu/Debian instructions above within WSL.
NixOS
VoiceMode includes a flake.nix with all required dependencies. You can either:
- Use the development shell (temporary):
nix develop github:mbailey/voicemode
- Install system-wide (see Installation section below)
# Using Claude Code (recommended)
claude mcp add --scope user voicemode uvx --refresh voice-mode
π 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 Code (CLI)
claude mcp add voicemode -- uvx --refresh voice-mode
Or with environment variables:
claude mcp add voicemode --env OPENAI_API_KEY=your-openai-key -- uvx --refresh voice-mode
From source
git clone https://github.com/mbailey/voicemode.git
cd voicemode
pip install -e .
NixOS Installation Options
1. Install with nix profile (user-wide):
nix profile install github:mbailey/voicemode
2. 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/voicemode
- π Getting Started - Step-by-step setup guide
- π§ Configuration Reference - All environment variables
The only required configuration is your OpenAI API key:
export OPENAI_API_KEY="your-key"
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.
- 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 | sh
- OpenAI API error: Verify your
OPENAI_API_KEY
is set correctly - No audio output: Check system audio settings and available devices
To save all audio files (both TTS output and STT input):
export VOICEMODE_SAVE_AUDIO=true
Audio files are saved to: ~/.voicemode/audio/YYYY/MM/
with timestamps in the filename.
π Read the full documentation at voice-mode.readthedocs.io
- Getting Started - Step-by-step setup for all supported tools
- Configuration Guide - Complete environment variable reference
- Development Setup - Local development guide
- Whisper.cpp Setup - Local speech-to-text configuration
- Kokoro Setup - Local text-to-speech configuration
- LiveKit Integration - Real-time voice communication
- Website: getvoicemode.com
- Documentation: voice-mode.readthedocs.io
- GitHub: github.com/mbailey/voicemode
- PyPI: pypi.org/project/voice-mode
- Twitter/X: @getvoicemode
- YouTube: @getvoicemode
- π Getting Started - Setup instructions for all supported tools
- π§ Configuration Reference - Environment variables and options
- π€ Local Services Setup - Run TTS/STT locally for privacy
MIT - A Failmode Project
mcp-name: com.failmode/voicemode