Voice Mode
STDIONatural voice conversations for AI assistants through Model Context Protocol with real-time STT/TTS
Natural voice conversations for AI assistants through Model Context Protocol with real-time STT/TTS
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+
All you need to get started:
# 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 converse
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.
curl -LsSf https://astral.sh/uv/install.sh | sh)sudo apt update sudo apt install -y ffmpeg gcc libasound2-dev libasound2-plugins libportaudio2 portaudio19-dev pulseaudio pulseaudio-utils python3-dev
Note 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 portaudio
Follow the Ubuntu/Debian instructions above within WSL.
VoiceMode includes a flake.nix with all required dependencies. You can either:
nix develop github:mbailey/voicemode
# 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 mcp add --scope user voicemode -- uvx --refresh voice-mode
Or with environment variables:
claude mcp add --scope user --env OPENAI_API_KEY=your-openai-key voicemode -- uvx --refresh voice-mode
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/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
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:
These services provide the same API interface as OpenAI, allowing seamless switching between cloud and local processing.
curl -LsSf https://astral.sh/uv/install.sh | shOPENAI_API_KEY is set correctlyTo 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
MIT - A Failmode Project
mcp-name: com.failmode/voicemode