Flowcat roadmap
This is a forward-looking, best-effort roadmap — directional, not a commitment.
Shipped capabilities are described in the README and
FEATURES.md; this file tracks what is not yet done.
Recently landed
- Composable
FrameProcessorpipeline — typed frame taxonomy, system-frame priority/interruption model, linear + parallel pipelines. (Frozen API inPROCESSOR-DESIGN.md.) - In-process native SIP/RTP/SDP user-agent for G.711 telephony.
- ~80 STT/TTS/LLM + realtime connectors, each a
dep:-gated Cargo feature (FEATURES.md). - Runnable demos in
flowcat-cli: an in-process pipeline demo and a WebSocket PCM echo-bot (pipeline,ws-echo). - Use it from Python (out-of-process) — the
RemoteBrainHTTP adapter (brain-http) drives conversation policy from a Python service, and themcpclient exposes Python functions as tools. Reference servers inexamples/. This is the supported Python path today.
Planned
Python bindings (PyO3)
The out-of-process path above already lets Python drive Flowcat without writing
Rust. The next step is in-process bindings: import flowcat, build a pipeline
in Python, and pass Python callables/objects as the brain — single process, no
service to host. The binding will keep Python at turn granularity (releasing
the GIL during the Rust media loop) so the tail-latency guarantees hold. This is a
developer-ergonomics step, not a capability gap. Not yet started.
WebRTC browser transport
Complete the str0m-based WebRTC transport (+ Opus) so a browser client can
connect directly, alongside the existing carrier/WebSocket paths.
Local device backend
The local mic/speaker transport currently ships its shape as a stub (no device
backend, to keep the default build free of a heavy platform audio dependency).
Add an optional, feature-gated device backend so the local demo can capture and
play real audio.
Broader live-verified provider coverage
Connectors are currently fixture/wire-tested — each provider's message framing is pinned by unit tests, but end-to-end live calls require that vendor's credentials and are not exercised in CI. Expand the set of provider paths that have been verified against the live service.
LiveKit transport
The livekit transport is currently a stub; wire up real signaling.
How to influence the roadmap
Open an issue or start a discussion. Adding a new connector is usually a small,
self-contained contribution — see CONTRIBUTING.md and the
provider-family taxonomy in PROVIDERS.md.