Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ All notable changes to **Whisker** will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]
## [0.0.11] - 2026-01-12

### Added

Expand Down
22 changes: 18 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

# ᓚᘏᗢ Whisker: A Pipecat Debugger

**Whisker** is a live graphical debugger for the [Pipecat](https://github.com/pipecat-ai/pipecat) voice and multimodal conversational AI framework.
**Whisker** is a low-level debugger for the [Pipecat](https://github.com/pipecat-ai/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.

Expand Down Expand Up @@ -40,17 +40,31 @@ 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.

```python
from pipecat_whisker import WhiskerObserver

pipeline = Pipeline(...)

whisker = WhiskerObserver(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 `PIPELINE_SETUP_FILES` environment variable.

```python
from pipecat_whisker import WhiskerObserver

from pipecat.pipeline.task import PipelineTask


task = PipelineTask(..., observers=[whisker])
async def setup_pipeline_task(task: PipelineTask):
task.add_observer(WhiskerObserver(task.pipeline))
```

This starts the Whisker server that the graphical UI will connect to. By default, the Whisker server runs at:
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
Expand Down
6 changes: 3 additions & 3 deletions pipecat/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ classifiers = [
"Topic :: Scientific/Engineering :: Artificial Intelligence"
]
dependencies = [
"aiofiles>=24.1.0",
"loguru~=0.7.3",
"msgpack>=1.1.1",
"aiofiles>=24.1.0,<25",
"loguru>=0.7.3,<1",
"msgpack>=1.1.1,<2",
"pipecat-ai>=0.0.81",
"websockets>=13.1,<15.0",
]
Expand Down
Loading