This page describes
ravi.bot@next. It covers what the machine sends. It does not cover how the Console stores what it receives or how long it keeps it.The short version
- Without
ravi login, nothing goes to the Ravi Console. Data goes to the model provider you choose, the chat platforms you connect, and the few services under Other outbound requests. - After
ravi login, the daemon calls the Console on a schedule. It sends a short report of the agents you listed and the names of your instances. It pulls pending items, such as events and requests for agents you opened. - Message content goes to the Console only through features you use, such as publishing, open agents and Knowledge gaps, or through trace sync.
- Ravi has no analytics or crash-reporting client of its own.
Stays on the machine
Your state lives in SQLite and files under~/.ravi (RAVI_STATE_DIR moves it). Ravi’s own code never uploads these databases as files. It sends only the fields named in the sections below, such as an AGENTS.md you publish with ravi agents publish.
NATS runs at
NATS_URL, by default nats://127.0.0.1:4222 on the same machine. Events on it stay there unless you point NATS_URL at another server.
Goes to the model provider you choose
Each turn runs in the runtime of the agent’s provider: Claude Code, Codex, Pi or Grok. The runtime uses that provider’s own credentials and sends the turn to the provider’s model service.
Review each runtime’s own data settings with its vendor. For provider credentials, see Install Ravi.
Goes to the chat platforms you connect
Replies and messages go out through the channels you connect. Slack is native; WhatsApp, Telegram and Discord go through Omni.Goes to the Ravi Console, after ravi login
Nothing goes to the Console beforeravi login. Every Console runner in the daemon checks for a login first and skips the call when there is none. Calls go to https://console.ravi.bot, or to the URL you passed to ravi login --console <url>.
At login
ravi login sends these fields about the machine:
A token refresh sends only the refresh token and the installation id. It runs when a call finds the access token expired.
Background calls while logged in
These calls run without anyone typing a command. The table lists each one.
Without the
console.projects.link scope, the daemon only reads its pins and sends no agent report. It also skips requests between machines. RAVI_LIBRARY_PIN_INTERVAL_MS changes the 5-minute schedule for both, with a minimum of 10 seconds.
Gaps come only from conversations that use a Knowledge packet. Questions from a contact who asked to be forgotten are never uploaded.
What trace sync sends
Trace sync uploads a record for each new session event. It is off unless you setRAVI_SYNC_RUNNER_ENABLED=1 or run ravi sync push --traces --execute.
RAVI_SYNC_RUNNER_INTERVAL_MS changes the 60-second interval.
When you use a feature
These calls happen only when you, or an agent, run the command. Braked commands print a plan and exit 3 until you add--execute.
When someone other than you wrote the message the agent is answering, each of these calls also sends that person’s contact id, so the Console can credit the write to their linked account.
Connectors (
ravi connectors, ravi gmail) go to Ravi’s connector service at https://link.ravi.so, signed with your Console login. Each action sends its arguments, such as the email to send, with the turn’s agent id and contact id. See Connect your accounts.
Other outbound requests
A few requests go to services that are neither your model provider nor a chat platform.
The agent’s ceiling decides which built-in tools and shell commands it may run. MCP servers that the runtime loads from its own configuration are not checked against the ceiling. See Permissions.
What Ravi never sends
These are limits on Ravi’s own code. They hold for every call listed on this page.How to turn things off
Each switch below is local to one machine. Environment variables go in~/.ravi/.env, then apply them with ravi daemon restart -m "<reason>".
ravi logout asks the Console to revoke the login and deletes the local tokens, even when the revoke fails. The installation key file stays.
With no agent listed, the agent report is empty, but the daemon still calls the Console for pins and requests. While a login exists, there is no switch that stops those calls or the Knowledge mirror alone. To stop them, log out.
Next
- Ravi for organizations: what lives on each machine and in the Console.
- Security: ceilings, the write brake, audit and credentials.
- Log in to the Console: where the login lives and how to log out.
- Permissions: what each agent may do in a turn.