Files
pipecat/examples/foundational
Mark Backman 6431ad8e2a Fix service settings init ordering and example bugs
- Speechmatics: move config build after super().__init__ and settings
  delta so turn_detection_mode (e.g. ADAPTIVE) takes effect
- Google STT: fix example passing bare Language enum instead of list
- Google TTS: add missing explicit defaults for all custom settings fields
- Soniox: fix accidental tuple wrapping of STT service in example
- Speechmatics examples: fix system->user role in kick-off messages
- Deepgram Flux: move tag from settings to __init__ (billing metadata)
- ElevenLabs STT: default tag_audio_events to None (use API default)
- Fal STT: simplify language default handling
- Google TTS: rename GoogleStreamTTSSettings to GoogleTTSSettings
2026-03-06 15:17:01 -05:00
..
2026-03-06 08:30:00 -05:00
2026-03-06 08:30:00 -05:00
2026-03-06 08:30:00 -05:00
2026-03-06 08:30:00 -05:00
2026-03-06 08:30:00 -05:00
2026-03-06 08:30:00 -05:00
2026-03-06 08:30:00 -05:00
2026-03-06 08:30:00 -05:00
2026-03-06 08:30:00 -05:00
2026-03-06 08:30:00 -05:00
2026-03-06 08:30:00 -05:00
2026-03-06 08:30:00 -05:00
2026-03-06 08:30:00 -05:00
2026-03-06 08:30:00 -05:00
2026-01-18 08:22:22 -05:00
2026-03-02 17:52:39 -05:00

Pipecat Foundational Examples

This directory contains examples showing how to build voice and multimodal agents with Pipecat. Each example demonstrates specific features, progressing from basic to advanced concepts.

Setup

  1. Follow the README steps to get your local environment configured.

    Run from root directory: Make sure you are running the steps from the root directory.

    Using local audio?: The LocalAudioTransport requires a system dependency for portaudio. Install the dependency to use the transport.

  2. Copy the env.example file and add API keys for services you plan to use:

    cp env.example .env
    # Edit .env with your API keys
    
  3. Navigate to the examples directory if you aren't already there:

    cd examples/foundational
    
  4. Run any example:

    uv run python 01-say-one-thing.py
    
  5. Open the web interface at http://localhost:7860/client/ and click "Connect"

Running examples with other transports

Most examples support running with other transports, like Twilio or Daily.

Daily

You need to create a Daily account at https://dashboard.daily.co/u/signup. Once signed up, you can create your own room from the dashboard and set the environment variables DAILY_ROOM_URL and DAILY_API_KEY. Alternatively, you can let the example create a room for you (still needs DAILY_API_KEY environment variable). Then, start any example with -t daily:

uv run 07-interruptible.py -t daily

Twilio

It is also possible to run the example through a Twilio phone number. You will need to setup a few things:

  1. Install and run ngrok.
ngrok http 7860
  1. Configure your Twilio phone number. One way is to setup a TwiML app and set the request URL to the ngrok URL from step (1). Then, set your phone number to use the new TwiML app.

Then, run the example with:

uv run 07-interruptible.py -t twilio -x NGROK_HOST_NAME

Examples by Feature

Basics

Conversational AI

Common Utilities

Advanced LLM Features

Media Handling

Vision & Multimodal

Voice & Language

Integration Examples

Performance & Optimization

Advanced Usage

Customizing Network Settings

uv run python <example-name> --host 0.0.0.0 --port 8080

Troubleshooting

  • No audio/video: Check browser permissions for microphone and camera
  • Connection errors: Verify API keys in .env file
  • Port conflicts: Use --port to change the port

For more examples, visit our the pipecat-examples repository.