Skip to Content

How do I compare usage between Cursor (beta) and OpenHands on my team?

Rius compares Cursor (beta) and OpenHands usage in one workspace on traces, failures, tools and timing, while token and cost figures exist only for OpenHands. Send both agents to the same workspace and tell them apart by the agent name, the developer and the sender. Compare traces, failed traces, tool calls and errors across both. Treat tokens and cost as OpenHands-only, because Cursor’s hooks do not report usage.

How it works

  • One workspace. Each trace belongs to the workspace of the key that sent it. Cursor (beta) uses the workspace each developer picks at sign-in. OpenHands uses the key you put in its environment variables. Use the same workspace for both and the traces land side by side.
  • Different units. One Cursor (beta) trace is one agent chat. One OpenHands trace is one conversation. Both hold model calls, tool calls and errors.
  • Telling them apart. Cursor chats appear as an agent named cursor on the Agents page. Cursor sends no heartbeat, so chats do not show under Instances. On the Users page, a Cursor developer appears by sign-in email (plugin 0.6.2 or later). An OpenHands developer appears by the user_id you pass when you create the conversation. In the trace list, the Sent by column names the owner of the key that sent each trace.
  • What each reports. Cursor traces carry no token counts and no cost. OpenHands traces carry tokens and cost, with gaps for OpenAI Responses API models and for web-app conversations, whose model calls are streamed.
  • Content. Cursor sends prompts, replies and tool output only from folders where the developer ran /rius-enable-content-here. OpenHands always sends them.

Set it up

  1. Pick one workspace. Have a workspace admin invite your teammates, as described in Track Claude Code usage and cost across a team. Each person then picks that workspace when signing in.

  2. Connect Cursor (beta). The plugin needs version 0.6.0 or later, and macOS or Linux. In Cursor’s plugin settings, choose Import from Repo and enter glassflow/rius-coding-agents. Then, in the agent chat, run these commands. /rius-login opens the browser, where you pick the team workspace and click Connect. /rius-enable-here turns tracing on for the current folder, and /rius-status confirms it. See Cursor (beta) for the full guide.

    /rius-login /rius-enable-here /rius-status
  3. Connect OpenHands. OpenHands needs no plugin. Set three environment variables, using a key from the same workspace:

    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_..."
  4. Name the developer on the OpenHands side. Pass user_id when you create each conversation, so the developer shows on the Users page instead of being anonymous. OpenHands Cloud cannot send to Rius, so use the OpenHands SDK.

  5. Check both arrive. Open the trace list, look for the cursor agent on the Agents page, and use Sent by to see which key sent each trace.

What you get

Some figures compare fairly across the two agents, and some do not.

Compare these:

  • Tool calls inside the traces, by name and count, since both agents report tool names.
  • Timing and the span tree of a run, keeping in mind that Cursor span times are when Cursor reported each step, not when the model call started.

Do not compare these:

  • Errors and failed traces. Cursor marks a shell command that exits non-zero as an error. OpenHands keeps the exit code in the tool output and leaves the span Ok, so the same failure counts on one side only.
  • Tokens and cost. Only OpenHands has them, and even there web-app conversations and OpenAI Responses API models have gaps. A Cursor developer’s lower cost reflects missing data, not lower use.
  • Raw trace counts. A Cursor trace is a chat and an OpenHands trace is a conversation, so one is not equal to the other.
  • Counts of live work. Figures on Users and Agents include a Cursor chat once its trace is closed. A chat closes when Cursor ends the session, or when your next chat finds it idle for 12 hours.

For a team-wide view of which agents are in use, start from Coding agents.

When something else fits

  • If you need token and cost totals for every developer, use an agent that reports usage. Claude Code and Codex (beta) report tokens and cost, and the Coding agents page compares them side by side.
  • If your OpenHands users are on OpenHands Cloud, Rius cannot receive their traces, so they cannot be part of the comparison.
  • If a developer’s Cursor work happens in cloud or background agents or Tab completions, Rius does not trace those.

Still stuck? Get help

Last updated on