Introduction

What is Ravi?

Ravi is an identity provider for AI agents. One API call creates an Identity — a coherent online persona an agent can use to communicate, store credentials, and authenticate with services.

An agent working on your behalf shouldn't assume your identity. When your agent sends an email, it shouldn't come from your Gmail. When it stores credentials, they shouldn't go in your personal vault. Agents need the same separation that exists between service accounts and employee credentials in enterprise IT.

What you get

Each Identity bundles everything an agent needs:

Capability How it works
Email Auto-generated address per Identity — send, receive, and thread conversations
Phone & SMS Dedicated phone number for receiving verification codes and SMS
Credential vault E2E-encrypted password storage per Identity (zero-knowledge)
Secret vault E2E-encrypted key-value store for API keys and environment variables
TOTP Built-in 2FA code generation for services that support authenticator apps

The core abstraction

An Identity is not an Agent. An agent is the software; an Identity is the persona it wears. One agent can have multiple identities. One identity can be handed between agents. They're separate concepts — like AWS IAM roles vs. the applications that assume them.

Identity
├── Email address (auto-generated, receives real email)
├── Phone number (receives SMS, OTPs)
├── Credential vault (E2E-encrypted username/password/notes per service)
├── Secret vault (E2E-encrypted key-value secrets)
└── TOTP secrets (generates 2FA codes for enrolled services)

Why not existing tools?

Approach Problem
Share your personal accounts Security risk — agent sees all your email, credentials exposed
1Password for agents Requires desktop app, biometric gates, tmux hacks — architecturally broken for autonomous operation
Plain text credentials Insecure — credentials stored on disk in the clear
Email-only services No credential storage, no 2FA — only solves part of the problem

Ravi is API-native. Two environment variables, no desktop app, no human-in-the-loop. Your agent runs autonomously.

See it in action

Create an Identity in one command:

ravi identity create --name "my-agent" --json
{
  "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "name": "my-agent",
  "inbox": "my-agent@in.ravi.app",
  "phone": "+15559876543"
}

Your agent now has a real email address and phone number. Use them to sign up for services, receive OTP codes, and send email — all from an isolated Identity that doesn't touch your personal accounts.

# Retrieve credentials at runtime
EMAIL=$(ravi get email --json | jq -r '.email')
PHONE=$(ravi get phone --json | jq -r '.phone_number')

Works anywhere — including headless. Ravi is designed for autonomous operation: no desktop app, no browser required at runtime. Login uses a device-code flow you complete once; after that, all CLI commands run without user interaction. This makes Ravi safe to use in CI pipelines, Docker containers, background agent processes, and remote servers.

For AI coding agents

If you are an AI agent building a Ravi integration, a consolidated machine-readable reference is available at /llms.txt. It covers all CLI commands, environment variables, API endpoints, parallel agent patterns, and common errors in a single flat file — no scraping required.

# Fetch Ravi docs into your context
curl https://docs.ravi.app/llms.txt

Next steps