voicemode-channel
v0.3.1
Published
VoiceMode Channel - inbound voice calls to Claude Code via VoiceMode Connect
Readme
VoiceMode Channel
A Claude Code plugin that enables inbound voice calls via VoiceMode Connect.
Users speak on their phone or web app, and their messages arrive in your Claude Code session as channel events. Claude responds using the reply tool, and the response is spoken aloud on the caller's device.

User speaks on phone/web -> VoiceMode gateway -> Channel plugin -> Claude Code
|
User hears TTS response <- Channel reply tool <----------------------+Install
Claude Code plugin
claude plugin marketplace add mbailey/claude-plugins
claude plugin install voicemode-channel@mbaileyStandalone (any MCP host)
npx voicemode-channelPrerequisites
- Node.js 20+
- VoiceMode Connect credentials (
~/.voicemode/credentials)- Run
voicemode-channel auth loginto authenticate
- Run
Auth
Manage your VoiceMode Connect credentials:
voicemode-channel auth login # Authenticate via browser (PKCE flow)
voicemode-channel auth logout # Remove stored credentials
voicemode-channel auth status # Show current auth stateOr via npx:
npx voicemode-channel auth loginUsage
Enable the channel
# During research preview, use the development flag
VOICEMODE_CHANNEL_ENABLED=true claude --dangerously-load-development-channels plugin:voicemode-channel@mbaileyMake a call
Open app.voicemode.dev on your phone or browser. Sign in with the same account, tap the call button, and speak. Claude will respond and you'll hear TTS audio playback.
Configuration
| Environment Variable | Default | Description |
| ------------------------------ | ------------------------ | --------------------------------------------------------------------------- |
| VOICEMODE_CHANNEL_ENABLED | false | Required. Must be true to enable. Server exits immediately otherwise. |
| VOICEMODE_CHANNEL_DEBUG | false | Enable debug logging |
| VOICEMODE_CONNECT_WS_URL | wss://voicemode.dev/ws | WebSocket gateway URL |
| VOICEMODE_AGENT_NAME | voicemode | Agent identity for gateway registration |
| VOICEMODE_AGENT_DISPLAY_NAME | Claude Code | Display name shown to callers |
How it works
This plugin provides an MCP server that declares the experimental claude/channel capability. It:
- Connects to the VoiceMode Connect WebSocket gateway (authenticated via Auth0)
- Registers as a callable agent so callers can reach it
- Receives voice transcripts and pushes them as channel notifications
- Provides a
replytool for Claude to send responses back
Channel events appear in Claude's session as:
<channel source="voicemode-channel" caller="NAME">TRANSCRIPT</channel>Troubleshooting
Channel not connecting
- Ensure
VOICEMODE_CHANNEL_ENABLED=trueis set - Check credentials exist:
voicemode-channel auth status - Re-authenticate:
voicemode-channel auth login - Enable debug logging:
VOICEMODE_CHANNEL_DEBUG=true
No audio on caller's device
- Confirm you're signed into app.voicemode.dev with the same account
- Check that Claude is using the
replytool (not a plain text response)
Plugin not found after install
- Verify Claude Code v2.1.80+ is installed:
claude --version - Reinstall:
claude plugin install voicemode-channel@mbailey
Hook timeout on startup
- The SessionStart hook installs npm dependencies -- this may take a moment on first run
- Subsequent starts use the cached install and are fast
Development
# Clone and test locally
git clone https://github.com/mbailey/voicemode-channel.git
cd voicemode-channel
npm install
# Build
make build
# Test with --plugin-dir
VOICEMODE_CHANNEL_ENABLED=true claude --plugin-dir . --dangerously-load-development-channels server:voicemode-channelTesting with mcptools
mcptools provides an interactive shell for testing MCP servers (brew install mcptools):
make shellExample session:
mcp > tools # List available tools
mcp > status # Check connection state
mcp > reply {"text":"hello from cli"} # Send a voice reply
mcp > profile # View agent profile
mcp > profile {"voice":"af_sky"} # Update profile fields
mcp > /q # QuitThe MCP Inspector web UI is also available:
make inspectStatus
Research preview. Requires Claude Code v2.1.80+ with channel support.
License
MIT
