A real-time debugger for Pipecat
Project description
ᓚᘏᗢ Whisker: A Pipecat Debugger
Whisker is a low-level 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.
🧭 Getting started
Requirements
Install Whisker for Python
uv pip install pipecat-ai-whisker
Add Whisker to your Pipecat pipeline
You can add Whisker to your pipeline by just adding an observer to the pipeline task.
from pipecat_whisker import WhiskerObserver
pipeline = Pipeline(...)
task = PipelineTask(...)
task.add_observer(WhiskerObserver(task.pipeline))
Starting in Pipecat 0.0.99, it is also possible to add Whisker in an unobtrusive way by using an external pipeline task setup file and adding that file to the PIPECAT_SETUP_FILES environment variable.
from pipecat_whisker import WhiskerObserver
from pipecat.pipeline.task import PipelineTask
async def setup_pipeline_task(task: PipelineTask):
task.add_observer(WhiskerObserver(task.pipeline))
In both cases, 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)
-
Expose your local server with ngrok:
ngrok http 9090
-
Copy the ngrok URL (e.g.,
your-ngrok-url.ngrok.io) -
Open the hosted Whisker UI: https://whisker.pipecat.ai/
-
Connect to your bot:
- In the WebSocket URL field, enter:
wss://your-ngrok-url.ngrok.io - Click connect
- In the WebSocket URL field, enter:
🏠 Option B: Run the UI locally
If you prefer to run the UI locally:
-
Clone the repository:
git clone https://github.com/pipecat-ai/whisker.git
-
Start the UI:
cd whisker/ui npm install npm run dev
-
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
- View some examples in the
examplesfolder - See the Pipecat documentation for more about building bots
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pipecat_ai_whisker-1.0.0.tar.gz.
File metadata
- Download URL: pipecat_ai_whisker-1.0.0.tar.gz
- Upload date:
- Size: 159.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
930865013b05ba8cab51e93139a4da07603ceda057e7126402e0e9ca59c86c00
|
|
| MD5 |
7329bcf7ce7af35a6b9c6f609e72634c
|
|
| BLAKE2b-256 |
81b70c859681ea083a46b79903788e1a426bd546ea52f347e670c8341efb643f
|
Provenance
The following attestation bundles were made for pipecat_ai_whisker-1.0.0.tar.gz:
Publisher:
publish.yaml on pipecat-ai/whisker
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pipecat_ai_whisker-1.0.0.tar.gz -
Subject digest:
930865013b05ba8cab51e93139a4da07603ceda057e7126402e0e9ca59c86c00 - Sigstore transparency entry: 1301185099
- Sigstore integration time:
-
Permalink:
pipecat-ai/whisker@e9b728aa4e2e29a1e1b2e3b783663b0597a56f36 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/pipecat-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@e9b728aa4e2e29a1e1b2e3b783663b0597a56f36 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file pipecat_ai_whisker-1.0.0-py3-none-any.whl.
File metadata
- Download URL: pipecat_ai_whisker-1.0.0-py3-none-any.whl
- Upload date:
- Size: 9.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1e9d2ea059cdddc3b890d0e5470ef2e1623693b92a86a6b7767ac6e2881f595
|
|
| MD5 |
ab8e840d9902e142f632ca8c41096429
|
|
| BLAKE2b-256 |
e34be8e0777060a8c59a59a7b235cb673af2af39263c2aa9578f8082de6b2890
|
Provenance
The following attestation bundles were made for pipecat_ai_whisker-1.0.0-py3-none-any.whl:
Publisher:
publish.yaml on pipecat-ai/whisker
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pipecat_ai_whisker-1.0.0-py3-none-any.whl -
Subject digest:
f1e9d2ea059cdddc3b890d0e5470ef2e1623693b92a86a6b7767ac6e2881f595 - Sigstore transparency entry: 1301185232
- Sigstore integration time:
-
Permalink:
pipecat-ai/whisker@e9b728aa4e2e29a1e1b2e3b783663b0597a56f36 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/pipecat-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@e9b728aa4e2e29a1e1b2e3b783663b0597a56f36 -
Trigger Event:
workflow_dispatch
-
Statement type: