Claude Code: Install VoiceMode on Debian/Ubuntu
·2 mins
Overview #
VoiceMode enables voice conversations with Claude Code. The automatic installer has issues on Debian x86_64, so this guide covers manual installation of the Whisper speech-to-text service. This guide might also be useful for other Debian related distros like Ubuntu and Mint.
Prerequisites #
# Install system dependencies
sudo apt-get update
sudo apt-get install -y clang cmake g++ make libsdl2-dev portaudio19-dev
# Install uv (Python package manager - provides uvx command)
curl -LsSf https://astral.sh/uv/install.sh | sh
source ~/.local/bin/env # or restart your shell
# Install VoiceMode CLI and Kokoro TTS
uvx voice-mode-install --yes
Manual Whisper Installation #
The automatic installer has a bug on Debian x86_64. Install manually:
# Clone whisper.cpp
mkdir -p ~/.voicemode/services
git clone https://github.com/ggerganov/whisper.cpp.git ~/.voicemode/services/whisper
# Build
cd ~/.voicemode/services/whisper
cmake -B build -DWHISPER_SDL2=ON
cmake --build build -j$(nproc)
# Download model (142MB)
curl -L -o models/ggml-base.bin "https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-base.bin"
Systemd Service (auto-start on boot) #
mkdir -p ~/.config/systemd/user
cat > ~/.config/systemd/user/voicemode-whisper.service << 'EOF'
[Unit]
Description=Whisper.cpp Speech Recognition Server
After=network.target
[Service]
Type=simple
ExecStart=%h/.voicemode/services/whisper/build/bin/whisper-server --host 127.0.0.1 --port 2022 --model %h/.voicemode/services/whisper/models/ggml-base.bin --inference-path /v1/audio/transcriptions
Restart=on-failure
RestartSec=10
[Install]
WantedBy=default.target
EOF
systemctl --user daemon-reload
systemctl --user enable voicemode-whisper.service
systemctl --user start voicemode-whisper.service
Add MCP Server to Claude Code #
claude mcp add --scope user voicemode -- uvx --refresh voice-mode
Verify Installation #
voicemode service status whisper
voicemode service status kokoro
Both should show as running.
Usage #
Restart Claude Code, then:
/voicemode:converse
Service Management #
# Start/stop/restart
systemctl --user start voicemode-whisper.service
systemctl --user stop voicemode-whisper.service
systemctl --user restart voicemode-whisper.service
# View logs
journalctl --user -u voicemode-whisper.service -f
# Kokoro (managed by voicemode)
voicemode service start kokoro
voicemode service stop kokoro