# Roadmap & status

> What is ported from Pipecat, what isn't yet, and how to ask for the next port.

Source: https://polvallverdu.github.io/pipedog/docs/roadmap/



pipedog ports Pipecat module by module, against a pinned upstream commit, and ports each module's
tests with it. The generated status file,
[`porting/STATUS.md`](https://github.com/polvallverdu/pipedog/blob/main/porting/STATUS.md), is the
source of truth: it lists every package, the share of its upstream modules and tests that are
ported, and the runtimes it is verified on. The [porting status](https://polvallverdu.github.io/pipedog/docs/contributing/status.md) page
renders the same file.

## At a glance [#at-a-glance]

Against the pinned upstream commit (counts from `porting/manifest.json`):

|                                | Ported             | Upstream | Share                  |
| ------------------------------ | ------------------ | -------- | ---------------------- |
| Modules                        | 622                | 667      | 93% (90% of the lines) |
| Test files                     | 305                | 340      | 90%                    |
| Core modules (`@pipedog/core`) | 361                | 361      | 100%                   |
| Core test files                | 150                | 150      | 100%                   |
| Target packages                | 81 started, 24 not | 105      |                        |

pipedog publishes 87 packages: 80 of those 81 (`@pipedog/xtts`'s one module is skipped because it
is deprecated upstream), plus seven with no upstream counterpart (`@pipedog/asyncio`,
`@pipedog/espeak-ng`, `@pipedog/mcp`, `@pipedog/onnx`, `@pipedog/resampler-wasm`,
`@pipedog/sentencex-wasm`, `@pipedog/tracing`).

<Callout title="How it is tested">
  Ported code runs against its ported upstream tests, mock provider servers and recorded protocol
  vectors, and the examples run end to end against mock APIs (in headless Chromium, on Deno and on
  workerd). Tests that need real API keys are skipped by default, as upstream does. Testing
  against the real providers is the next phase; until then, expect provider-specific bugs that
  mocks can't catch, and please report them.
</Callout>

## Ported [#ported]

* **Core runtime**: frames, processors, pipelines, workers and the runner, the bus, observers,
  RTVI, base services and transports, turn management. See [Core concepts](https://polvallverdu.github.io/pipedog/docs/concepts/frames.md).
* **Local audio models and filters**: Silero VAD and Smart Turn (local v3, and
  `HttpSmartTurnAnalyzer` for a remote endpoint), the RNNoise noise filter and the soundfile mixer.
  See [Turn detection](https://polvallverdu.github.io/pipedog/docs/concepts/turn-detection.md).
* **Services**: OpenAI, Google, Anthropic, Deepgram, Cartesia, ElevenLabs, Whisper and LangChain.
  See [Supported services](https://polvallverdu.github.io/pipedog/docs/services.md).
* **Local speech models**, keyless, on ONNX Runtime: [Whisper](https://polvallverdu.github.io/pipedog/docs/services/stt/whisper.md)
  (`WhisperSTTService`, `WhisperSTTServiceMLX`), [Moonshine](https://polvallverdu.github.io/pipedog/docs/services/stt/moonshine.md),
  [FunASR SenseVoice](https://polvallverdu.github.io/pipedog/docs/services/stt/funasr.md), [Kokoro](https://polvallverdu.github.io/pipedog/docs/services/tts/kokoro.md),
  [Piper](https://polvallverdu.github.io/pipedog/docs/services/tts/piper.md) (also over HTTP) and [Pocket TTS](https://polvallverdu.github.io/pipedog/docs/services/tts/pocket-tts.md).
* **Cloud platforms**: Azure (Azure OpenAI LLM, Realtime and image, Voice Live, Azure Speech STT
  and TTS) and AWS (Bedrock LLM, Transcribe STT, Polly TTS, Nova Sonic, AgentCore and the
  SageMaker streaming client).
* **Realtime speech-to-speech**: OpenAI Realtime, Gemini Live, Azure Voice Live, AWS Nova Sonic,
  xAI Grok Voice Agent, Inworld Realtime and Ultravox.
* **OpenAI-compatible providers**: Baseten, Cerebras, Crusoe, DeepSeek, Fireworks AI, Groq,
  Mistral, Nebius, Novita AI, Ollama, OpenRouter, Qwen, SambaNova, Smallest AI, Together AI and xAI
  (plus `@pipedog/grok`, the deprecated alias), one small package each. Groq, Mistral, Smallest AI,
  Together AI and xAI come with their speech-to-text and text-to-speech services. Perplexity's
  Agent API runs over the OpenAI Responses protocol instead.
* **Speech providers**: Inworld TTS, AssemblyAI, Speechmatics, Gladia, Soniox, Rime, Fish Audio,
  Hume, Sarvam AI, Smallest AI, Gradium, Meta, Inception, Neuphonic, Speechify, MiniMax, Resemble
  AI, Camb.ai, Async and Bland, alongside the Deepgram, Cartesia, ElevenLabs, Google, Azure and AWS
  speech services above. See [Supported services](https://polvallverdu.github.io/pipedog/docs/services.md).
* **Transports**: [WebSocket](https://polvallverdu.github.io/pipedog/docs/transports/websocket.md) (server, client, fetch handlers, and
  `serveFetch` for WebSocket upgrades on Bun, Node and Deno),
  [SmallWebRTC](https://polvallverdu.github.io/pipedog/docs/transports/smallwebrtc.md), [LiveKit](https://polvallverdu.github.io/pipedog/docs/transports/livekit.md),
  [WhatsApp](https://polvallverdu.github.io/pipedog/docs/transports/whatsapp.md) calling and [local audio](https://polvallverdu.github.io/pipedog/docs/transports/local-audio.md)
  (microphone and speakers).
* **Video avatars**: [HeyGen](https://polvallverdu.github.io/pipedog/docs/services/video/heygen.md) (LiveAvatar and Interactive Avatar),
  as a service and as a transport.
* **Serializers**: [Protobuf](https://polvallverdu.github.io/pipedog/docs/serializers/protobuf.md),
  [RTVI client](https://polvallverdu.github.io/pipedog/docs/serializers/rtvi-client.md), and the telephony serializers for
  [Twilio](https://polvallverdu.github.io/pipedog/docs/serializers/twilio.md), [Telnyx](https://polvallverdu.github.io/pipedog/docs/serializers/telnyx.md),
  [Plivo](https://polvallverdu.github.io/pipedog/docs/serializers/plivo.md), [Exotel](https://polvallverdu.github.io/pipedog/docs/serializers/exotel.md),
  [Vonage](https://polvallverdu.github.io/pipedog/docs/serializers/vonage.md) and [Genesys](https://polvallverdu.github.io/pipedog/docs/serializers/genesys.md). See
  [Telephony](https://polvallverdu.github.io/pipedog/docs/telephony.md).
* **Runner**: the [development runner](https://polvallverdu.github.io/pipedog/docs/runner.md) (`main()`, the prebuilt client,
  WebRTC and telephony routes, `serve()` and `createRunnerApp()`) and `createTransport`, in
  `@pipedog/runner`.
* **Evals**: [Pipecat's evals](https://polvallverdu.github.io/pipedog/docs/evals.md) in `@pipedog/evals`: scripted and simulated
  scenarios, the LLM judge, suites, and the `pipedog-eval` CLI (`pipecat eval`).
* **CLI**: the [`pipedog` command](https://polvallverdu.github.io/pipedog/docs/cli.md) in `@pipedog/cli`: `pipedog init` (project
  scaffolding for a registry of the ported services, the config validator, coding-agent guides and
  the docs MCP server) and `pipedog eval`. The Context Hub's freshness check is skipped.
* **Flows**: [Pipecat Flows](https://polvallverdu.github.io/pipedog/docs/flows.md) in `@pipedog/flows`: nodes, functions, actions, and
  YAML/JSON configs.
* **Extensions**: the IVR navigator and voicemail detector in `@pipedog/extensions`. See
  [Telephony extensions](https://polvallverdu.github.io/pipedog/docs/telephony/extensions.md).
* **MCP client**: [`@pipedog/mcp-client`](https://polvallverdu.github.io/pipedog/docs/services/mcp-client.md), which exposes an MCP
  server's tools to the LLM.
* **Sentry**: [Sentry metrics](https://polvallverdu.github.io/pipedog/docs/concepts/sentry-metrics.md) in `@pipedog/sentry`.
* **Tracing**: OpenTelemetry, in `@pipedog/tracing`. See
  [Metrics & tracing](https://polvallverdu.github.io/pipedog/docs/concepts/metrics-and-tracing.md).

## What's not ported yet [#whats-not-ported-yet]

45 upstream modules (10% of the lines) and 35 test files are still to do. Every upstream provider
that isn't ported has a "coming soon" page, or a row on
[Other upstream providers](https://polvallverdu.github.io/pipedog/docs/services/other-upstream.md). The main gaps, with their remaining
upstream modules:

| Gap                          | Modules | What it is                                                                                                                                                                 |
| ---------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Transports                   | 9       | [Daily](https://polvallverdu.github.io/pipedog/docs/transports/daily.md) (with its runner routes and dial-in), the [Vonage Video Connector](https://polvallverdu.github.io/pipedog/docs/transports/vonage.md), and the Tavus, LemonSlice and MoQ transports. |
| Audio filters and analyzers  | 7       | Noise filters (Krisp VIVA, Koala, AIC), and the Krisp and AIC VAD and turn models. Smart Turn v3, RNNoise, the soundfile mixer and HTTP Smart Turn are ported.             |
| Variants of ported providers | 9       | Deepgram and NVIDIA speech services on SageMaker. The `SageMakerBidiClient` under them is ported.                                                                          |
| Providers with a page        | 5       | NVIDIA (LLM, Riva STT and TTS), and the Simli and Tavus video avatars.                                                                                                     |
| Long-tail providers          | 5       | Four smaller providers: fal, Keenable, Mem0 and Moondream, listed on [Other upstream providers](https://polvallverdu.github.io/pipedog/docs/services/other-upstream.md). XTTS is deprecated upstream, and skipped.  |
| Message buses                | 3       | The Redis and pgmq buses (`@pipedog/bus-redis`, `@pipedog/bus-pgmq`).                                                                                                      |
| Other                        | 7       | The OpenClaw gateway, Strands Agents, the WebSocket worker proxy server, GStreamer.                                                                                        |

There are no dates. Ports happen in the order people need them.

## Blocked or deferred [#blocked-or-deferred]

Some upstream pieces can't be ported today, or aren't worth porting yet. Each has a reason, and
a condition that would change that. "Blocked" means there is no viable JS path today. "Deferred"
means it is possible, but needs vendor SDKs or keys, or waits on a moving spec. Last assessed on
2026-10-21.

| Item                                                                                                                                                        | Status   | Why                                                                                                                                                                                          | What would unblock it                                                                                                                                                    | Source                                                                                                                                                                                                                            |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Daily](https://polvallverdu.github.io/pipedog/docs/transports/daily.md) transport, plus [Tavus](https://polvallverdu.github.io/pipedog/docs/services/video/tavus.md) and [LemonSlice](https://polvallverdu.github.io/pipedog/docs/transports/lemonslice.md), which run on Daily rooms | Blocked  | Upstream uses the native `daily-python` SDK. Daily publishes no headless or server-side JS SDK, and `@daily-co/daily-js` is browser-only.                                                    | Daily ships a Node or server SDK, or someone builds a headless media path. The REST helpers for rooms and tokens are portable now, and a pull request would be accepted. | [daily-js quickstart](https://docs.daily.co/docs/daily-js/quickstart), [LemonSlice](https://docs.pipecat.ai/server/services/transport/lemonslice), [Tavus](https://docs.pipecat.ai/api-reference/server/services/transport/tavus) |
| [Vonage Video Connector](https://polvallverdu.github.io/pipedog/docs/transports/vonage.md)                                                                                                           | Blocked  | Upstream uses a native, Python-only SDK. Vonage lists "Node.js coming soon". The Vonage voice (Audio Connector) [serializer](https://polvallverdu.github.io/pipedog/docs/serializers/vonage.md) is already ported.                    | Vonage ships its Node SDK.                                                                                                                                               | [Vonage AI connectors](https://developer.vonage.com/en/video/ai-connectors/overview)                                                                                                                                              |
| [MoQ](https://polvallverdu.github.io/pipedog/docs/transports/moq.md) transport                                                                                                                       | Deferred | The protocol is still changing. The JS library, `@moq/net`, falls back to WebSocket on servers and only has experimental WebTransport.                                                       | The spec and server-side JS support settle.                                                                                                                              | [MoQ JS docs](https://doc.moq.dev/js/)                                                                                                                                                                                            |
| Krisp VIVA (filter, VAD, turn)                                                                                                                              | Deferred | The proprietary SDK isn't on public npm, and it needs a Krisp license and models. The hook `setKrispAudioSdk()` (in `@pipedog/core`) is ported, so you can plug in your own copy of the SDK. | A bring-your-own-SDK package is planned.                                                                                                                                 | Krisp's SDK terms                                                                                                                                                                                                                 |
| ai-coustics (AIC) filter and Quail VAD                                                                                                                      | Deferred | `@ai-coustics/aic-sdk` is native (darwin and linux), and the other build is WASM, aimed at browsers. Both need a license key.                                                                | Planned as an optional package.                                                                                                                                          | `@ai-coustics/aic-sdk` on npm                                                                                                                                                                                                     |
| Koala (Picovoice) noise suppression                                                                                                                         | Deferred | There is no Node build, only `@picovoice/koala-web` (WASM, for browsers), and it needs an AccessKey.                                                                                         | It will be ported if users ask: [open a request](https://github.com/polvallverdu/pipedog/issues/new?template=feature_request.yml).                                       | `@picovoice/koala-web` on npm                                                                                                                                                                                                     |
| Tk local transport, Smart Turn v2 and Smart Turn CoreML                                                                                                     | Skipped  | Skipped on purpose. Tk is a desktop GUI, and both Smart Turn variants are superseded by v3, which is ported.                                                                                 | Nothing planned. Open a request if you have a use for one.                                                                                                               |                                                                                                                                                                                                                                   |

Contributions are welcome on any of these, especially the portable parts (the REST helpers for
Daily, Tavus and LemonSlice) and the bring-your-own-SDK packages. Open a request with the
[port request template](https://github.com/polvallverdu/pipedog/issues/new?template=feature_request.yml)
first, so the work isn't duplicated.

## Ask for a port [#ask-for-a-port]

1. Look for the provider on its coming-soon page, which links to a search of the issues.
2. Upvote an existing request with a reaction, or open one with the
   [port request template](https://github.com/polvallverdu/pipedog/issues/new?template=feature_request.yml).
3. Or port it yourself: [Contributing](https://polvallverdu.github.io/pipedog/docs/contributing.md) explains the workflow, from
   `bun tools/port/next.ts` to the ported tests.
