Skip to main content
Pre-release

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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zeroruntime-0.1.0b6.tar.gz (99.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zeroruntime-0.1.0b6-py3-none-any.whl (146.7 kB view details)

Uploaded Python 3

File details

Details for the file zeroruntime-0.1.0b6.tar.gz.

File metadata

  • Download URL: zeroruntime-0.1.0b6.tar.gz
  • Upload date:
  • Size: 99.1 kB
  • Tags: Source
  • Uploaded using 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}

File hashes

Hashes for zeroruntime-0.1.0b6.tar.gz
Algorithm Hash digest
SHA256 4fb394f8f5f33ba6165f228a4898300f86ba9b2fa2fac1d80c8bef4d71e3c144
MD5 c7e88e4d6459390f2f80da0ebba3eddc
BLAKE2b-256 d1ee9eb5cea7d2650220d50f5c2e80ffe31b1a46f295cc6217b048c9ed000852

See more details on using hashes here.

File details

Details for the file zeroruntime-0.1.0b6-py3-none-any.whl.

File metadata

  • Download URL: zeroruntime-0.1.0b6-py3-none-any.whl
  • Upload date:
  • Size: 146.7 kB
  • Tags: Python 3
  • Uploaded using 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}

File hashes

Hashes for zeroruntime-0.1.0b6-py3-none-any.whl
Algorithm Hash digest
SHA256 ff7f5a5e015736a4fa1dee2a8823a881a7a1e7f0e30a74aa5bba876d5f3ffc14
MD5 f01bba9f8863ebf23259efc11bd029b8
BLAKE2b-256 aa806dbb1b883e69d374b367c737fa987a284baa93864ecb0c04ccd4980d282c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page