Skip to content

v0.3.0 - Multi-Session

Multi-session hub, simplified controls, and background conversation support.

Hub

  • ClawMux — Standalone service (hub.py) on port 3460 that spawns and manages multiple Claude Code voice sessions from a single browser tab.
  • Session spawning — Click "New Session" to create a tmux-backed Claude session with auto-configured MCP.
  • Session tabs — Tab bar with per-session status dots, close buttons, and badge notifications. Tab label shows Kokoro voice name.
  • Chat transcript — Display user and assistant message text in a scrollable chat view per session.
  • Per-session voice selection — Dropdown to choose Kokoro TTS voice (Sky, Alloy, Sarah, Adam, Echo, Onyx, Fable) per session. Auto-rotates through unused voices on spawn.
  • Agent identity — Each session gets a CLAUDE.md with the voice name as its identity. Greets with "Hi, I'm [name]! How can I help?"
  • Dynamic MCP config — Per-session temp directory with .mcp.json so each Claude instance connects to the hub with the correct session identity.
  • Session timeout — Auto-terminate sessions after 30 minutes of inactivity.
  • Clean session termination — Closes MCP WebSocket, kills tmux, removes temp dir.
  • Tmux session ID in controls — Bottom bar shows tmux session name for easy tmux attach.
  • Chat persistence — Chat messages saved to localStorage and restored on page reload.
  • Voice grid landing page — Grid of voice cards showing connected/available status. Click to spawn or switch to session. Auto-close tab on agent goodbye.

Controls & Recording

  • Simplified button flow — Single main button cycles: Record (blue) → Send (green) → Interrupt (orange) → Processing (grey). Cancel button separate.
  • Mic mute — Toggle to mute microphone input across all sessions.
  • Auto Record toggle — Auto-start recording after Claude speaks.
  • Auto End (VAD) toggle — Voice activity detection auto-stops recording on 1.5s silence. Send button always available for early send.
  • Interrupt support — Tap Interrupt button during audio playback to stop it immediately. Hub receives playback_done and proceeds to listen.
  • Cancel recording — Separate cancel button discards audio and sends silence so hub doesn't hang.
  • Persistent mic stream — Mic permission acquired once and stream reused. Fixes background tab recording (no re-prompt when unfocused).

Multi-Session

  • Background audio buffering — Background sessions buffer TTS audio. Plays on tab switch before resuming conversation.
  • Pause/resume on tab switch — Switching away pauses audio, switching back resumes from where it stopped.
  • Background pending listen — If a background session wants mic input, it activates when you switch to that tab.
  • Stop recording on tab switch — Discards in-progress recording when switching away to prevent cross-session audio.
  • Tab badge notifications — Badge appears on tabs with pending audio or listen requests.

Audio

  • Audio feedback cues — Ascending tone for listening, soft tone for processing, chime for session ready.
  • No recording timeout — Removed the 120-second timeout on voice recording.
  • Per-session speed control — Adjustable TTS speed (0.75x–2x) per session.
  • Voice interrupt — Interrupt Claude by speaking instead of tapping the button. VAD detects speech during playback, stops audio, and starts recording immediately. Toggle: "Auto Interrupt".
  • Thinking sounds — Periodic double-tick audio cue via Web Audio API while Claude is processing. Only plays on the focused session tab.
  • Thinking indicator in chat — Animated pulsing dots in the chat transcript while Claude is processing. Disappears when the agent responds.

Debug

  • Inline debug panel — Debug tab showing hub info, service connectivity, active sessions, tmux sessions, and log tail. Auto-refreshes every 5 seconds.

Branding & Docs

  • Favicon and tab title — Custom SVG mic favicon, tab title "ClawMux".
  • Human guidedocs/guide/overview.md — what it is, how to use it, controls reference.
  • Agent referencedocs/agents/agent-reference.md — file map, code pointers, endpoints, debugging.