Skip to content

Instantly share code, notes, and snippets.

@jlmalone
Created March 4, 2026 11:54
Show Gist options
  • Select an option

  • Save jlmalone/5bc93bbb57fa34b1b3767994913568b4 to your computer and use it in GitHub Desktop.

Select an option

Save jlmalone/5bc93bbb57fa34b1b3767994913568b4 to your computer and use it in GitHub Desktop.
Claude Code slash commands for voicemode — on-demand voice conversations with full install/teardown. Drop these in ~/.claude/commands/

Fully tear down the voicemode MCP server — unregister, kill services, unload launchd agents.

Prerequisites

  • macOS (uses launchctl and pkill)

Instructions

Run all of the following commands in order:

1. Unregister the MCP server from Claude Code

claude mcp remove --scope user voicemode

2. Unload launchd agents (stops auto-respawn)

launchctl unload ~/Library/LaunchAgents/com.voicemode.kokoro.plist 2>/dev/null
launchctl unload ~/Library/LaunchAgents/com.voicemode.whisper.plist 2>/dev/null

3. Force kill any remaining processes

pkill -9 -f voicemode 2>/dev/null

4. Verify clean shutdown

ps aux | grep -i voicemode | grep -v grep

If the verify step returns no output, everything is fully stopped.

After running, tell the user:

  • Voice mode MCP server has been unregistered
  • Kokoro (TTS) and Whisper (STT) services have been killed
  • Launchd agents unloaded — services will not respawn
  • Use /voice-on to re-enable when needed

Enable the voicemode MCP server for voice conversations in Claude Code.

Prerequisites

  • uvx (from uv) must be installed
  • macOS (launchd service management)

Instructions

Run the following command to register the voicemode MCP server:

claude mcp add --scope user --transport stdio voicemode -- uvx --refresh --with webrtcvad --with "setuptools<71" voice-mode

Note: The setuptools<71 pin is required because webrtcvad depends on pkg_resources, which was removed in setuptools 71+. Without it, VAD silently fails and recording runs for the full duration instead of detecting silence.

After running, tell the user:

  • Voice mode MCP server has been registered
  • They need to restart Claude Code (/exit then relaunch) for the MCP server to connect
  • Once restarted, use /voice-standby to begin a voice conversation
  • Use /voice-off when done to fully tear down all services

Do NOT attempt to call any voicemode MCP tools in this session — they won't be available until restart.

Enter voice standby mode — a persistent voice conversation that stays open indefinitely.

Prerequisites

  • The voicemode MCP server must be registered and active (use /voice-on first, then restart Claude Code)
  • Microphone access must be granted

Behavior

You are now in voice standby mode. Follow these rules exactly:

Core Loop

  1. Call mcp__voicemode__converse with wait_for_response=true to listen
  2. If the user speaks, respond appropriately and listen again
  3. If silence/blank audio is detected, immediately re-open the mic WITHOUT speaking (use skip_tts=true)
  4. NEVER end the conversation due to silence — always keep listening
  5. Continue this loop indefinitely until the user explicitly says "stop", "exit", or "end voice mode"

Voice Parameters

  • listen_duration_max: 120 (2 minutes max per listen cycle)
  • listen_duration_min: 5 (wait 5 seconds minimum before silence cutoff)
  • vad_aggressiveness: 0 when in standby (permissive — catches faint speech), 2 when in active conversation (responsive)
  • skip_tts: true when user was silent, false when responding to speech

When User Speaks

  • Switch to vad_aggressiveness: 2 for responsive conversation
  • Respond concisely via voice
  • Execute any requested tasks (clipboard, file ops, shell commands, etc.)
  • After responding, return to standby with vad_aggressiveness: 0

When User is Silent

  • Do NOT say anything — just silently re-open the mic
  • Use skip_tts=true with message "." to minimize overhead
  • This is the key behavior: the mic keeps cycling on/off silently in the background

Capabilities While in Standby

  • Read/write clipboard (pbcopy/pbpaste)
  • Execute shell commands
  • Read/write files
  • Manage processes (inspect, kill, etc.)
  • Create GitHub issues/PRs
  • Any normal Claude Code operation

Starting Message

Begin by saying: "Voice standby mode active. I'll keep listening silently until you speak. Say 'exit voice mode' to stop."

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment