Skip to Content

Does tracing OpenHands with Rius send my code or prompts?

Yes, Rius receives prompts, model answers and tool inputs and outputs from OpenHands, because OpenHands always sends content. Nothing is sent until you set the three OTLP environment variables. The Rius plugin for Claude Code, Codex (beta) and Cursor (beta) is different: it sends structure only unless you enable content for a folder.

How it works

OpenHands needs no plugin. Its SDK already traces each conversation with OpenTelemetry, and the three environment variables point that export at Rius. There is no content switch on this path, so every traced conversation carries its content.

What a conversation sends:

  • Model calls: the model, the prompt and the answer. Token counts and cost are included where OpenHands reports them.
  • Tool calls: each call (terminal, file_editor, finish and so on) with its input and output. A terminal command and its exit code are in the trace.
  • Conversation details: the conversation id as the Rius session, and the agent name.

Code can appear in two places: in prompts and answers, and in tool inputs and outputs such as a file edit or a command result.

The plugin agents work the other way round. Tracing is off until a developer turns it on for a folder, and each folder has one of two modes:

  • Structure only (/rius:enable-here in Claude Code): the span tree, models, tokens, cost, timing, tool names and error types, plus the developer’s sign-in email, the folder path and the git branch. No prompts, replies, file contents or command output.
  • Content (/rius:enable-content-here): also prompts and replies (never the model’s thinking), tool inputs and outputs, and tool error details. The plugin removes the secrets it recognises first, on a best-effort basis, so treat redaction as a safety net and not a guarantee.

/rius:disable-here stops a folder, and a disabled folder always wins. In Codex (beta) the commands are $rius:rius-enable-here, $rius:rius-enable-content-here and $rius:rius-disable-here. In Cursor (beta) they are /rius-enable-here, /rius-enable-content-here and /rius-disable-here.

Set it up

  1. Decide first whether OpenHands content may leave the machine. Using OpenHands, you cannot send structure only, so keep it off repos and tasks whose code or prompts must stay private.
  2. Create a Rius API key with the Send telemetry scope in the console, under Settings → API keys. Use a key from the workspace whose members should be able to read the content, because the key decides which workspace receives the traces.
  3. Set the variables in the environment of the process that runs OpenHands. For the local web app, put them in OH_AGENT_SERVER_ENV. The full steps are in the OpenHands guide.
export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://ingest.eu.console.rius-glassflow.com/v1/traces export OTEL_EXPORTER_OTLP_TRACES_PROTOCOL=http/protobuf export OTEL_EXPORTER_OTLP_TRACES_HEADERS="Authorization=Bearer%20ri_..."
  1. To stop sending, unset the variables. Tracing starts only when OpenHands finds them.
  2. If you want structure only from a coding agent, use the plugin instead. For Claude Code, see Track Claude Code usage and cost across a team, and the Coding agents overview compares all four agents.

What you get

  • A clear picture of what leaves your machine. With OpenHands, content is always included. With the plugin, content is sent only from folders a developer enabled for it.
  • One trace per conversation. The conversation, each agent.step, and the model and tool calls inside it.
  • Tokens and cost where OpenHands reports them. There is no token data for OpenAI Responses API models or for the web app’s streamed calls, so those traces show no tokens or cost.
  • A shared workspace. Everyone in the workspace can read what is sent, so agree as a team which workspace receives OpenHands traces and which plugin repos send content.
  • Per-developer attribution. Pass user_id when you create the OpenHands conversation, or the traces land in the anonymous row on the Users page. Plugin sessions show under the developer’s sign-in email.

When something else fits

  • If prompts, replies and file contents must stay on the machine by default, use the Rius plugin for Claude Code, Codex (beta) or Cursor (beta). It sends nothing until a developer enables a folder, and structure only unless that folder is enabled for content.
  • OpenHands Cloud cannot send to Rius at all, because it takes no custom environment variables.
  • If you use OpenHands and cannot send its content, leave tracing off for it.

Still stuck? Get help

Last updated on