jargo

package module
v0.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 13, 2026 License: BSD-2-Clause Imports: 0 Imported by: 0

README

jargo

A WebRTC-native, audio-first conversational-AI framework for Go.

CI Go Reference OpenSSF Scorecard Go version Release


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 so existing clients interoperate.

Status: early work in progress. APIs are unstable and will change.

Why?

Pipecat is great, and jargo is a port of it — the architecture and many design decisions are Pipecat's.

Python might not be the way

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 for the honest performance picture.

No Daily, no lock-in

jargo stays on plain, standard WebRTC via 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.

Features

  • WebRTC, pure Go (Pion) — audio in and out of the browser.
  • Opus, pure Go encode + decode via pion/opus; C libopus optional with -tags libopus.
  • Resampling, pure Go via go-resample; libsoxr optional with -tags libsoxr.
  • Streaming voice pipeline: STT → LLM → TTS, with prompt caching.
  • Speech-to-speech: single-model voice agents (OpenAI Realtime, Gemini Live, AWS Nova Sonic).
  • Turn-taking & barge-in: Silero VAD + Smart Turn v3, local ONNX.
  • Telephony (optional): inbound/outbound phone calls over Twilio Media Streams.
  • User-idle watchdog: re-engage or hang up when the caller goes silent.
  • 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.

Providers

Pick any per category; each is a small Config + constructor.

  • STT: Deepgram, AssemblyAI, Gladia, Speechmatics, Soniox, Whisper (OpenAI/Groq/local), Azure.
  • LLM: Anthropic (direct + Bedrock), OpenAI, Google Gemini, Groq, Together, Fireworks, DeepSeek, Cerebras, Perplexity, OpenRouter, xAI, Ollama, NVIDIA, Mistral, Nebius, SambaNova, Qwen, Azure OpenAI.
  • TTS: ElevenLabs, Cartesia, Rime, LMNT, Kokoro, Piper, Deepgram, OpenAI, Azure, Hume, Fish, MiniMax.
  • Speech-to-speech: OpenAI Realtime, Gemini Live, AWS Nova Sonic.
  • Memory: mem0.

Dependencies

The default build is cgo-freeCGO_ENABLED=0 go build ./... works with no C toolchain. Two native runtimes are still used, but bound through purego and loaded at run time, so they need their shared library present at runtime and nothing at build time:

  • ONNX Runtime — VAD + end-of-turn detection (JARGO_ONNXRUNTIME_LIB).
  • RNNoise — optional input noise reduction (JARGO_RNNOISE_LIB).

Opus and resampling are pure Go by default; the C libopus (-tags libopus) and libsoxr (-tags libsoxr) are the only cgo in the tree, and both are optional. The base images bundle all of them.

Usage

go get github.com/gojargo/jargo

A bot is an STT → LLM → TTS pipeline over a WebRTC transport. The heart of it:

stt := openai.NewSTT(openai.STTConfig{APIKey: key, SampleRate: opus.SampleRate})
llm := openai.NewLLM(openai.LLMConfig{APIKey: key})
tts := openai.NewTTS(openai.TTSConfig{APIKey: key})

t := pionrtc.NewTransport(conn, transport.DefaultParams())
agg := aggregators.New(frames.NewLLMContext("You are a helpful voice assistant."))

task := pipeline.NewTask(pipeline.New(
	t.Input(), stt, agg.User(), llm, tts, t.Output(), agg.Assistant(),
), pipeline.TaskParams{})
task.Run(ctx)

examples/voice/openai is that pipeline as a complete server (WebRTC signaling, VAD/turn-taking, barge-in).

Run it in Docker — build on the gojargo/jargo-build base and ship on the distroless gojargo/jargo runtime (it bundles the ONNX Runtime), then:

docker run --rm -p 8080:8080 -e OPENAI_API_KEY=$OPENAI_API_KEY my-bot

See Deploy with Docker for the Dockerfile and the Quickstart for the full setup.

Examples

Runnable bots live in examples/:

  • echo — hear yourself back, no API keys.
  • voicebot — the full voice agent (STT → LLM → TTS over WebRTC) with turn-taking, long-term memory, and tracing.
  • voice/ — one headless backend per provider, each wiring its STT/LLM/TTS explicitly and exposing the WebRTC /offer endpoint (no web UI). Run with go run ./examples/voice/<provider> (e.g. deepgram, cartesia, openai) and drive it from a browser client — the nextjs-voicebot in jargo-client-react.
  • twiliobot — a phone agent over Twilio Media Streams, with the idle watchdog.

