Built for Developers

Write TypeScript, test locally, deploy globally. Modern tools that work the way you think.

Get Started in Minutes

From prototype to production with minimal friction

Install the CLI

Once you have access, follow the instructions in Voice Studio to download and install the Urai CLI for your platform.

1

Write Your Tool

Create a TypeScript file with your business logic

// calendar.ts
import { tool, meta } from "@urai/runtime"

class CalendarTool {
  @tool
  static async check_availability({
    date,
    time
  }: {
    date: string;
    time: string
  }) {
    const apiKey = meta.secrets.CALENDAR_API_KEY
    const response = await fetch(
      `https://api.calendar.com/availability`,
      {
        method: 'POST',
        headers: {
          'Authorization': `Bearer ${apiKey}`
        },
        body: JSON.stringify({ date, time })
      }
    )
    return await response.json()
  }
}
2

Test Locally

Test your functions before deploying

$ urai js call calendar.ts check_availability \
date=2024-01-15 time=14:00
✓ Available: 2pm with Dr. Smith
3

Deploy

Generate schema, create tool, and upload

$ urai js generate-schema calendar.ts -o schema.json
$ urai tool create calendar --schema schema.json
Tool ID: 550e8400-e29b-41d4-a716-446655440000
$ urai tool upload 550e8400... ./calendar/
✓ Uploaded 3 files
4

Link to Agent

Connect your tool to a voice agent

$ urai tool link 550e8400... <agent-id>
✓ Tool linked successfully

Developer Experience First

Tools designed to make your workflow faster and more reliable

TypeScript Support

Full TypeScript support with automatic type checking and schema generation

Local Testing

Test functions on your machine before deploying to production

Serverless Runtime

JavaScript runtime like Cloudflare Workers - no servers to manage

API-First Design

RESTful APIs for all operations - integrate with your CI/CD

Git-Friendly

Version control your agent configurations and tool implementations

Hot Reload

Update code and secrets without downtime using tool reload

Complete CLI Toolkit

Everything you need from the command line

Tool Management

urai tool create <name> --schema <file>

Create a new tool

urai tool upload <id> <directory>

Upload tool files

urai tool link <tool-id> <agent-id>

Link tool to agent

urai tool reload <tool-id>

Reload tool runtime

Local Testing

urai js call <script> <function> [args]

Test function locally

urai js list-tools <script>

List tool declarations

urai js generate-schema <script>

Generate schema JSON

Secret Management

urai secret set <name> <value>

Create or update secret

urai secret list

List all secrets

Start Building Today

Join developers building production voice agents with Urai