pipedog is an unofficial community port of Pipecat, not affiliated with Daily.
pipedog

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):

PortedUpstreamShare
Modules62266793% (90% of the lines)
Test files30534090%
Core modules (@pipedog/core)361361100%
Core test files150150100%
Target packages81 started, 24 not105

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 HttpSmartTurnAnalyzer for 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 serveFetch for 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() and createRunnerApp()) and createTransport, in @pipedog/runner.
  • Evals: Pipecat's evals in @pipedog/evals: scripted and simulated scenarios, the LLM judge, suites, and the pipedog-eval CLI (pipecat eval).
  • CLI: the pipedog command 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 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:

GapModulesWhat it is
Transports9Daily (with its runner routes and dial-in), the Vonage Video Connector, and the Tavus, LemonSlice and MoQ transports.
Audio filters and analyzers7Noise 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 providers9Deepgram and NVIDIA speech services on SageMaker. The SageMakerBidiClient under them is ported.
Providers with a page5NVIDIA (LLM, Riva STT and TTS), and the Simli and Tavus video avatars.
Long-tail providers5Four smaller providers: fal, Keenable, Mem0 and Moondream, listed on Other upstream providers. XTTS is deprecated upstream, and skipped.
Message buses3The Redis and pgmq buses (@pipedog/bus-redis, @pipedog/bus-pgmq).
Other7The 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.

ItemStatusWhyWhat would unblock itSource
Daily transport, plus Tavus and LemonSlice, which run on Daily roomsBlockedUpstream 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 ConnectorBlockedUpstream 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 transportDeferredThe 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)DeferredThe 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 VADDeferred@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 suppressionDeferredThere 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 CoreMLSkippedSkipped 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

  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.
  3. Or port it yourself: Contributing explains the workflow, from bun tools/port/next.ts to 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).

On this page