Install & Compatibility
Where this runs
tested against v0.0.108 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
py 3.10
✕ build_error
✓ 38.2s
py 3.11
✕ build_error
✓ 24.2s
py 3.12
✕ build_error
✓ 23.8s
py 3.13
✕ build_error
✓ 24.6s
498MB installed
● package 498MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
Pipeline
✓ from pipecat.pipeline.pipeline import Pipeline
PipelineRunner
✓ from pipecat.pipeline.runner import PipelineRunner
LLMService
✓ from pipecat.services.llm import LLMService
TTSService
✓ from pipecat.services.tts import TTSService
VADService
✓ from pipecat.services.vad import VADService
DailyTransport
✓ from pipecat.transports.services.daily import DailyTransport
DailyParams
✓ from pipecat.transports.services.daily import DailyParams
DailyTransportOptions
✓ from pipecat.transports.services.daily import DailyTransportOptions
AudioFrame
✓ from pipecat.frames.frames import AudioFrame
TextFrame
✓ from pipecat.frames.frames import TextFrame
This quickstart sets up a basic voice AI assistant using Daily.co for real-time communication, OpenAI's GPT-4o for language understanding, and OpenAI's TTS-1 for speech synthesis. It demonstrates the core pipeline concept: user speech input is processed by an LLM, the LLM's text response is converted to speech, and then output to the user.
import asyncio
import os
from pipecat.frames.frames import AudioFrame, TextFrame
from pipecat.pipeline.pipeline import Pipeline
from pipecat.pipeline.runner import PipelineRunner
from pipecat.services.vad import VADService
from pipecat.transports.services.daily import DailyParams, DailyTransport, DailyTransportOptions
from pipecat.services.llm import LLMService
from pipecat.services.tts import TTSService
async def main():
# Make sure to set environment variables for DAILY_URL and OPENAI_API_KEY
# e.g., export DAILY_URL="https://example.daily.co/YOUR_ROOM"
# export OPENAI_API_KEY="sk-proj-..."
daily_url = os.environ.get("DAILY_URL", "")
openai_api_key = os.environ.get("OPENAI_API_KEY", "")
if not daily_url or not openai_api_key:
print("Please set DAILY_URL and OPENAI_API_KEY environment variables.")
return
# Setup your services (Daily, VAD, LLM, TTS)
transport = DailyTransport(
daily_url,
DailyTransportOptions(
lang="en",
vad_enabled=True,
mic_enabled=True,
speaker_enabled=True,
vad_service=VADService(),
),
)
llm = LLMService(
api_key=openai_api_key,
model="gpt-4o",
)
tts = TTSService(
api_key=openai_api_key,
model="tts-1",
voice="alloy",
)
# Define your pipeline: User audio -> LLM text -> TTS audio -> Bot audio
pipeline = Pipeline([
transport.input(), # User input (audio) from Daily
llm, # LLM processes user text
tts, # TTS generates audio from LLM text
transport.output(), # Bot output (audio) to Daily
])
runner = PipelineRunner()
print("Starting PipeCat AI assistant. Join the Daily room specified by DAILY_URL.")
await runner.run(pipeline)
if __name__ == "__main__":
asyncio.run(main())
Errors
Common errors & fixes
ModuleNotFoundError: No module named 'pipecat.audio'
This error typically occurs when an example or application code relies on a module, such as `pipecat.audio`, that is not present in the installed `pipecat-ai` version or if required optional dependencies (extras) like `silero` were not installed.
fixEnsure your installed `pipecat-ai` package is up-to-date with the code you are running, and install any necessary optional dependencies. For instance, to use `SileroVADAnalyzer`, you might need to run: `pip install 'pipecat-ai[silero]'` or `uv add 'pipecat-ai[silero]'`.
ERROR: Cannot install pipecat-ai[daily] == due to conflicting dependencies.
This indicates a dependency conflict, specifically when installing the `daily` extra for `pipecat-ai`, where `daily-python` or other sub-dependencies have incompatible version requirements, or when attempting to install on an unsupported operating system like Windows.
fixTry loosening package version constraints in your `requirements.txt` or `pyproject.toml` to allow the package manager to find compatible versions. If on Windows, note that `daily-python` does not officially support it; consider using WSL2 or a Linux environment for `daily` transport functionality.
AttributeError: 'LLMUserResponseAggregator' object has no attribute '_FrameProcessor__process_queue'
This `AttributeError` suggests an internal state or initialization issue within Pipecat's `FrameProcessor` hierarchy, often a bug where a processor (like `LLMUserResponseAggregator`) attempts to access an attribute that hasn't been properly initialized due to a race condition or a change in the framework's internal lifecycle.
fixThis was a known bug in certain versions of `pipecat-ai` (e.g., v0.0.86 or related to commit a5ea6e1); upgrading `pipecat-ai` to the latest version should resolve this issue as fixes have been implemented.
ImportError: cannot import name 'OutputImageRawFrame' from 'pipecat.frames.frames'
This `ImportError` typically arises when your application code or an example is written for a newer version of `pipecat-ai` where modules, classes, or their locations have been refactored or renamed, but an older version of the library is currently installed.
fixUpdate your `pipecat-ai` installation to the latest version using `pip install --upgrade pipecat-ai` or `uv update pipecat-ai`. Alternatively, if you need to stick to an older version, modify your code to match the imports and API of your installed `pipecat-ai` version.
'NoneType' object has no attribute 'tool_calls'
This error occurs when an expected object (e.g., an LLM response object containing `tool_calls`) is `None`, indicating that the external AI service (like Gemini or OpenAI) either did not return the expected data, experienced an internal error, or returned an empty/malformed response.
fixVerify your API keys, check the status of the integrated external AI service, ensure the request payload is correct, and implement robust error handling or fallback logic for potentially `None` responses from external service integrations.
Upgrade
Version history
1.8.1latest on PyPI · released Aug 27, 2026
Audit
Dependencies
PythonrequiredRequires Python 3.10 or newer for async/await and other features.