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.0b7.tar.gz (99.3 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.0b7-py3-none-any.whl (146.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: zeroruntime-0.1.0b7.tar.gz
  • Upload date:
  • Size: 99.3 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.0b7.tar.gz
Algorithm Hash digest
SHA256 aa7b68c7162e7c6e272546fa5077fe2c42fba183bbdb8df9c7103210fd44e5ef
MD5 580e7e2a5d274a34e46574c54784f2c6
BLAKE2b-256 8dc5f3ec14c92acc3f5c1cf1d0cfa36a151685609b26913b75b3172812018fc3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zeroruntime-0.1.0b7-py3-none-any.whl
  • Upload date:
  • Size: 146.9 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.0b7-py3-none-any.whl
Algorithm Hash digest
SHA256 1a7c44f60baa9bb17c3409640a3a5cdb76f7d658fe46561a7ce730551e4e2339
MD5 1890b823943e94387517448f9f315dae
BLAKE2b-256 3b7f327c00020358b19c535aac3583eaa9266cc3a7f32133d31c7e4db46bf7b1

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