The open-source profiler for voice agents. Voice AI vendors hide three numbers: whether a call worked, what it cost, and how to make it cheaper. Add one line and VoiceGateway prices and times every STT, LLM and TTS call in your LiveKit or Pipecat agent. Self-hosted, on your own keys.
from livekit.agents import AgentSession
from livekit.plugins import cartesia, deepgram, openai
import voicegateway
session = AgentSession(
stt=deepgram.STT(model="nova-3"),
llm=openai.LLM(model="gpt-4.1-mini"),
tts=cartesia.TTS(model="sonic-3"),
)
voicegateway.attach(session)
Every call then lands as a row you can read, per stage and in total (example numbers):
call 8f2c STT deepgram/nova-3 0.95 audio min $0.00456
LLM openai/gpt-4.1-mini 1,320 in, 220 out $0.00088
TTS cartesia/sonic-3 860 chars $0.03440
total $0.03984 · 640 ms to first audio
Using Pipecat? Same one line.
from pipecat.pipeline.task import PipelineTask
import voicegateway
task = PipelineTask(pipeline)
voicegateway.attach(task)
Quick start
pip install "voicegateway[livekit,dashboard]" # or [pipecat,livekit,dashboard]
voicegw init && voicegw serve # dashboard at http://localhost:8080
Add the attach() line to your agent and run one call. VoiceGateway bundles no provider plugins: it meters the ones you already use. The quickstart walks through a first call end to end. Python 3.11+.
What it does
- Prices every call by audio seconds, tokens and characters, through voice-prices. How attach works
- Checks itself against your invoices.
voicegw reconcilecompares recorded cost with a provider's usage export. Costs and reconciliation - Controls spend.
guard()wraps one provider with a daily budget, fallback and rate limit, and returns the same type. guard() - Collects a fleet. One collector on your own server, every agent pushes to it. Self-hosting
- Talks to coding agents. An MCP server lets Claude Code, Cursor and Codex query costs and calls. MCP
Building a text-only LLM app? LiteLLM is the better fit. VoiceGateway is for agents that listen and speak.
See it first
Click through the real dashboard with example data, no install and no login, at voicegateway.dev/demo.
Contribute in ten minutes
-
Pick an issue labelled good first issue. Each one names the files, the change and the test.
-
Comment
.taketo claim it. First comment wins. -
Set up and run the tests:
git clone https://github.com/mahimailabs/voicegateway && cd voicegateway pip install -e ".[dev]" && pytest
-
Open a PR with
Closes #<issue>.
CONTRIBUTING.md has the checklist and the deeper guides. Questions go to Discord; security reports go through SECURITY.md.
License
MIT. Built in public by Mahimai Raja, on LiveKit Agents, Pipecat and voice-prices.
GitAds Sponsored
Metadata
Release files for voicegateway 0.27.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| voicegateway-0.27.0.tar.gz | 2.5 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| voicegateway-0.27.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 4.0 MB
Release files / voicegateway-0.27.0.tar.gz
| Download URL | voicegateway-0.27.0.tar.gz |
|---|---|
| Size | 2.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a52fb02867a40dc632fac887f75cffbd058fcba56503b4bc38924e3a4a2b7a55
|
|
BLAKE2b-256 checksum How to use checksums |
866b3c3036b06e2db07b3c75585523526305ce18e608e62ed33b00f660e7c88c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / voicegateway-0.27.0-py3-none-any.whl
| Download URL | voicegateway-0.27.0-py3-none-any.whl |
|---|---|
| Size | 1.5 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c366e8631ae043de69b41b7dc5d3fab5afe01aeba550c2c010683b21ec8faa8a
|
|
BLAKE2b-256 checksum How to use checksums |
0bbfce9812ff9ce3a1d97faa81ebc9a95c053225b8c81a66c7c8fc3c25782a69
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|