You can find more information at unmute.ai
The problem
A voice agent is a small idea buried in a lot of plumbing. Speech in, a model that thinks, speech out, a way to end the call, a way to hand the caller to a person. Every framework asks you to write that plumbing again, in its own shape. So teams end up here:- The prompt, the tools, and the phone number live in the same file as the session setup, the audio pipeline, and the retry logic.
- Changing the voice means reading framework code.
- Trying a second framework means rewriting the agent.
- Nobody can answer “what does this agent actually do” without reading Python.
What Unmute does
Unmute splits the agent from the code that runs it. You describe the agent once: who it is, which models it uses, which tools it can call, how it hands work to another agent, what happens on a phone call. That description is the package. Nothing in it belongs to one framework. Then you pick a target. A target is where the agent will run, and Unmute compiles the package into what that target expects:- Pipecat and LiveKit are code targets. You get a Python project with a Dockerfile, a
.env.example, and a . The project does not import Unmute, and Unmute is not in the call path. - SLNG is a hosted target. You get a deployment body,
unmute deploypushes it, and SLNG runs the agent.
What a package looks like
An Unmute package keeps the agent inagent.yaml, its prompt in a Markdown file, and the target choices in targets.yaml. The guided path shows the complete files, then explains each block where you first need it.
Who it is for
- Teams who ship voice agents and want the agent’s behavior in files a reviewer can read, not in framework code.
- Teams who want to compare Pipecat, LiveKit, and SLNG without writing the agent three times.
- Anyone who wants what the agent does reviewable in a pull request.
Join the community
Unmute is open source and MIT licensed. Anyone can use it, and anyone can contribute to it. Bring a question, show what you built, or send the change yourself. The contributing guide says what a pull request needs.Discord
Ask a question, show what you built, and talk to the people who maintain Unmute.
GitHub
Read the source, file an issue, and open a pull request.