Skip to main content
unmute-core is a Python library. It holds the voice-agent behaviour that must be the same on every framework: typed call state, tasks, tools, handoffs, the model call and telemetry. You keep LiveKit or Pipecat, your speech and model plugins, and your pipeline. The library adds what a real call needs on top. Why Unmute Core follows one salon call and shows what each part fixes.

Unmute and unmute-core

  1. Unmute is a compiler. You describe an agent in agent.yaml, and Unmute writes a Python project for LiveKit or Pipecat.
  2. unmute-core is the library that project imports. It runs the call: it saves values, steps through tasks, runs tools and sends spans.
  3. Your own agent can import the same library. You build the pipeline in your agent.py, and call the library where you need it.
  4. The library never reads agent.yaml and never builds the pipeline. The framework still owns speech, turn detection and the model plugins.
A fix in the library reaches every agent: the ones Unmute generates and the ones you write by hand. How Unmute uses the library shows which agent.yaml key turns into which class.

Plug points

Four interfaces let your code add a capability without changing the library. A plug point may add a capability. It never changes how the rest of the library behaves.

How to read these docs

  1. Quickstart. Run the smallest agent in a few minutes.
  2. Build a salon agent. Grow one agent, one piece per page. Each page says what the piece is, why it is there, and how to use it.
  3. On your framework. Already have a LiveKit or Pipecat agent? Add one piece at a time.
  4. Guides. One section per topic, such as State or Tasks. Each starts with what the topic is and when to use it, then goes deeper one page at a time.
  5. Example agents. Four whole agents with a different shape of call each: a finder, a long intake, an outbound reminder and a bilingual tutor. Each runs on both frameworks.
  6. Reference. Every argument of every class, such as the Tasks reference.

Where to go next

Quickstart

Run the smallest agent on LiveKit or Pipecat.

Build a salon agent

Grow one agent, one piece per page.

Add one piece to your agent

Use only the parts you need on a plain agent.

How Unmute uses it

Which agent.yaml key becomes which library class.

Example agents

Four whole agents, each a different shape of call.

Type the path

Let the model understand, and let code decide and speak.