Show HN: Jargo – a Golang port of Pipecat for conversational-AI apps Developer jasonmoo released Jargo, a Go port of the Pipecat conversational-AI framework, enabling real-time voice agents with WebRTC audio, streaming transcription-to-speech pipelines, and turn-taking. The project aims to provide a self-hosted, single-binary alternative to Python-based voice servers, leveraging Go's concurrency and low memory footprint. jargo builds real-time voice agents in Go: audio in over WebRTC, a streaming transcription → reasoning → speech pipeline with turn-taking and barge-in, and audio back out — over RTVI https://docs.pipecat.ai/client/introduction so existing clients interoperate. Status:early work in progress. APIs are unstable and will change. Pipecat https://github.com/pipecat-ai/pipecat is great, and jargo is a port of it — the architecture and many design decisions are Pipecat's. This port exists for one reason: I'd rather not run a voice agent on Python. Python is the right tool when you need the AI/data-science ecosystem. A real-time voice server doesn't: the models run as services or as ONNX, and what's left is plumbing — audio framing, WebRTC, concurrency, and shipping a binary. For that, Go is a better fit: one static binary to deploy, low and predictable memory, fast startup, and real concurrency for many simultaneous sessions without a GIL. The heavy numerics stay where they belong the ONNX Runtime, the remote services , so giving up Python costs little here. See the benchmarks https://github.com/gojargo/jargo-benchmarks for the honest performance picture. jargo stays on plain, standard WebRTC via Pion https://github.com/pion — no Daily, no hosted transport, no proprietary SDK or cloud to sign up for. You ship one binary, the browser connects with vanilla WebRTC, and RTVI rides the data channel. Keeping the transport open and self-hosted is a deliberate goal, not an afterthought. WebRTC , pure Go Pion https://github.com/pion — audio in and out of the browser. Opus , not pure Go yet, waiting for pion/opus to be ready. Streaming voice pipeline : STT → LLM → TTS, with prompt caching. Turn-taking & barge-in : Silero VAD + Smart Turn v3, local ONNX. RTVI data channel — works with existing RTVI clients. Pluggable services : swap any STT/LLM/TTS behind a small interface. Concurrent by design : independent processors; interruptions are frames. jargo uses cgo CGO ENABLED=0 is not supported and a few native libraries: libsoxr — audio resampling, linked at build time libsoxr-dev . libopus — optional C Opus encoder, selected with -tags libopus libopus-dev ; the default build ships a pure-Go encoder, but libopus sounds noticeably better on speech. ONNX Runtime — loaded at run time for VAD + end-of-turn detection. The container image bundles all of them. go get github.com/gojargo/jargo Locally — install the native deps, then build with cgo: Debian/Ubuntu: apt-get install -y libsoxr-dev libopus-dev CGO ENABLED=1 go run ./examples/echo open http://localhost:8080 CGO ENABLED=1 go run -tags libopus ./examples/voicebot libopus speech encoder With Docker — the image bundles every native dependency, so there's no host setup: docker build -t jargo-voicebot . docker run --rm -p 8080:8080 \ -e DEEPGRAM API KEY=… -e ANTHROPIC API KEY=… -e ELEVENLABS API KEY=… \ jargo-voicebot See the Quickstart for the full setup. Two runnable bots live in examples/ /gojargo/jargo/blob/main/examples : an echo bot no API keys and a full voice bot STT → LLM → TTS . The fastest way to try either — locally or with Docker — is the . Quickstart /gojargo/jargo/blob/main/docs/quickstart.md go run ./examples/echo then open http://localhost:8080 See docs/index.md for the full documentation. jargo is a Go port of Pipecat https://github.com/pipecat-ai/pipecat , distributed under the same BSD 2-Clause License . The upstream copyright — Copyright c 2024–2026, Daily — is preserved verbatim in LICENSE /gojargo/jargo/blob/main/LICENSE ; see for details. jargo is an independent project, not affiliated with or endorsed by Daily. /gojargo/jargo/blob/main/NOTICE NOTICE