> For the complete documentation index, see [llms.txt](https://docs.arcee.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.arcee.ai/get-started/integration-list/pipecat.md).

# Pipecat

**Pipecat** is an open-source, real-time voice AI orchestration framework built for developers who want to create deeply interactive, multimodal conversational agents. It provides a flexible pipeline architecture for integrating speech recognition (STT), language models, and speech synthesis (TTS) components into low-latency, event-driven workflows. Designed for modularity and extensibility, Pipecat enables developers to compose custom voice agent stacks that handle audio streaming, turn-taking, and response timing with precision.

This tutorial will guide you through integrating Arcee AI models as the LLM backbone for your Pipecat voice agent. We'll integrate Arcee's models using OpenRouter.

***

<figure><img src="/files/KdGSyD7dqYYQP2kg9LQT" alt="" width="563"><figcaption></figcaption></figure>

**Prerequisites**

* **Python:** `>=3.10`
* OpenRouter API Key
  * If you don't have an account, set one up [here](https://openrouter.ai/).
* [uv](https://docs.astral.sh/uv/getting-started/installation/) package manager installed

**Quickstart**

Install the Pipecat CLI globally using [uv](https://docs.astral.sh/uv/)

```bash
uv tool install pipecat-ai-cli
```

Run the Pipecat interactive setup wizard to create the scaffolding for a pipecat agent

```
pipecat init
```

You will be prompted with a few questions which determine how the project is setup. Use the following configuration:

```
Project name: arcee-pipecat
Bot type: Web/Mobile
Client framework: React
React dev server: Vite
Transport: SmallWebRTC
Add another transport for local testing? No
Pipeline architecture: Cascade (STT → LLM → TTS)
Speech-to-Text: Deepgram
Language model: OpenRouter
Text-to-Speech: Deepgram

Customize feature settings? Yes
Audio recording? Yes
Transcription logging? Yes
Smart turn-taking? Yes
Use video avatar service? No
Video input? No
Video output? No
Enable observability? No
Deploy to Pipecat Cloud? No
```

{% hint style="success" %}
These configurations create an agent which uses Deepgram for Speech-to-Text and Text-to-Speech, and Arcee models through OpenRouter for the LLM.

You can modify any of these settings to change your voice agent.
{% endhint %}

Setup the client

```bash
cd arcee-pipecat/client
npm install
npm run dev
```

Setup the server, install dependencies, and create a `.env` file

{% code fullWidth="false" %}

```bash
cd arcee-pipecat/server
uv sync
cp .env.example .env
```

{% endcode %}

In the `.env` file, populate your Deepgram and OpenRouter API Key and provide a Deepgram Voice ID and the Arcee AI LLM you want to use. For example:

```
# Deepgram (STT/TTS)
DEEPGRAM_API_KEY=<YOUR_DEEPGRAM_KEY>
DEEPGRAM_VOICE_ID=aura-2-thalia-en

# OpenRouter (LLM)
OPENROUTER_API_KEY=<YOUR_OPENROUTERR_KEY>
OPENROUTER_MODEL=arcee-ai/trinity-mini
```

{% hint style="info" %}
A full list of Deepgram Voice IDs can be found [here](https://developers.deepgram.com/docs/tts-models).
{% endhint %}

Edit the Voice Agent Kickoff System prompt

1. Navigate to `arcee-pipecat/server/bot.py`&#x20;
2. Replace the content of the Kickoff system prompt (on line 139) with the following message:

{% code overflow="wrap" %}

```
You are a helpful voice ai assistant powered Arcee AI Language Models. Respond naturally and keep your answers conversational. Start by introducing yourself.
```

{% endcode %}

The full line should now look like the following:

```python
        # Kick off the conversation
        messages.append({"role": "system", "content": "You are a helpful voice ai assistant powered Arcee AI Language Models. Respond naturally and keep your answers conversational. Start by introducing yourself."})
```

Run your Voice Agent, access at <http://localhost:5173/>, and click connect to start the conversation!

```bash
uv run bot.py
```
