Unmute moves exact voice-agent replies out of the model's hands
Version 0.8.0 compiles LiveKit and Pipecat agents onto shared typed call logic, with code-controlled read-backs and receipts, and drops their version 1 packages.
Unmute 0.8.0 lets the model choose a voice agent’s next action while code supplies the words that must stay exact. The October 18 release moves generated LiveKit and Pipecat projects onto the shared unmute-core library, with typed call state, Python tool handlers and rules for read-backs, offers and booking receipts.
For a salon concierge, that means a tool can save an appointment and finish the task with a prescribed receipt instead of asking the model to compose another confirmation. The maintainer says its salon example now uses one model request per caller turn, versus two or three with version 1. That is a claim about the project’s example, not a general latency or cost benchmark independently reproduced by AITrending.
Existing agents need a migration
LiveKit and Pipecat now accept only agent.yaml version 2. Users must add a Pydantic State class in state.py, type local tool handlers and validate the package. Targets must pin LiveKit Agents 1.8.8 or Pipecat 1.12.0; the generated stack uses Python 3.12 and unmute-core 0.17.1. Other target versions are refused.
The output layout also changes, so deployment scripts reading old files need updating before recompilation and redeployment. Twilio and SLNG retain their own runtimes and still accept version 1; version 2 does not imply every target supports the same features.
There are material gaps. LiveKit and Pipecat do not yet compile mcp: or slng: tools, built-ins other than end_call, or Coval tracing. The release also flags typed-input problems in realtime development modes, and says spoken turns for LiveKit GPT-Live have not yet been tested.
A compiler, not a hosted model
Unmute is an MIT-licensed command-line compiler. Its tagged README documents Homebrew on macOS, Scoop on Windows, Linux release archives and installation through Go 1.26 or newer. The local LiveKit browser loop needs Docker with Compose; Pipecat uses uv, which is also needed to validate packages containing typed Python state.
The default quickstart asks for OpenAI and SLNG API keys and microphone permission. Model, speech and hosting charges depend on the chosen services; the release does not establish an all-inclusive operating price. Generated Python projects run on the selected framework and import unmute-core, while the compiler itself stays outside the live call path. Local Python handlers execute application code, so their access and deployment credentials remain part of the user’s configuration.