Skip to main content

VoiceMode - Voice interaction capabilities for AI assistants (formerly voice-mcp)

Project description

VoiceMode

Install via: uv tool install voice-mode | getvoicemode.com

PyPI Downloads PyPI Downloads PyPI Downloads

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+

✨ 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

🎯 Simple Requirements

All you need to get started:

  1. 🎤 Computer with microphone and speakers
  2. 🔑 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 converse

Manual Installation

For manual setup steps, see the Getting Started Guide.

🎬 Demo

Watch VoiceMode in action with Claude Code:

VoiceMode Demo

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
  • Astral UV - Package manager (install with curl -LsSf https://astral.sh/uv/install.sh | sh)
  • OpenAI API Key (or compatible service)

System Dependencies

Ubuntu/Debian
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.

Fedora/RHEL
sudo dnf install alsa-lib-devel ffmpeg gcc portaudio portaudio-devel python3-devel
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 ffmpeg node portaudio
Windows (WSL)

Follow the Ubuntu/Debian instructions above within WSL.

NixOS

VoiceMode includes a flake.nix with all required dependencies. You can either:

  1. Use the development shell (temporary):
nix develop github:mbailey/voicemode
  1. Install system-wide (see Installation section below)

Quick Install

# Using Claude Code (recommended)
claude mcp add --scope user voicemode uvx --refresh voice-mode

Configuration 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 Code (CLI)
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

Alternative Installation Options

From source
git clone https://github.com/mbailey/voicemode.git
cd voicemode
uv tool 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

Configuration

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 | sh
  • OpenAI API error: Verify your OPENAI_API_KEY is set correctly
  • No 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=true

Audio 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

Development

Service Guides

Links

Community

See Also

License

MIT - A Failmode Project


mcp-name: com.failmode/voicemode

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

voice_mode-6.0.0.tar.gz (330.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

voice_mode-6.0.0-py3-none-any.whl (1.5 MB view details)

Uploaded Python 3

File details

Details for the file voice_mode-6.0.0.tar.gz.

File metadata

  • Download URL: voice_mode-6.0.0.tar.gz
  • Upload date:
  • Size: 330.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for voice_mode-6.0.0.tar.gz
Algorithm Hash digest
SHA256 331667c67e1d5307686767027c0b4134ab2eb533711a6201623624334411bb25
MD5 849ca24307bf39266b09376129e51b21
BLAKE2b-256 1ff8f5519ebec647d4157b02ba1b907d6f85a67da74ecb929eb978a2ae3fdcd5

See more details on using hashes here.

Provenance

The following attestation bundles were made for voice_mode-6.0.0.tar.gz:

Publisher: publish-pypi-and-mcp.yml on mbailey/voicemode

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file voice_mode-6.0.0-py3-none-any.whl.

File metadata

  • Download URL: voice_mode-6.0.0-py3-none-any.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for voice_mode-6.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b7cc5278c184fd94614e2ca36e374fd56aa83084a116cd9e12d12427039c6d44
MD5 9da3473bcc823af7ff5e7cbf897b4962
BLAKE2b-256 e54a4e563d875e6c306e149a64d03018caa4fa6edfb1a2e7b8102f6642745f1a

See more details on using hashes here.

Provenance

The following attestation bundles were made for voice_mode-6.0.0-py3-none-any.whl:

Publisher: publish-pypi-and-mcp.yml on mbailey/voicemode

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page