Skip to content

pipecat-ai/whisker

Repository files navigation

whisker

PyPI Discord

ᓚᘏᗢ Whisker: A Pipecat Debugger

Whisker is a live graphical debugger for the Pipecat voice and multimodal conversational AI framework.

It lets you visualize pipelines and debug frames in real time — so you can see exactly what your bot is thinking and doing.

With Whisker you can:

  • 🗺️ View a live graph of your pipeline
  • ⚡ Watch frame processors flash in real time as frames pass through them
  • 📌 Select a processor to inspect the frames it has handled (both pushed and processed)
  • 🔍 Filter frames by name to quickly find the ones you care about
  • 🧵 Select a frame to trace its full path through the pipeline
  • 💾 Save and load previous sessions for review, collaboration, or troubleshooting

Think of Whisker as trace logging with batteries.

Whisker

🧭 Getting started

Requirements

  • Python 3.10+
  • Pipecat installed
  • Node.js 20+ (for the UI)
  • ngrok (for connecting to the hosted UI)

Install Whisker for Python

uv pip install pipecat-ai-whisker

Add Whisker to your Pipecat pipeline

from pipecat_whisker import WhiskerObserver

pipeline = Pipeline(...)

whisker = WhiskerObserver(pipeline)

task = PipelineTask(..., observers=[whisker])

This starts the Whisker server that the graphical UI will connect to. By default, the Whisker server runs at:

ws://localhost:9090

🌐 Option A: Use the hosted UI (Recommended)

  1. Expose your local server with ngrok:

    ngrok http 9090
  2. Copy the ngrok URL (e.g., your-ngrok-url.ngrok.io)

  3. Open the hosted Whisker UI: https://whisker.pipecat.ai/

  4. Connect to your bot:

    • In the WebSocket URL field, enter: wss://your-ngrok-url.ngrok.io
    • Click connect

🏠 Option B: Run the UI locally

If you prefer to run the UI locally:

  1. Clone the repository:

    git clone https://github.com/pipecat-ai/whisker.git
  2. Start the UI:

    cd whisker/ui
    npm install
    npm run dev
  3. Connect to http://localhost:5173

The UI will automatically connect to ws://localhost:9090 by default.

💾 Saving sessions

You can also save your sessions to a file, which is helpful for debugging later or sharing with someone for assistance:

whisker = WhiskerObserver(pipeline, file_name="whisker.bin")

Load the file using the Whisker client.

📚 Next steps