Command Reference

Authentication

CommandDescription
ravi auth loginAuthenticate via browser OAuth flow
ravi auth logoutClear stored credentials
ravi auth statusShow current authentication status
ravi auth status

Identity management

CommandDescription
ravi identity listList all Identities
ravi identity create --name "X"Create a new Identity
ravi identity use <uuid>Set the active Identity
# Create and switch to a new Identity
ravi identity create --name "research-agent"
ravi identity use <identity-uuid>

Identity info

CommandDescription
ravi get emailGet the active Identity’s email address
ravi get phoneGet the active Identity’s phone number
EMAIL=$(ravi get email | jq -r '.email')
PHONE=$(ravi get phone | jq -r '.phone_number')

Inbox (grouped)

Messages grouped by conversation (SMS) or thread (email).

CommandDescription
ravi inbox emailList email threads
ravi inbox email <thread-id>View a specific email thread
ravi inbox email --unreadEmail threads with unread messages
ravi inbox smsList SMS conversations
ravi inbox sms <conversation-id>View a specific SMS conversation
ravi inbox sms --unreadSMS conversations with unread messages
# Get unread SMS previews
ravi inbox sms --unread | jq -r '.[].preview'

# Read a specific email thread
ravi inbox email <thread_id> | jq -r '.messages[].text_content'

Messages (flat)

Individual messages without grouping.

CommandDescription
ravi message emailList all email messages
ravi message email <message-id>View a specific email message
ravi message email --unreadUnread email messages only
ravi message smsList all SMS messages
ravi message sms <message-id>View a specific SMS message
ravi message sms --unreadUnread SMS messages only

SMS sending

CommandDescription
ravi sms sendSend an SMS from the active Identity’s phone number

Send flags:

FlagRequiredDescription
--toYesRecipient phone number in E.164 format (e.g. +15551234567)
--bodyYesMessage text (plain text only, max 1600 characters)
# Send a one-time passcode via SMS
ravi sms send --to "+15551234567" --body "Your code is 482910"

# Notify a human approver from a setup script
ravi sms send \
  --to "${APPROVER_PHONE}" \
  --body "Agent workspace ${WORKSPACE_NAME} is ready at ${WORKSPACE_URL}"

:::note ravi sms send uses the active Identity’s provisioned phone number as the sender. Switch identities first with ravi identity use, or target one directly with --identity <uuid>, if you need to send from a specific agent’s number. :::

Calls

CommandDescription
ravi call --to <e164>Place an outbound call from the active Identity’s phone number
ravi call listList calls
ravi call transcript <call-id>Show a call’s transcript
ravi call hangup <call-id>Hang up an active call
# Place a call and capture the call id
CALL_ID=$(ravi call --to "+15551234567" | jq -r '.uuid')

# Fetch the transcript once the call ends
ravi call transcript "$CALL_ID"

Email sending

CommandDescription
ravi email composeCompose and send a new email
ravi email reply <message-id>Reply to sender only
ravi email reply-all <message-id>Reply to all recipients
ravi email forward <message-id>Forward an email

Compose flags:

FlagRequiredDescription
--toYesRecipient email address
--subjectYesEmail subject line
--bodyYesEmail body (HTML supported)
--ccNoCC recipients (comma-separated)
--bccNoBCC recipients (comma-separated)
--attachNoFile to attach (repeatable)
ravi email compose \
  --to "user@example.com" \
  --subject "Report" \
  --body "<p>See attached.</p>" \
  --attach report.pdf

Reply flags: --body (required), --cc, --bcc, --attach (optional)

Passwords

CommandDescription
ravi passwords listList all stored passwords
ravi passwords get <uuid>Show a password entry
ravi passwords create <domain>Create a new entry
ravi passwords update <uuid>Update a password entry
ravi passwords delete <uuid>Delete a password entry
ravi passwords generateGenerate a random password without storing

Create flags: --username, --password, --generate, --length (default: 16), --no-special, --no-digits, --exclude-chars, --notes

# Auto-generate a password for a domain
ravi passwords create github.com --username "agent@in.ravi.app"

# Generate without storing
ravi passwords generate --length 32

Secrets

CommandDescription
ravi secrets set <key> <value>Store a secret (creates or updates)
ravi secrets get <key>Retrieve a secret by key
ravi secrets listList all secret keys
ravi secrets delete <uuid>Delete a secret by UUID
ravi secrets set OPENAI_API_KEY "sk-abc123..."
ravi secrets get OPENAI_API_KEY | jq -r '.value'
ravi secrets list | jq -r '.[].key'

Feedback

CommandDescription
ravi feedback "<message>"Send feedback to the Ravi team
ravi feedback "Love the CLI, but would like custom domains"

Global flags

FlagDescription
--humanOutput in human-readable format. JSON is the default.
--identity <uuid>Target a specific identity for per-identity calls (messages, contacts, passwords, secrets, calls, events). When omitted, the active identity key scopes the request.
--helpShow help for any command
--versionShow version information

The API key is an auth fence — it defines what you’re allowed to touch. The caller chooses the identity. A management key with --identity <uuid> targets one identity; an identity-scoped key is already fenced to its identity, and --identity must match it.