Vault

Every identity has an encrypted vault for the credentials it needs to work — website passwords (domain, username, password entries) and key-value secrets (API keys, tokens, and other env-style values). Everything is encrypted at rest and reachable over the CLI, the Python SDK, and the TypeScript SDK.

Every example below runs against one identity. Grab it once (or set it as the active identity in the CLI) and the rest follow. Need one first? See Identities.

Select the identity to work with
ravi identity use <identity-uuid>
from ravi import Ravi

ravi = Ravi(api_key="ravi_id_...")
identity = ravi.identities.get("<identity-uuid>")
import { Ravi } from "@ravi-hq/sdk";

const ravi = new Ravi({ apiKey: process.env.RAVI_API_KEY! });
const identity = await ravi.identities.get("<identity-uuid>");

Passwords

Store a password

Save a login for a site — domain, username, and password, with optional notes.

ravi passwords create acme.com --username agent --generate
entry = identity.vault.passwords.create(
  domain="acme.com",
  username="agent",
  password="s3cr3t-pass",
  notes="Signup for the ops dashboard",
)
const entry = await identity.vault.passwords.create({
domain: "acme.com",
username: "agent",
password: "s3cr3t-pass",
});

List passwords

See every stored login for this identity.

ravi passwords list
entries = identity.vault.passwords.list()
const entries = await identity.vault.passwords.list();

Get one

Fetch a single entry by id to read its username and password.

ravi passwords get <password-uuid>
entry = identity.vault.passwords.get("<password-uuid>")
const entry = await identity.vault.passwords.get("<password-uuid>");

Update a password

Rotate the password (or change any other field) on an existing entry.

ravi passwords update <password-uuid> --password "new-s3cr3t"
entry = identity.vault.passwords.update(
  "<password-uuid>",
  password="new-s3cr3t",
)
const entry = await identity.vault.passwords.update("<password-uuid>", {
password: "new-s3cr3t",
});

Delete a password

Remove a login you no longer need.

ravi passwords delete <password-uuid>
identity.vault.passwords.delete("<password-uuid>")
await identity.vault.passwords.delete("<password-uuid>");

Generate a strong password

Get a random, strong password — useful right before creating an entry.

ravi passwords generate --length 24
password = identity.vault.passwords.generate()
const password = await identity.vault.passwords.generate();

Secrets

Store a secret

Save a key-value secret — an API key, token, or any env-style value.

ravi secrets set OPENAI_API_KEY "sk-…"
secret = identity.vault.secrets.create(
  key="OPENAI_API_KEY",
  value="sk-…",
  notes="Prod key for the summarizer",
)
const secret = await identity.vault.secrets.create({
key: "OPENAI_API_KEY",
value: "sk-…",
});

List secrets

See every secret stored for this identity.

ravi secrets list
secrets = identity.vault.secrets.list()
const secrets = await identity.vault.secrets.list();

Get a secret

Fetch a single secret to read its value.

ravi secrets get OPENAI_API_KEY
secret = identity.vault.secrets.get("<secret-uuid>")
const secret = await identity.vault.secrets.get("<secret-uuid>");

Update a secret

Rotate the value of an existing secret.

ravi secrets set OPENAI_API_KEY "sk-new…"
secret = identity.vault.secrets.update(
  "<secret-uuid>",
  value="sk-new…",
)
const secret = await identity.vault.secrets.update("<secret-uuid>", {
value: "sk-new…",
});

Delete a secret

Remove a secret you no longer need.

ravi secrets delete <secret-uuid>
identity.vault.secrets.delete("<secret-uuid>")
await identity.vault.secrets.delete("<secret-uuid>");

Looking for exact request and response fields? See the full API reference.