Aywa RuntimeDocumentation
Website Create account

Quickstart

Install a private runtime and verify it before routing calls.

This guide follows the intended production path: create a workspace, generate an install token, install the runtime on an Ubuntu host, connect providers, and verify readiness.

Why Aywa Runtime

Why this runtime exists

Aywa Runtime was created from the operational constraints behind Aywa's own phone-agent stack: real-time voice latency, tool reliability, BYO providers, predictable infrastructure cost, and a privacy boundary where call data stays in the infrastructure being operated.

The goal is not to add another hosted voice dashboard. The goal is to give serious teams a private execution layer for production voice agents, with the same practical surfaces they need for assistants, phone numbers, calls, tools, webhooks, logs, and provider routing.

Private by default

Provider secrets, audio, transcripts, tools, and artifacts live in the deployed runtime environment.

Built for high-volume operations

The architecture is shaped for daily production call traffic, not only local demos or toy agents.

Provider-owned economics

Teams bring their LLM, STT, TTS, telephony, storage, and analytics providers without Aywa platform markup on call minutes.

Voice-first runtime

Turn-taking, endpointing, barge-in, transfer, and webhook delivery are part of the runtime contract.

Private beta flow

Prerequisites

Start with a Linux host that can run Docker, has a public HTTPS endpoint, and can reach the providers you choose for STT, LLM, TTS, telephony, storage, and analytics.

Host

Ubuntu 24.04 LTS, Docker Engine, Docker Compose plugin, inbound 80/443, and SSH access.

Account

Aywa Runtime workspace, active trial or subscription, and an install token scoped to the workspace.

Providers

At least one model provider, one speech-to-text provider, one text-to-speech provider, and a telephony path.

State

Postgres, Redis or Valkey, and S3-compatible artifact storage for production readiness.

1. Generate an install token

In the dashboard, create a workspace, choose a plan, then generate an install token. Tokens are short-lived, bound to the workspace, and should be treated like deployment credentials.

Installer status: the public installer endpoint stays fail-closed until signed builds and registry access are ready for beta customers.

2. Run the installer

The installer should validate the token, pull signed artifacts, write the local configuration, enable the runtime service, and register the instance heartbeat.

Install command
curl -fsSL https://install.aywaruntime.com | \
  sudo AYWA_TOKEN="$AYWA_INSTALL_TOKEN" bash

3. Check runtime readiness

A healthy process is not the same as a production-ready runtime. Use liveness for process checks and readiness for configured dependencies.

GET/healthProcess liveness. Safe for load balancer health probes.
GET/readyzDependency readiness for auth, public URL, storage, providers, WebRTC, and SIP mode.
GET/metricsPrometheus text metrics for production monitoring.
GET/metrics.jsonDashboard-friendly counters for calls, logs, latency, webhooks, and audio events.
Operator commands
aywa status
aywa update --channel stable
aywa support-bundle --redact

4. Configure providers

The runtime does not need Aywa's control plane to store provider secrets. Configure provider keys in the deployed runtime environment and validate them through /readyz.

Voice pipeline essentials
VOICE_PIPELINE_ENABLED=true
VOICE_PIPELINE_STT_ENABLED=true
VOICE_PIPELINE_TTS_ENABLED=true
OPENAI_API_KEY=...
DEEPGRAM_API_KEY=...
ELEVENLABS_API_KEY=...
CARTESIA_API_KEY=...

5. Route a staging call

Before production traffic, create one assistant, bind it to a phone number or web transport, run a staging call, then inspect timeline, logs, costs, and webhook attempts.

Minimal API smoke
curl "$RUNTIME_URL/assistant" \
  -H "Authorization: Bearer $RUNTIME_API_KEY"

curl "$RUNTIME_URL/call" \
  -H "Authorization: Bearer $RUNTIME_API_KEY"