Roadmap & status
What is ported from Pipecat, what isn't yet, and how to ask for the next port.
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, 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 page
renders the same file.
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).
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.
Ported
- Core runtime: frames, processors, pipelines, workers and the runner, the bus, observers, RTVI, base services and transports, turn management. See Core concepts.
- Local audio models and filters: Silero VAD and Smart Turn (local v3, and
HttpSmartTurnAnalyzerfor a remote endpoint), the RNNoise noise filter and the soundfile mixer. See Turn detection. - Services: OpenAI, Google, Anthropic, Deepgram, Cartesia, ElevenLabs, Whisper and LangChain. See Supported services.
- Local speech models, keyless, on ONNX Runtime: Whisper
(
WhisperSTTService,WhisperSTTServiceMLX), Moonshine, FunASR SenseVoice, Kokoro, Piper (also over HTTP) and Pocket TTS. - 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.
- Transports: WebSocket (server, client, fetch handlers, and
serveFetchfor WebSocket upgrades on Bun, Node and Deno), SmallWebRTC, LiveKit, WhatsApp calling and local audio (microphone and speakers). - Video avatars: HeyGen (LiveAvatar and Interactive Avatar), as a service and as a transport.
- Serializers: Protobuf, RTVI client, and the telephony serializers for Twilio, Telnyx, Plivo, Exotel, Vonage and Genesys. See Telephony.
- Runner: the development runner (
main(), the prebuilt client, WebRTC and telephony routes,serve()andcreateRunnerApp()) andcreateTransport, in@pipedog/runner. - Evals: Pipecat's evals in
@pipedog/evals: scripted and simulated scenarios, the LLM judge, suites, and thepipedog-evalCLI (pipecat eval). - CLI: the
pipedogcommand 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) andpipedog eval. The Context Hub's freshness check is skipped. - Flows: Pipecat Flows in
@pipedog/flows: nodes, functions, actions, and YAML/JSON configs. - Extensions: the IVR navigator and voicemail detector in
@pipedog/extensions. See Telephony extensions. - MCP client:
@pipedog/mcp-client, which exposes an MCP server's tools to the LLM. - Sentry: Sentry metrics in
@pipedog/sentry. - Tracing: OpenTelemetry, in
@pipedog/tracing. See Metrics & tracing.
What's 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. The main gaps, with their remaining upstream modules:
| Gap | Modules | What it is |
|---|---|---|
| Transports | 9 | Daily (with its runner routes and dial-in), the Vonage Video Connector, 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. 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
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 transport, plus Tavus and LemonSlice, 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, LemonSlice, Tavus |
| Vonage Video Connector | Blocked | Upstream uses a native, Python-only SDK. Vonage lists "Node.js coming soon". The Vonage voice (Audio Connector) serializer is already ported. | Vonage ships its Node SDK. | Vonage AI connectors |
| MoQ 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 |
| 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. | @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 first, so the work isn't duplicated.
Ask for a port
- Look for the provider on its coming-soon page, which links to a search of the issues.
- Upvote an existing request with a reaction, or open one with the port request template.
- Or port it yourself: Contributing explains the workflow, from
bun tools/port/next.tsto the ported tests.
pipedog is an unofficial community TypeScript port of Pipecat. It is not affiliated with or endorsed by Daily or the Pipecat project.
Portions adapted from the Pipecat documentation, Copyright (c) 2024–2025 Daily, BSD-2-Clause (see apps/docs/LICENSE-pipecat-docs).