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.
| File | Purpose |
|---|---|
config.json | Long-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
| Group | Purpose |
|---|---|
ravi auth | Login, logout, and auth status |
ravi identity | Create, list, and select identities |
ravi get | Fetch active identity resources |
ravi inbox | Read email and SMS inboxes |
ravi message | Work with individual messages |
ravi email | Compose and reply to email |
ravi sms | Send SMS from the identity’s number |
ravi call | Place calls, list them, fetch transcripts, hang up |
ravi passwords | Password entry operations |
ravi secrets | Secret entry operations |
ravi feedback | Send 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.