The fastest way to try them — locally or with Docker — is the Quickstart.

go run ./examples/echo                 # then open http://localhost:8080

Documentation

See docs/index.md for the full documentation.

License & attribution

jargo is a Go port of Pipecat, distributed under the same BSD 2-Clause License. The upstream copyright — Copyright (c) 2024–2026, Daily — is preserved verbatim in LICENSE; see NOTICE for details. jargo is an independent project, not affiliated with or endorsed by Daily.

Documentation

Overview

Package jargo is a framework for building real-time voice and multimodal AI pipelines.

Directories

Path Synopsis
Package audio defines the interfaces for pluggable audio processing a transport applies to the media it sends and receives.
Package audio defines the interfaces for pluggable audio processing a transport applies to the media it sends and receives.
g711
Package g711 implements the ITU-T G.711 companding codecs used by telephony media streams (Twilio, Telnyx, Plivo and the wider PSTN): μ-law (PCMU), the North American variant, and A-law (PCMA), used elsewhere.
Package g711 implements the ITU-T G.711 companding codecs used by telephony media streams (Twilio, Telnyx, Plivo and the wider PSTN): μ-law (PCMU), the North American variant, and A-law (PCMA), used elsewhere.
mixer
Package mixer mixes background audio into a transport's outgoing audio.
Package mixer mixes background audio into a transport's outgoing audio.
noise/gate
Package gate provides a noise gate: an audio.Filter that silences a chunk of audio whose RMS energy falls below a threshold, suppressing low-level background hum and hiss between speech.
Package gate provides a noise gate: an audio.Filter that silences a chunk of audio whose RMS energy falls below a threshold, suppressing low-level background hum and hiss between speech.
noise/rnnoise
Package rnnoise is an input audio filter that suppresses background noise with RNNoise, Xiph's recurrent-network denoiser.
Package rnnoise is an input audio filter that suppresses background noise with RNNoise, Xiph's recurrent-network denoiser.
onset
Package onset detects the first audible sample in a stream of PCM audio.
Package onset detects the first audible sample in a stream of PCM audio.
opus
Package opus wraps the Opus codec for jargo's audio path: it decodes Opus packets to PCM on the way in and encodes PCM to Opus packets on the way out.
Package opus wraps the Opus codec for jargo's audio path: it decodes Opus packets to PCM on the way in and encodes PCM to Opus packets on the way out.
resample
Package resample converts interleaved S16LE PCM audio between sample rates, preserving the channel count.
Package resample converts interleaved S16LE PCM audio between sample rates, preserving the channel count.
turn
Package turn provides end-of-turn detection: it decides when a user has actually finished speaking, as opposed to merely pausing.
Package turn provides end-of-turn detection: it decides when a user has actually finished speaking, as opposed to merely pausing.
vad
Package vad provides voice activity detection: it tells the pipeline when a user is speaking.
Package vad provides voice activity detection: it tells the pipeline when a user is speaking.
Package clock provides the timing source a pipeline uses for presentation timestamps and elapsed-time measurements.
Package clock provides the timing source a pipeline uses for presentation timestamps and elapsed-time measurements.
examples
echo command
Command echo is a WebRTC echo bot built on jargo: it receives microphone audio from a browser, runs it through a pipeline, and sends it back so you hear yourself.
Command echo is a WebRTC echo bot built on jargo: it receives microphone audio from a browser, runs it through a pipeline, and sends it back so you hear yourself.
flows command
Command flows is a headless jargo voice backend driven by a conversation flow.
Command flows is a headless jargo voice backend driven by a conversation flow.
localaudio command
Command localaudio echoes the local microphone straight back to the local speaker using jargo's pure-Go local-audio transport.
Command localaudio echoes the local microphone straight back to the local speaker using jargo's pure-Go local-audio transport.
silktest command
Throwaway: exercise jargo's audio/opus Encoder end-to-end, the way the transport does — feeding 20 ms frames of 48 kHz mono S16LE PCM and decoding the packets back.
Throwaway: exercise jargo's audio/opus Encoder end-to-end, the way the transport does — feeding 20 ms frames of 48 kHz mono S16LE PCM and decoding the packets back.
twilio/outbound command
Command outbound is an outbound telephony voice agent: it places a phone call over Twilio, talks to whoever answers, collects a few details and hangs up.
Command outbound is an outbound telephony voice agent: it places a phone call over Twilio, talks to whoever answers, collects a few details and hangs up.
twiliobot command
Command twiliobot is a telephony voice agent built on jargo: a Twilio phone call streams audio over a WebSocket (μ-law 8 kHz), an STT service transcribes it, an LLM reasons over it, a TTS service speaks the reply, and the audio goes back to the caller.
Command twiliobot is a telephony voice agent built on jargo: a Twilio phone call streams audio over a WebSocket (μ-law 8 kHz), an STT service transcribes it, an LLM reasons over it, a TTS service speaks the reply, and the audio goes back to the caller.
voice/anthropic command
Command voice-anthropic is a headless jargo voice backend.
Command voice-anthropic is a headless jargo voice backend.
voice/assemblyai command
Command voice-assemblyai is a headless jargo voice backend.
Command voice-assemblyai is a headless jargo voice backend.
voice/azure command
Command voice-azure is a headless jargo voice backend.
Command voice-azure is a headless jargo voice backend.
voice/cartesia command
Command voice-cartesia is a headless jargo voice backend.
Command voice-cartesia is a headless jargo voice backend.
voice/deepgram command
Command voice-deepgram is a headless jargo voice backend.
Command voice-deepgram is a headless jargo voice backend.
voice/deepseek command
Command voice-deepseek is a headless jargo voice backend.
Command voice-deepseek is a headless jargo voice backend.
voice/elevenlabs command
Command voice-elevenlabs is a headless jargo voice backend.
Command voice-elevenlabs is a headless jargo voice backend.
voice/fish command
Command voice-fish is a headless jargo voice backend.
Command voice-fish is a headless jargo voice backend.
voice/gladia command
Command voice-gladia is a headless jargo voice backend.
Command voice-gladia is a headless jargo voice backend.
voice/google command
Command voice-google is a headless jargo voice backend.
Command voice-google is a headless jargo voice backend.
voice/groq command
Command voice-groq is a headless jargo voice backend.
Command voice-groq is a headless jargo voice backend.
voice/hume command
Command voice-hume is a headless jargo voice backend.
Command voice-hume is a headless jargo voice backend.
voice/lmnt command
Command voice-lmnt is a headless jargo voice backend.
Command voice-lmnt is a headless jargo voice backend.
voice/minimax command
Command voice-minimax is a headless jargo voice backend.
Command voice-minimax is a headless jargo voice backend.
voice/mistral command
Command voice-mistral is a headless jargo voice backend.
Command voice-mistral is a headless jargo voice backend.
voice/nebius command
Command voice-nebius is a headless jargo voice backend.
Command voice-nebius is a headless jargo voice backend.
voice/ollama command
Command voice-ollama is a headless jargo voice backend.
Command voice-ollama is a headless jargo voice backend.
voice/openai command
Command voice-openai is a headless jargo voice backend.
Command voice-openai is a headless jargo voice backend.
voice/qwen command
Command voice-qwen is a headless jargo voice backend.
Command voice-qwen is a headless jargo voice backend.
voice/rime command
Command voice-rime is a headless jargo voice backend.
Command voice-rime is a headless jargo voice backend.
voice/sambanova command
Command voice-sambanova is a headless jargo voice backend.
Command voice-sambanova is a headless jargo voice backend.
voice/soniox command
Command voice-soniox is a headless jargo voice backend.
Command voice-soniox is a headless jargo voice backend.
voice/speechmatics command
Command voice-speechmatics is a headless jargo voice backend.
Command voice-speechmatics is a headless jargo voice backend.
voice/together command
Command voice-together is a headless jargo voice backend.
Command voice-together is a headless jargo voice backend.
voicebot command
Command voicebot is the full-featured voice agent built on jargo: microphone audio comes in over WebRTC, Deepgram transcribes it, an Anthropic LLM reasons over it, ElevenLabs speaks the reply, and the audio goes back out over WebRTC.
Command voicebot is the full-featured voice agent built on jargo: microphone audio comes in over WebRTC, Deepgram transcribes it, an Anthropic LLM reasons over it, ElevenLabs speaks the reply, and the audio goes back out over WebRTC.
Package flows builds structured, multi-step conversations on top of jargo's LLM service.
Package flows builds structured, multi-step conversations on top of jargo's LLM service.
Package frames defines the Frame type and the core frame categories — system, data and control — that flow through a jargo pipeline.
Package frames defines the Frame type and the core frame categories — system, data and control — that flow through a jargo pipeline.
internal
onnxrt
Package onnxrt centralizes jargo's use of the ONNX runtime.
Package onnxrt centralizes jargo's use of the ONNX runtime.
tagscan
Package tagscan extracts control tags like <dtmf>1</dtmf> from a streamed text response, so a processor can act on the tags and speak the rest.
Package tagscan extracts control tags like <dtmf>1</dtmf> from a streamed text response, so a processor can act on the tags and speak the rest.
validate
Package validate provides jargo's shared struct validator.
Package validate provides jargo's shared struct validator.
Package language defines a canonical Language type and helpers so an application can name a language once and let each STT/TTS service map it to that provider's own code.
Package language defines a canonical Language type and helpers so an application can name a language once and let each STT/TTS service map it to that provider's own code.
Package observers provides pipeline observers: components that watch the frames flowing through a pipeline to derive turn, latency and startup metrics, or to log the stream, without modifying it.
Package observers provides pipeline observers: components that watch the frames flowing through a pipeline to derive turn, latency and startup metrics, or to log the stream, without modifying it.
Package pipeline connects frame processors into a chain and drives them.
Package pipeline connects frame processors into a chain and drives them.
Package processor defines the frame processor: the building block of a jargo pipeline.
Package processor defines the frame processor: the building block of a jargo pipeline.
aggregators
Package aggregators assembles the conversation around an LLM.
Package aggregators assembles the conversation around an LLM.
audiobuffer
Package audiobuffer records a conversation's audio.
Package audiobuffer records a conversation's audio.
dtmf
Package dtmf synthesizes DTMF (touch-tone) keypad tones and aggregates received keypresses.
Package dtmf synthesizes DTMF (touch-tone) keypad tones and aggregates received keypresses.
ivr
Package ivr navigates automated phone menus (IVR systems).
Package ivr navigates automated phone menus (IVR systems).
langchain
Package langchain bridges an external "chain" — any streaming text generator, such as a LangChain-style runnable or a custom agent — into a jargo pipeline.
Package langchain bridges an external "chain" — any streaming text generator, such as a LangChain-style runnable or a custom agent — into a jargo pipeline.
rtvi
Package rtvi implements the RTVI protocol over a transport's messaging channel: a JSON message format and a processor that completes the client handshake and reports pipeline events to the client.
Package rtvi implements the RTVI protocol over a transport's messaging channel: a JSON message format and a processor that completes the client handshake and reports pipeline events to the client.
turns
Package turns manages the user-turn lifecycle, ported from Pipecat's turns subsystem.
Package turns manages the user-turn lifecycle, ported from Pipecat's turns subsystem.
vadproc
Package vadproc is the voice-activity-detection pipeline processor.
Package vadproc is the voice-activity-detection pipeline processor.
voicemail
Package voicemail detects whether an outbound call reached a person or a voicemail system.
Package voicemail detects whether an outbound call reached a person or a voicemail system.
provider
anthropic
Package anthropic is a streaming LLM service backed by the Anthropic API.
Package anthropic is a streaming LLM service backed by the Anthropic API.
assemblyai
Package assemblyai is a streaming speech-to-text service backed by AssemblyAI's Universal-Streaming (v3) WebSocket.
Package assemblyai is a streaming speech-to-text service backed by AssemblyAI's Universal-Streaming (v3) WebSocket.
asyncai
Package asyncai is a streaming text-to-speech service backed by Async's TTS WebSocket.
Package asyncai is a streaming text-to-speech service backed by Async's TTS WebSocket.
azureopenai
Package azureopenai provides an LLM service for Azure OpenAI.
Package azureopenai provides an LLM service for Azure OpenAI.
azurespeech
Package azurespeech provides Azure AI Speech services.
Package azurespeech provides Azure AI Speech services.
bedrock
Package bedrock provides a streaming LLM service for Anthropic Claude models served through Amazon Bedrock.
Package bedrock provides a streaming LLM service for Anthropic Claude models served through Amazon Bedrock.
camb
Package camb is a streaming text-to-speech service backed by Camb.ai's MARS models.
Package camb is a streaming text-to-speech service backed by Camb.ai's MARS models.
cartesia
Package cartesia is a streaming text-to-speech service backed by Cartesia's TTS WebSocket.
Package cartesia is a streaming text-to-speech service backed by Cartesia's TTS WebSocket.
cerebras
Package cerebras provides Cerebras's OpenAI-compatible LLM service.
Package cerebras provides Cerebras's OpenAI-compatible LLM service.
deepgram
Package deepgram provides Deepgram's streaming speech-to-text service (over the live transcription WebSocket) and its Aura text-to-speech service.
Package deepgram provides Deepgram's streaming speech-to-text service (over the live transcription WebSocket) and its Aura text-to-speech service.
deepseek
Package deepseek provides DeepSeek's OpenAI-compatible LLM service.
Package deepseek provides DeepSeek's OpenAI-compatible LLM service.
elevenlabs
Package elevenlabs is a streaming text-to-speech service backed by the ElevenLabs HTTP streaming API.
Package elevenlabs is a streaming text-to-speech service backed by the ElevenLabs HTTP streaming API.
fal
Package fal is a batch speech-to-text service backed by Fal's Wizper API.
Package fal is a batch speech-to-text service backed by Fal's Wizper API.
fireworks
Package fireworks provides Fireworks AI's OpenAI-compatible LLM service.
Package fireworks provides Fireworks AI's OpenAI-compatible LLM service.
fish
Package fish is a streaming text-to-speech service backed by Fish Audio.
Package fish is a streaming text-to-speech service backed by Fish Audio.
geminilive
Package geminilive is a speech-to-speech service built on Google's Gemini Live API (BidiGenerateContent).
Package geminilive is a speech-to-speech service built on Google's Gemini Live API (BidiGenerateContent).
gladia
Package gladia is a streaming speech-to-text service backed by Gladia's Live STT v2 API.
Package gladia is a streaming speech-to-text service backed by Gladia's Live STT v2 API.
google
Package google is a streaming LLM service backed by Google's Gemini API (generateContent with SSE).
Package google is a streaming LLM service backed by Google's Gemini API (generateContent with SSE).
gradium
Package gradium provides Gradium's speech services: streaming text-to-speech and real-time streaming speech-to-text, both over Gradium's WebSocket API.
Package gradium provides Gradium's speech services: streaming text-to-speech and real-time streaming speech-to-text, both over Gradium's WebSocket API.
groq
Package groq provides Groq's OpenAI-compatible LLM service and its Whisper speech-to-text and text-to-speech services.
Package groq provides Groq's OpenAI-compatible LLM service and its Whisper speech-to-text and text-to-speech services.
hume
Package hume is a streaming text-to-speech service backed by Hume AI's Octave TTS.
Package hume is a streaming text-to-speech service backed by Hume AI's Octave TTS.
inception
Package inception provides Inception's OpenAI-compatible LLM service.
Package inception provides Inception's OpenAI-compatible LLM service.
inworld
Package inworld is a streaming text-to-speech service backed by Inworld AI's HTTP streaming endpoint.
Package inworld is a streaming text-to-speech service backed by Inworld AI's HTTP streaming endpoint.
kokoro
Package kokoro is a text-to-speech provider for a local Kokoro-FastAPI server.
Package kokoro is a text-to-speech provider for a local Kokoro-FastAPI server.
lmnt
Package lmnt is a streaming text-to-speech service backed by LMNT's HTTP "speech bytes" endpoint, which streams raw PCM.
Package lmnt is a streaming text-to-speech service backed by LMNT's HTTP "speech bytes" endpoint, which streams raw PCM.
mem0
Package mem0 adds long-term memory to a jargo voice agent, backed by a mem0 server (https://github.com/mem0ai/mem0).
Package mem0 adds long-term memory to a jargo voice agent, backed by a mem0 server (https://github.com/mem0ai/mem0).
minimax
Package minimax is a streaming text-to-speech service backed by MiniMax's T2A API.
Package minimax is a streaming text-to-speech service backed by MiniMax's T2A API.
mistral
Package mistral provides Mistral AI's OpenAI-compatible LLM service.
Package mistral provides Mistral AI's OpenAI-compatible LLM service.
nebius
Package nebius provides Nebius AI Studio's OpenAI-compatible LLM service.
Package nebius provides Nebius AI Studio's OpenAI-compatible LLM service.
neuphonic
Package neuphonic is a streaming text-to-speech service backed by Neuphonic's TTS WebSocket.
Package neuphonic is a streaming text-to-speech service backed by Neuphonic's TTS WebSocket.
novasonic
Package novasonic is a speech-to-speech service built on Amazon Nova Sonic, served over Bedrock's bidirectional streaming API.
Package novasonic is a speech-to-speech service built on Amazon Nova Sonic, served over Bedrock's bidirectional streaming API.
novita
Package novita provides Novita AI's OpenAI-compatible LLM service.
Package novita provides Novita AI's OpenAI-compatible LLM service.
nvidia
Package nvidia provides NVIDIA NIM's OpenAI-compatible LLM service.
Package nvidia provides NVIDIA NIM's OpenAI-compatible LLM service.
ollama
Package ollama provides a client for a local Ollama server through its OpenAI-compatible LLM endpoint.
Package ollama provides a client for a local Ollama server through its OpenAI-compatible LLM endpoint.
openai
Package openai provides OpenAI's LLM, STT and TTS services, plus the OpenAI-compatible LLM base that other providers (Groq, Together, Fireworks and the rest) wrap with their own base URL, key and default model.
Package openai provides OpenAI's LLM, STT and TTS services, plus the OpenAI-compatible LLM base that other providers (Groq, Together, Fireworks and the rest) wrap with their own base URL, key and default model.
openairealtime
Package openairealtime is a speech-to-speech service built on OpenAI's Realtime API.
Package openairealtime is a speech-to-speech service built on OpenAI's Realtime API.
openrouter
Package openrouter provides OpenRouter's OpenAI-compatible LLM service, a gateway to many models behind one API.
Package openrouter provides OpenRouter's OpenAI-compatible LLM service, a gateway to many models behind one API.
perplexity
Package perplexity provides Perplexity's OpenAI-compatible LLM service.
Package perplexity provides Perplexity's OpenAI-compatible LLM service.
piper
Package piper is a text-to-speech provider for a local Piper HTTP server (python -m piper.http_server).
Package piper is a text-to-speech provider for a local Piper HTTP server (python -m piper.http_server).
polly
Package polly is a text-to-speech service backed by Amazon Polly's SynthesizeSpeech API.
Package polly is a text-to-speech service backed by Amazon Polly's SynthesizeSpeech API.
qwen
Package qwen provides Alibaba's Qwen LLM over the DashScope OpenAI-compatible endpoint.
Package qwen provides Alibaba's Qwen LLM over the DashScope OpenAI-compatible endpoint.
resembleai
Package resembleai is a streaming text-to-speech service backed by Resemble AI's WebSocket.
Package resembleai is a streaming text-to-speech service backed by Resemble AI's WebSocket.
rime
Package rime is a streaming text-to-speech service backed by Rime's HTTP API.
Package rime is a streaming text-to-speech service backed by Rime's HTTP API.
sambanova
Package sambanova provides SambaNova Cloud's OpenAI-compatible LLM service.
Package sambanova provides SambaNova Cloud's OpenAI-compatible LLM service.
sarvam
Package sarvam provides Sarvam's OpenAI-compatible LLM plus its WebSocket streaming text-to-speech and speech-to-text services for Indian languages.
Package sarvam provides Sarvam's OpenAI-compatible LLM plus its WebSocket streaming text-to-speech and speech-to-text services for Indian languages.
smallest
Package smallest is a streaming text-to-speech service backed by Smallest AI's Waves WebSocket.
Package smallest is a streaming text-to-speech service backed by Smallest AI's Waves WebSocket.
soniox
Package soniox provides Soniox real-time streaming speech-to-text over its WebSocket API.
Package soniox provides Soniox real-time streaming speech-to-text over its WebSocket API.
speechmatics
Package speechmatics provides Speechmatics' real-time streaming speech-to-text over its WebSocket API.
Package speechmatics provides Speechmatics' real-time streaming speech-to-text over its WebSocket API.
together
Package together provides Together AI's OpenAI-compatible LLM service and its streaming speech-to-text and text-to-speech services.
Package together provides Together AI's OpenAI-compatible LLM service and its streaming speech-to-text and text-to-speech services.
transcribe
Package transcribe is a streaming speech-to-text service backed by Amazon Transcribe's StartStreamTranscription API.
Package transcribe is a streaming speech-to-text service backed by Amazon Transcribe's StartStreamTranscription API.
whispercpp
Package whispercpp is a speech-to-text provider for a local whisper.cpp server.
Package whispercpp is a speech-to-text provider for a local whisper.cpp server.
xai
Package xai provides xAI's (Grok) OpenAI-compatible LLM service.
Package xai provides xAI's (Grok) OpenAI-compatible LLM service.
xtts
Package xtts provides text-to-speech via a self-hosted Coqui XTTS streaming server (https://github.com/coqui-ai/xtts-streaming-server).
Package xtts provides text-to-speech via a self-hosted Coqui XTTS streaming server (https://github.com/coqui-ai/xtts-streaming-server).
service
llm
Package llm is the shared base for streaming LLM services.
Package llm is the shared base for streaming LLM services.
mcp
Package mcp connects a jargo LLM to Model Context Protocol tool servers.
Package mcp connects a jargo LLM to Model Context Protocol tool servers.
stt
Package stt is the shared base for speech-to-text services.
Package stt is the shared base for speech-to-text services.
tts
Package tts is the shared base for text-to-speech services.
Package tts is the shared base for text-to-speech services.
wsutil
Package wsutil holds small shared helpers for the provider WebSocket clients.
Package wsutil holds small shared helpers for the provider WebSocket clients.
telemetry
metrics
Package metrics exports jargo's service measurements — time-to-first-byte, processing time, LLM token usage and TTS characters — as OpenTelemetry metrics over OTLP.
Package metrics exports jargo's service measurements — time-to-first-byte, processing time, LLM token usage and TTS characters — as OpenTelemetry metrics over OTLP.
tracing
Package tracing wires OpenTelemetry tracing into a jargo voice agent.
Package tracing wires OpenTelemetry tracing into a jargo voice agent.
Package transport defines the boundary between a pipeline and the outside world.
Package transport defines the boundary between a pipeline and the outside world.
livekit
Package livekit implements a jargo transport that joins a LiveKit room as a participant.
Package livekit implements a jargo transport that joins a LiveKit room as a participant.
localaudio
Package localaudio is a transport that captures from the local microphone and plays back through the local speaker, for running a bot on the same machine with no browser or telephony leg.
Package localaudio is a transport that captures from the local microphone and plays back through the local speaker, for running a bot on the same machine with no browser or telephony leg.
pionrtc
Package pionrtc implements a WebRTC transport for jargo using Pion.
Package pionrtc implements a WebRTC transport for jargo using Pion.
whatsapp
Package whatsapp answers inbound WhatsApp Business calls and bridges their audio into a jargo pipeline.
Package whatsapp answers inbound WhatsApp Business calls and bridges their audio into a jargo pipeline.
wsserver
Package wsserver is a WebSocket media transport for telephony.
Package wsserver is a WebSocket media transport for telephony.
wsserver/exotel
Package exotel is the wsserver.Serializer for Exotel Media Streaming (the Voicebot applet).
Package exotel is the wsserver.Serializer for Exotel Media Streaming (the Voicebot applet).
wsserver/plivo
Package plivo is the wsserver.Serializer for Plivo Audio Streaming.
Package plivo is the wsserver.Serializer for Plivo Audio Streaming.
wsserver/telnyx
Package telnyx is the wsserver.Serializer for Telnyx Media Streaming.
Package telnyx is the wsserver.Serializer for Telnyx Media Streaming.
wsserver/twilio
Package twilio is the wsserver.Serializer for Twilio Media Streams.
Package twilio is the wsserver.Serializer for Twilio Media Streams.
utils
text
Package text normalizes written text into a form better suited to text-to-speech: it strips Markdown, expands numbers, currency, percentages, dates, units and acronyms into spoken words, spaces out phone-number digits, and spells email addresses.
Package text normalizes written text into a form better suited to text-to-speech: it strips Markdown, expands numbers, currency, percentages, dates, units and acronyms into spoken words, spaces out phone-number digits, and spells email addresses.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL