ravi cloud drives it with your ravi login session.
You need a
ravi login session, a Console project (--project <slug>, or your default project) and an agent published to the Library with ravi agents publish.Braking
Everything that spends money, creates provider objects or sends a secret is braked: without--execute the command prints its plan and exits 3, and nothing is sent. Stopping, denying, archiving, removing and disabling apply at once. Every command takes --json.
Set the organization’s key
An owner or admin sets the Anthropic API key once. The key is read only from redirected stdin, and only with--execute; it never comes back, only its last characters.
--monthly-alert notifies owners and admins when the month’s cost passes the amount. Agents never set the key.
Deploy and run
--budget <usd>(0.5 to 200) caps one run; without it the agent’s budget applies (5 by default). A run that reaches it endsbudget_exceeded.--repo owner/name[@branch]mounts a repository the organization’s GitHub App covers; repeat it for more.--idempotency-key <key>makes a retry return the same run instead of starting a second one.runs follow --jsonprints one event per line and ends with{"type":"run","run":{...}}.
starting, running, waiting_approval, completed, failed, stopped, budget_exceeded.
Approvals
Withtools.writes: "ask" (the default), a run pauses in waiting_approval before a write outside its container, such as an MCP tool that changes something. Approving makes the run act as you.
Files
Schedules
Each tick starts a paid run as the person who scheduled it, with the schedule’s prompt (default: the agent’sHEARTBEAT.md) and budget.
Run a task in the cloud
in_progress, and the daemon follows the run every 30 seconds:
- a pending approval reaches the session (
--report-to, or the session that dispatched) with the approve command; - when the run ends, the task becomes
doneorfailedand the result reaches the session once, quoted as untrusted text.
CLOUD_AGENT_NOT_PUBLISHED. From a terminal, pass --report-to <session>: a cloud task needs a session for its result (CLOUD_TASK_SESSION_REQUIRED otherwise).
The cloud block
The agent’s agent.json can carry a cloud block. ravi agents publish validates and publishes it; ravi agents install writes it back, so publishing again keeps it. Every key is optional:
The block never carries credentials: keys that look like secrets (token, secret, password, apiKey, authorization, cookie), URLs with a user or a query string, and unknown keys are refused with
CLOUD_AGENT_DEFINITION_INVALID.