Docs
Speko Gateway for LiveKit
Run the open Speko Gateway beside a LiveKit AgentSession for provider-direct voice legs and optional managed Router LLMs.
Use the native Gateway integration
Speko Gateway is a customer-side runtime that runs in the same image or beside the LiveKit agent. It is not an OpenAI-compatible base URL. The public Gateway image includes the binary and Python integration; follow the complete container diff in the Gateway README.
from livekit.agents import AgentSession
from livekit.plugins import openai
from speko_gateway.livekit import LLM, STT, TTS
session = AgentSession(
stt=STT(
language="en",
credential_source="auto", # managed or local BYOK
),
llm=LLM(
model="auto",
objective="balanced",
max_output_tokens=8192,
),
tts=TTS(
language="en",
credential_source="auto",
),
)Managed credentials
lk agent update-secrets \
--secrets "SPEKO_LOCAL_AUTH_TOKEN=$(openssl rand -hex 32)" \
--secrets "SPEKO_API_KEY=$SPEKO_API_KEY"Local BYOK credentials
lk agent update-secrets \
--secrets "SPEKO_LOCAL_AUTH_TOKEN=$(openssl rand -hex 32)" \
--secrets "SPEKO_DEEPGRAM_BYOK_API_KEY=$DEEPGRAM_API_KEY"Choose the trust boundary
| Managed | Gateway requests Speko-managed routes; Router handles the hosted LLM data plane. |
|---|---|
| BYOK | Provider credentials stay inside the Gateway process and provider-direct voice traffic does not traverse Router. |
| Mixed | Use BYOK for selected voice legs and a Speko API key for managed or Router-backed work. |