## Quickstart (SDK-Only)

The recommended way to build Guava voice agents is using the [Guava CLI](./quickstart), which bootstraps projects and installs the SDK. This guide explains how to install the SDK directly if you’d prefer not to use the CLI.

### Create an account

Sign up for an account at [app.goguava.ai](https://app.goguava.ai).

### Install the SDK

Guava provides SDKs for Python and TypeScript. Choose your language and package manager.

### Set Environment Variables

The SDK reads credentials from the environment automatically. Set these before running any Guava scripts.

```bash
export GUAVA_API_KEY="gva-..." # Set to your API key.
export GUAVA_AGENT_NUMBER="+15551234567" # Used by SDK examples. Set to your purchased number.
```

Create an API key using the [API Keys](https://app.goguava.ai/dashboard/api-keys) page. Purchase a phone number using the [Phone Numbers](https://app.goguava.ai/dashboard/phone-numbers) page.

### Add the coding agent starter kit

Download the Guava coding agent starter kit into your project. It contains plain-text API docs sized for AI coding assistants.

```bash
curl -o guava-docs.md https://goguava.ai/docs/coding-agent-starter.md
```

### Run an Example

Examples can be run directly from the Python SDK. You can browse the examples [on GitHub](https://github.com/goguava-ai/python-sdk/tree/main/guava/examples).

```bash
# This will attach your agent to a phone number. Dial that number to talk to your agent.
python -m guava.examples.restaurant_waitlist --phone

# Start a test call with a local audio device.
python -m guava.examples.restaurant_waitlist --local

# This will attach your agent to a WebRTC code.
# You can dial it from the browser at https://app.goguava.ai/debug-webrtc
python -m guava.examples.restaurant_waitlist --webrtc

# Start an in-terminal text-only chat for testing.
python -m guava.examples.restaurant_waitlist --chat
```

Examples can be run directly from the TypeScript SDK. You can browse the examples [on GitHub](https://github.com/goguava-ai/typescript-sdk/tree/main/examples)

```bash
# This will attach your agent to a phone number. Dial that number to talk to your agent.
npx @guava-ai/guava-sdk restaurant-waitlist --phone

# Start a test call with a local audio device.
npx @guava-ai/guava-sdk restaurant-waitlist --local

# This will attach your agent to a WebRTC code.
# You can dial it from the browser at https://app.goguava.ai/debug-webrtc
npx @guava-ai/guava-sdk restaurant-waitlist --webrtc

# Start an in-terminal text-only chat for testing.
npx @guava-ai/guava-sdk restaurant-waitlist --chat
```

NextLink section="inbound-rag-example" label="Inbound Example w/ RAG"
