What it does

Everything between the microphone and the reply.

Seven capabilities, one router. Compose them per agent in a single YAML file.

Wake word + barge-in

An openWakeWord listener runs always-on. Say a wake word mid-reply and the whole playback process group is signaled instantly to start the new turn — barge-in is wake-gated, so it works without echo cancellation. Custom “hey dante”-style models train from synthetic speech alone in about 30 minutes — no recordings needed.

Streaming TTS

Audio starts the moment the provider emits its first chunk via /v1/tts/stream — no waiting for full synthesis.

Swappable providers

STT, LLM, and TTS are all pluggable. Cloud APIs or fully local servers — any OpenAI-compatible endpoint drops straight in.

A2A routing, per-agent voices

Route turns to OpenClaw / Hermes peers over A2A. Define peers by IP or discover them — each agent gets its own voice and wake word.

MCP tool calling

LLM agents call tools over MCP servers automatically — up to 5 rounds per turn, speaking JSON-RPC 2.0 over streamable HTTP with session continuity. Unreachable servers are skipped, not fatal.

Per-agent memory

Each agent remembers its last N turns, optionally persisted to disk. A2A turns are recorded too, so an LLM fallback resumes mid-conversation with context.

Self-hosted, local-first

The always-on pieces stay on your hardware. Docker Compose for the router and faster-whisper, a Windows system-tray app, and a preflight that checks hosts, A2A cards, and providers before you start.

docker tray preflight console traces logs

Ready to route your own voice stack?