> ## Documentation Index
> Fetch the complete documentation index at: https://docs.slng.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

<img src="https://mintcdn.com/slng-new-docs/D3LOFTSUUDq9NzCl/images/site/unmute-logo.svg?fit=max&auto=format&n=D3LOFTSUUDq9NzCl&q=85&s=464df749650cd76b2a51928f02afdeab" alt="Unmute" width="220" noZoom data-path="images/site/unmute-logo.svg" />

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.

<Info>
  You can find more information at [unmute.ai](https://unmute.ai)
</Info>

## 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 <Tooltip tip="A README written for your build alone. It lists the exact keys, commands and phone steps that build needs.">runbook</Tooltip>. 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](https://github.com/slng-ai/unmute) says what a pull request needs.

<Columns cols={2}>
  <Card title="Discord" icon="message-circle" href="https://discord.gg/kxZactmWj">
    Ask a question, show what you built, and talk to the people who maintain Unmute.
  </Card>

  <Card title="GitHub" icon="github" href="https://github.com/slng-ai/unmute">
    Read the source, file an issue, and open a pull request.
  </Card>
</Columns>
