{"slug": "show-hn-jargo-a-golang-port-of-pipecat-for-conversational-ai-apps", "title": "Show HN: Jargo – a Golang port of Pipecat for conversational-AI apps", "summary": "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.", "body_md": "**jargo** builds real-time voice agents in Go: audio in over WebRTC, a streaming\ntranscription → reasoning → speech pipeline with turn-taking and barge-in, and\naudio back out — over [RTVI](https://docs.pipecat.ai/client/introduction) so\nexisting clients interoperate.\n\nStatus:early work in progress. APIs are unstable and will change.\n\n[Pipecat](https://github.com/pipecat-ai/pipecat) is great, and jargo is a port of\nit — the architecture and many design decisions are Pipecat's.\n\nThis port exists for one reason: I'd rather not run a voice agent on Python.\n\nPython is the right tool when you need the AI/data-science ecosystem. A\nreal-time voice *server* doesn't: the models run as services or as ONNX, and\nwhat's left is plumbing — audio framing, WebRTC, concurrency, and shipping a\nbinary. For that, Go is a better fit: one static binary to deploy, low and\npredictable memory, fast startup, and real concurrency for many simultaneous\nsessions without a GIL. The heavy numerics stay where they belong (the ONNX\nRuntime, the remote services), so giving up Python costs little here. See the\n[benchmarks](https://github.com/gojargo/jargo-benchmarks) for the honest performance picture.\n\njargo stays on plain, standard WebRTC via [Pion](https://github.com/pion) — no\nDaily, no hosted transport, no proprietary SDK or cloud to sign up for. You ship\none binary, the browser connects with vanilla WebRTC, and RTVI rides the data\nchannel. Keeping the transport open and self-hosted is a deliberate goal, not an\nafterthought.\n\n**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.\n\njargo uses cgo (`CGO_ENABLED=0`\n\nis not supported) and a few native libraries:\n\n**libsoxr**— audio resampling, linked at build time (`libsoxr-dev`\n\n).**libopus**— optional C Opus encoder, selected with`-tags libopus`\n\n(`libopus-dev`\n\n); 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.\n\nThe container image bundles all of them.\n\n```\ngo get github.com/gojargo/jargo\n```\n\n**Locally** — install the native deps, then build with cgo:\n\n```\n# Debian/Ubuntu: apt-get install -y libsoxr-dev libopus-dev\nCGO_ENABLED=1 go run ./examples/echo                    # open http://localhost:8080\nCGO_ENABLED=1 go run -tags libopus ./examples/voicebot  # libopus speech encoder\n```\n\n**With Docker** — the image bundles every native dependency, so there's no host\nsetup:\n\n```\ndocker build -t jargo-voicebot .\ndocker run --rm -p 8080:8080 \\\n  -e DEEPGRAM_API_KEY=… -e ANTHROPIC_API_KEY=… -e ELEVENLABS_API_KEY=… \\\n  jargo-voicebot\n```\n\nSee the ** Quickstart** for the full setup.\n\nTwo runnable bots live in [ examples/](/gojargo/jargo/blob/main/examples): an\n\n**echo** bot (no API keys) and a full\n\n**voice** bot (STT → LLM → TTS). The fastest way to try either — locally or with Docker — is the\n\n**.**\n\n[Quickstart](/gojargo/jargo/blob/main/docs/quickstart.md)\n\n```\ngo run ./examples/echo                 # then open http://localhost:8080\n```\n\nSee ** docs/index.md** for the full documentation.\n\njargo is a Go port of [Pipecat](https://github.com/pipecat-ai/pipecat),\ndistributed under the same **BSD 2-Clause License**. The upstream copyright —\n*Copyright (c) 2024–2026, Daily* — is preserved verbatim in [ LICENSE](/gojargo/jargo/blob/main/LICENSE);\nsee\n\n[for details. jargo is an independent project, not affiliated with or endorsed by Daily.](/gojargo/jargo/blob/main/NOTICE)\n\n`NOTICE`", "url": "https://wpnews.pro/news/show-hn-jargo-a-golang-port-of-pipecat-for-conversational-ai-apps", "canonical_source": "https://github.com/gojargo/jargo", "published_at": "2026-06-26 12:50:06+00:00", "updated_at": "2026-06-26 13:05:56.644380+00:00", "lang": "en", "topics": ["ai-agents", "developer-tools", "ai-infrastructure"], "entities": ["Jargo", "Pipecat", "Pion", "RTVI", "ONNX Runtime", "Daily", "Deepgram", "Anthropic"], "alternates": {"html": "https://wpnews.pro/news/show-hn-jargo-a-golang-port-of-pipecat-for-conversational-ai-apps", "markdown": "https://wpnews.pro/news/show-hn-jargo-a-golang-port-of-pipecat-for-conversational-ai-apps.md", "text": "https://wpnews.pro/news/show-hn-jargo-a-golang-port-of-pipecat-for-conversational-ai-apps.txt", "jsonld": "https://wpnews.pro/news/show-hn-jargo-a-golang-port-of-pipecat-for-conversational-ai-apps.jsonld"}}