Skip to content

For engineers

What the OpenReason installer does on your machine.

One command sets up Claude Code and Codex to report to OpenReason. This page says what it changes, what it sends, and how to install, check and remove it.

$ curl -fsSL https://get.openreason.app/otel | bash  ✓ Setup complete.
The install command. It asks for your team's key, then for your password.

What it changes

The installer puts one program on your machine and writes the settings below. Your requests still go straight to Anthropic and OpenAI, on your own plan. or-otel is not a proxy and installs no certificate.

The Claude Code and Codex settings are managed settings, which sit above your own ~/.claude and ~/.codex. That is how they cover every session, in the terminal and in the desktop apps. Both files hold your team's key, and other accounts on the same machine can read them.

After installing, quit and reopen Claude Desktop and Codex, and open a new terminal. A session opened before setup keeps the old settings.

/usr/local/bin/or-otel
The reporter itself. The installer asks for your password to put it here.
/Library/Application Support/ClaudeCode/managed-settings.d/openreason-otel.json
Tells Claude Code to send its OpenTelemetry logs and metrics to OpenReason, with your team's key.
/etc/codex/managed_config.toml
The same for Codex, between # >>> openreason otel >>> markers. Any other managed settings in the file are kept.
/etc/codex/requirements.toml
Codex hooks that run or-otel when a session starts, after each turn, and when you stop a turn.
~/.claude/settings.json
Claude Code hooks that report a turn you stopped with Esc, and a status line that sends your 5-hour and weekly limits, then runs your own status line if you had one.
~/.openreason/otel/
Your key and settings, readable only by you, and a log of each hook run.

What it sends

Each tool's own OpenTelemetry export, plus what the hooks add. All of it goes to api.openreason.app.

What is sent

  • Which tool and model, and when
  • Token counts, cost, and how long each request took
  • The repo each session ran in

    Whichever repo it is, including a personal one.

  • The commands the agent ran, and the tools and MCP servers it called

    From Claude Code this includes each tool call's input, cut at 512 characters a value.

  • Sessions, lines changed, commits and pull requests

    Claude Code's own metrics.

  • Your plan, and your 5-hour and weekly limits

    Such as Team, Max or Pro. Neither tool's export carries these, so or-otel reads them on your machine and sends only those fields.

  • The text of each prompt and replyOn by default

    Your team lead chooses whether it is kept. To stop your machine sending it, install with --no-log-prompts.

  • Your Claude extra usage this month, and its capOnly if your team turns it on

    or-otel asks Anthropic for it with your Claude Code sign-in. or-otel setup --no-usage-api turns it off on your machine.

What is never sent

  • Your files

    or-otel does not read or upload them. Whatever a prompt or a tool call contains is sent as part of it.

  • Your Claude Code or Codex sign-in

    It is read on your machine to find your plan and, if your team turns it on, your extra usage. Only the results are sent.

A key or password in a prompt or a command is masked before anything is stored. We keep what kind of secret it was and where it appeared, never the value.

Install it, check it, remove it.

  1. 1

    Easy to install

    curl -fsSL https://get.openreason.app/otel | bash

    One command and your team's OpenReason key. It can be pushed to machines through device management, with the key supplied up front.

  2. 2

    Check

    or-otel doctor

    It checks that the reporter is installed and working, and what Claude Code is set to send, so you can confirm it first rather than take it on trust.

  3. 3

    Remove completely with one command

    or-otel uninstall

    It removes the settings, the saved key and the program itself, and Claude Code and Codex keep working.

The reporter writes each tool’s company-managed settings, so it stays on without anybody remembering to turn it on. Where your company already manages Claude Code or Codex centrally, those settings take priority.

$ or-otel doctor
  • OpenReason telemetry — status (or-otel 0.8.0)
  • key present (sk-or_…h7Qd)
  • Claude Code managed config present
  • Codex managed config present
  • config reports or-otel 0.8.0
  • Codex reply hook present
  • Codex stopped-turn hook present
  • Claude Code stopped-turn hooks present
  • claude_code plan last reported 2026-10-21 09:14:02
  • codex plan last reported 2026-10-21 08:51:40
  • Claude extra usage: not sent (your org has not turned it on)
  • Claude Code sends commands and tool input
  • Claude Code sends metrics and repo names
  • Claude Code config carries the auth header
  • ---
  • claude 2.1.285 (Claude Code)
  • Claude Desktop installed
  • last hook run: 2026-10-21 10:42:17 limits codex http=200
  • router accepts exports (https://api.openreason.app/otlp)
An example of or-otel doctor, shortened. The key, the dates and the times are invented.

Start free

Create a team, run the command, and the numbers start arriving.