Skip to main content
This page lists the destinations a Ravi machine sends data to, with the fields and the schedule. Start here for a security review.
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 before ravi 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 set RAVI_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.
An agent with shell or file tools can read anything its OS user can read. It can then put that text in a reply, a page or a request. Use chat-only or explicit-only for agents that talk to people you do not trust (Permissions).

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