Skip to main content
Unmute Unmute is a declarative standard for voice agents. You describe the agent once, in YAML and Markdown. The compiler turns that package into a native project for the target you pick: Pipecat, LiveKit, or SLNG.
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 deploy pushes it, and SLNG runs the agent.

What a package looks like

An Unmute package keeps the agent in agent.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.
Unmute itself is not a runtime. It compiles ahead of time and hands the result to the target: a project you run, or a deployment SLNG runs for you.

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.