CLI Overview

The Ravi CLI is the terminal client for local setup and agent workflows.

Install

brew install ravi-hq/tap/ravi

See Installation for source builds and release archives.

Configuration

The CLI stores local state under ~/.ravi/ by default.

FilePurpose
config.jsonLong-lived ravi_mgmt_... / ravi_id_... keys and this machine’s active identity

The CLI is one identity per machine via ~/.ravi/config.json. Shared CLI state is not a multi-agent runtime.

Multiple agents on one host must call the HTTP API with per-identity ravi_id_... keys (or the Cursor Connect plugin). Do not flip a global CLI identity or use multiple config directories as the multi-agent path.

Command Groups

GroupPurpose
ravi authLogin, logout, and auth status
ravi identityCreate, list, and select identities
ravi getFetch active identity resources
ravi inboxRead email and SMS inboxes
ravi messageWork with individual messages
ravi emailCompose and reply to email
ravi smsSend SMS from the identity’s number
ravi callPlace calls, list them, fetch transcripts, hang up
ravi passwordsPassword entry operations
ravi secretsSecret entry operations
ravi feedbackSend feedback

The API key is an auth fence — it defines what a caller may touch, not which identity it acts as. Local CLI commands use this machine’s active identity. --identity <uuid> targets one identity for a single command; it is not how you run many agents.

Output

JSON is the default output format for scripts and agents. Use --human only when you want human-readable tables or messages:

ravi auth status
ravi identity list
ravi identity list --human

API Relationship

The CLI talks to the same backend documented in API Overview. For service-to-service code, an API key and direct HTTP calls may be simpler than shelling out to the CLI.

Next Steps