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.0b5.tar.gz (94.5 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.0b5-py3-none-any.whl (141.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: zeroruntime-0.1.0b5.tar.gz
  • Upload date:
  • Size: 94.5 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.0b5.tar.gz
Algorithm Hash digest
SHA256 e9313a297b8beae4394857061b0b0f800db612bdb0678fa467c8f75a54cdbcec
MD5 adefc36ab34f0ba2bc5f747c066d67ce
BLAKE2b-256 d46160e6ab3b4a5cc981dbfb00c5838ec42d36cba6a8d34c5a5935a8584ec69f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zeroruntime-0.1.0b5-py3-none-any.whl
  • Upload date:
  • Size: 141.8 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.0b5-py3-none-any.whl
Algorithm Hash digest
SHA256 d2dcbf56704f8d8e22529f8f1ca3dedcdee49b513cfb643a9b3595e1321f3ef6
MD5 d2a65ed70c61f8e3806542dcf6f395e7
BLAKE2b-256 48d58bca466b9b9faa979010c7e597b640f37a47f6cd04c23c95165a0ef0daa0

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