This release is a pre-release and may not be stable for production use.
zeroruntime
Build real-time voice agents in Python. You describe the agent — instructions, tools, and a pipeline of providers — and the runtime runs it.
Beta. This is a pre-release. The API may still change between betas, so pin an exact version in anything you depend on.
Install
Beta releases are not installed by default, so ask for them explicitly:
pip install --pre zeroruntime
or pin the version:
pip install zeroruntime==0.1.0b1
Requires Python 3.10 or newer.
Most providers need no extra: their credential is a string you set in the environment, so the base install is enough.
Quickstart
import zrt
from zrt import Agent, Pipeline, Room, function_tool
from zrt.inference import TurnDetector
from zrt.plugins import CartesiaTTS, DeepgramSTT, GoogleLLM, SileroVAD
AGENT_ID = "cascade-basic-agent"
class VoiceAgent(Agent):
def __init__(self) -> None:
super().__init__(
agent_id=AGENT_ID,
instructions="You are a helpful voice assistant.",
pipeline=Pipeline(
stt=DeepgramSTT(),
llm=GoogleLLM(),
tts=CartesiaTTS(),
vad=SileroVAD(),
turn_detector=TurnDetector(),
),
)
async def on_enter(self) -> None:
await self.session.say("Hello, how can I help you today?")
@function_tool
async def get_weather(self, latitude: str, longitude: str) -> dict:
"""Fetch the current weather for a location.
Args:
latitude: Latitude of the location. Estimate it; do not ask.
longitude: Longitude of the location. Estimate it; do not ask.
"""
return {"latitude": latitude, "longitude": longitude, "temperature_c": 28}
def invoke_agent() -> None:
zrt.invoke(AGENT_ID, room=Room(name="Cascade Agent", playground=True))
if __name__ == "__main__":
zrt.serve(VoiceAgent, on_ready=invoke_agent)
Run it and the playground URL is printed once, on stdout. Open it to talk to the agent.
Credentials
Set your runtime token in the environment before serving:
export ZERORUNTIME_AUTH_TOKEN="..."
Vendor keys go in the environment too, one per provider you use — each provider names the variable it reads when the key is missing.
Providers
zrt.plugins calls the vendor directly with your key on your account.
zrt.inference reaches a subset of the same providers through the runtime
gateway instead. The names mirror each other, so swapping the import swaps who
makes the call and who is billed:
from zrt.plugins import DeepgramSTT # your Deepgram account
from zrt.inference import DeepgramSTT # through the gateway
Metadata
Release files for zeroruntime 0.1.0b9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| zeroruntime-0.1.0b9.tar.gz | 99.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| zeroruntime-0.1.0b9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 247.7 kB
Release files / zeroruntime-0.1.0b9.tar.gz
| Download URL | zeroruntime-0.1.0b9.tar.gz |
|---|---|
| Size | 99.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
23cc52ebd61f2d7dd9d6fdff3892e9bb4397b5b04d4b6828ebcaf25bf5ae44ee
|
|
BLAKE2b-256 checksum How to use checksums |
e00a6e4bfeeab3730acd7b6ae5d605bb0118ef61ea1748dfc85227edea71e650
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / zeroruntime-0.1.0b9-py3-none-any.whl
| Download URL | zeroruntime-0.1.0b9-py3-none-any.whl |
|---|---|
| Size | 147.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1d51dd41de96f1828df03e02571bf7c44d6c289ba5d2af6fbdc77767c0ab7be3
|
|
BLAKE2b-256 checksum How to use checksums |
5d3c7047f2941f90c7c78fdf467d3303c37876c758ff296404a07faa9c4bbbe2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|