ravi-secrets
Ravi Secrets
Store and retrieve key-value secrets (API keys, environment variables, tokens). All values are server-side encrypted — you send and receive plaintext. Keys are stored in plaintext for lookup/filtering.
Commands
# Store a secret
ravi secrets set OPENAI_API_KEY "sk-abc123..."
# List all secrets
ravi secrets list
# Retrieve a secret by key name
ravi secrets get OPENAI_API_KEY
# Delete a secret by UUID
ravi secrets delete <uuid>
JSON Shapes
ravi secrets list:
[
{
"uuid": "...",
"identity": 1,
"key": "OPENAI_API_KEY",
"value": "sk-abc123...",
"notes": "",
"created_dt": "2026-02-25T10:30:00Z",
"updated_dt": "2026-02-25T10:30:00Z"
}
]
ravi secrets get OPENAI_API_KEY:
{
"uuid": "...",
"identity": 1,
"key": "OPENAI_API_KEY",
"value": "sk-abc123...",
"notes": "",
"created_dt": "2026-02-25T10:30:00Z",
"updated_dt": "2026-02-25T10:30:00Z"
}
Common Patterns
Store and retrieve API keys at runtime
# Store a key
ravi secrets set OPENAI_API_KEY "sk-abc123..."
# Retrieve the key value
API_KEY=$(ravi secrets get OPENAI_API_KEY | jq -r '.value')
# List all available key names
ravi secrets list | jq -r '.[].key'
Store multiple service keys
ravi secrets set ANTHROPIC_API_KEY "sk-ant-..."
ravi secrets set GITHUB_TOKEN "ghp_..."
Important Notes
- Server-side encryption is transparent — you always see plaintext values.
- Keys must be unique per identity — if you need to update an existing key, use
ravi secrets setagain (it will upsert). Creating a duplicate key name will return a validation error. - Keys are auto-uppercased — keys are automatically uppercased by the server (e.g.
test_keybecomesTEST_KEY). Keys must match^[A-Z][A-Z0-9_]*$after uppercasing. - Keys are plaintext — only values and notes are encrypted. Use descriptive key names like
OPENAI_API_KEY,STRIPE_SECRET_KEY.
Full API Reference
For complete endpoint details, request/response schemas, and parameters: Secrets
Related Skills
- ravi-passwords — Store website credentials (domain + username + password, not key-value secrets)
- ravi-login — Signup workflows that may need API keys stored after registration
- ravi-feedback — Report secrets issues or suggest improvements
More from ravi-hq/ravi-skills
ravi
Overview of Ravi and when to use each skill. Ravi gives AI agents real email inboxes, phone numbers, and an encrypted secret store via API. Do NOT use for tasks unrelated to agent identity, email, phone, or credentials.
1ravi-sso
Get short-lived identity verification tokens to prove your Ravi identity to third-party services. Do NOT use for agent authentication (use ravi-login) or credential storage (use ravi-secrets).
1ravi-login
Sign up for and log into services using your Ravi identity — handles onboarding, forms, 2FA, OTPs, and credential storage. Do NOT use for standalone inbox reading (use ravi-inbox) or email sending (use ravi-email-send).
1ravi-inbox
Read incoming SMS or email messages — OTPs, verification codes, verification links, incoming mail. Do NOT use for sending email (use ravi-email-send) or managing credentials (use ravi-passwords or ravi-secrets).
1ravi-passwords
Store and retrieve website credentials — password manager for domain/username/password entries. Do NOT use for API keys/secrets (use ravi-secrets) or reading messages (use ravi-inbox).
1ravi-email-send
Send, compose, reply, reply-all, or forward emails with HTML formatting and attachments. Do NOT use for reading incoming email (use ravi-inbox) or for credentials (use ravi-passwords or ravi-secrets).
1