Setup guide

Follow these steps to connect Claude Code telemetry to Aimeterly. Confirm data arrives from your own machine first, then roll out to the organization. No extra development is required.

Before you start

  • Checking your own machine can be done by whoever uses Claude Code. Enabling Claude Code telemetry across the organization and distributing the settings is done by an organization admin.
  • Each captured content item is truncated at approximately 60KB.
  • Costs shown in Aimeterly are estimates derived from telemetry and may differ from billing by Anthropic or your cloud providers.

Overview

Aimeterly is a managed service. Distribute one Claude Code settings snippet (an env block) and Claude Code sends usage telemetry to your dedicated endpoint, which appears on the dashboard within minutes. The order is: confirm data arrives from your own machine first, then roll out to the organization. There are two ways to distribute: from the Claude Team / Enterprise admin console, or by placing managed-settings.json on each machine. Rolling out across the organization is done by an organization admin.

1. Sign up and create an organization

Create an account and an organization. The organization name can be your own name or your team's. If you sign up with email, open the link in the confirmation email and then sign in. Once the organization exists, you can issue a dedicated ingest endpoint and ingest token on the setup screen. Every new organization starts with a 14-day Pro trial.

2. Try it on your own machine first

Before distributing anything, confirm that your own machine can send data to Aimeterly. Checking one machine first lets you separate token or network problems from distribution problems (admin console / MDM) if something does not work.

  1. Issue an ingest token on the setup screen. The plaintext is shown only once, at issue time.
  2. Copy the test command for your OS, paste it into a new terminal, and run it. Claude Code starts.
  3. Send one prompt. Telemetry is sent in the background.
  4. Return to the setup screen and start the connection check. Once data arrives, the status changes to "Data received".

Replace <YOUR_INGEST_ENDPOINT> and <YOUR_INGEST_TOKEN> with the actual values shown on the setup screen (the test command copied from the screen already contains them). The command includes test-only environment variables that shorten the export interval, so do not reuse it as your distributed settings.

macOS / Linux (bash, zsh)

export CLAUDE_CODE_ENABLE_TELEMETRY='1'
export OTEL_METRICS_EXPORTER='otlp'
export OTEL_LOGS_EXPORTER='otlp'
export OTEL_EXPORTER_OTLP_PROTOCOL='http/protobuf'
export OTEL_EXPORTER_OTLP_ENDPOINT='<YOUR_INGEST_ENDPOINT>'
export OTEL_EXPORTER_OTLP_HEADERS='Authorization=Bearer <YOUR_INGEST_TOKEN>'
export OTEL_METRIC_EXPORT_INTERVAL='10000'
export OTEL_LOGS_EXPORT_INTERVAL='5000'
claude

Windows (PowerShell)

$env:CLAUDE_CODE_ENABLE_TELEMETRY = '1'
$env:OTEL_METRICS_EXPORTER = 'otlp'
$env:OTEL_LOGS_EXPORTER = 'otlp'
$env:OTEL_EXPORTER_OTLP_PROTOCOL = 'http/protobuf'
$env:OTEL_EXPORTER_OTLP_ENDPOINT = '<YOUR_INGEST_ENDPOINT>'
$env:OTEL_EXPORTER_OTLP_HEADERS = 'Authorization=Bearer <YOUR_INGEST_TOKEN>'
$env:OTEL_METRIC_EXPORT_INTERVAL = '10000'
$env:OTEL_LOGS_EXPORT_INTERVAL = '5000'
claude

About permissions

  • This command only affects the environment variables of the terminal you run it in and does not edit any Claude Code configuration files. On a machine where Claude Code is installed and signed in, no OS administrator rights are required. The variables stay in that terminal, so close it when you are done.
  • On a machine where Claude's managed settings (server-managed settings / managed-settings.json) pin the OpenTelemetry destination, environment variables cannot change it. In that case, ask your organization admin to distribute the settings as described in the following sections.
  • In Aimeterly, the account that creates the organization becomes its owner. You can invite your team's admins later.

If nothing arrives

  • On a machine whose user settings (~/.claude/settings.json) set a destination such as OTEL_EXPORTER_OTLP_ENDPOINT in their env block, we have observed (Claude Code 2.1.291, macOS) that the setting takes precedence over environment variables. For the duration of the check, back up the settings file and remove those keys, or override them for one session with `claude --settings {"env":{...}}`.
  • Check that the token in the test command is not still the placeholder.
  • Quit Claude Code, start it again with the test command, and then send a prompt.

No credit card required · 14-day Pro trial included

3. Get your configuration snippet

On the setup screen inside the app, copy your configuration snippet. It looks like the example below, with your real endpoint and token filled in. The snippet is the single source of the required environment variables, so you never assemble them by hand. The same content works as-is with either distribution option in the next section.

{
  "env": {
    "CLAUDE_CODE_ENABLE_TELEMETRY": "1",
    "OTEL_METRICS_EXPORTER": "otlp",
    "OTEL_LOGS_EXPORTER": "otlp",
    "OTEL_EXPORTER_OTLP_PROTOCOL": "http/protobuf",
    "OTEL_EXPORTER_OTLP_ENDPOINT": "<YOUR_INGEST_ENDPOINT>",
    "OTEL_EXPORTER_OTLP_HEADERS": "Authorization=Bearer <YOUR_INGEST_TOKEN>"
  }
}

Replace <YOUR_INGEST_ENDPOINT> with the ingest endpoint shown on your setup screen, and <YOUR_INGEST_TOKEN> with the token shown when you issue it. The plaintext token is displayed only once at issue time; if you lose it, rotate the token to get a new one.

4. Distribute the settings (two options)

There are two ways to distribute the snippet. If your organization uses Claude Code on a Claude Team / Enterprise plan (signing in via claude.ai), option A is the simplest: paste it once in the admin console and it reaches everyone. Use option B if you manage devices with MDM, or in environments where option A is unavailable (for example, third-party providers such as Amazon Bedrock or Google Cloud). The distributed content (the env block) is identical either way.

Option A: Distribute from the Claude Team / Enterprise admin console

On Claude Team / Enterprise plans, an administrator registers the settings JSON in claude.ai, and it is delivered automatically to every member's Claude Code via Anthropic's servers (server-managed settings). No MDM or per-machine file distribution is needed.

  1. Sign in to claude.ai with an Owner or Primary Owner account and open Admin Settings → Claude Code → Managed settings. Other roles cannot view or edit this page.
  2. Paste the snippet (JSON in the same format as settings.json) into the editor, replace the ingest token with your real value, and save.
  3. Members' Claude Code receives the settings on the next startup or through the hourly automatic refresh. Telemetry settings require a full restart of Claude Code to take effect, so ask members to restart.
  4. Depending on the contents, members may see a managed-settings approval dialog at startup. Ask them to review and approve it.

Server-managed settings apply uniformly to the whole organization and are delivered when members authenticate with an organization account (claude.ai sign-in or an organization API key). They are not delivered when using third-party providers such as Amazon Bedrock, Google Cloud, or Microsoft Foundry. Also, while server-managed settings deliver any keys, managed-settings.json on the machine is ignored — take care when combining both options.

Option B: Place managed-settings.json on each machine

Save the snippet as managed-settings.json and put it at the OS-level managed settings path on each machine, then distribute it across your organization with your usual device management tooling. Settings at this path take precedence and cannot be overridden by individual users.

  • macOS: /Library/Application Support/ClaudeCode/managed-settings.json
  • Linux: /etc/claude-code/managed-settings.json
  • Windows: C:\Program Files\ClaudeCode\managed-settings.json

Distributing the file to employee machines is the responsibility of your organization's administrators. The old Windows path (C:\ProgramData\ClaudeCode) is no longer supported since Claude Code v2.1.75.

5. Confirm the connection

On a machine that has received the settings, run claude and use it for a few minutes. Telemetry is exported in the background. Return to the setup screen; once data arrives, the status changes to connected, usually within about five minutes.

The setup screen once connected, showing the last-received time and a link to the dashboard
Once telemetry arrives, the setup screen switches to "Connected" (demo screen).

If the status stays on waiting, double-check that the settings have arrived (for option A, restart Claude Code and sign in with an organization account; for option B, verify the file path) and that the endpoint and token were filled in correctly.

6. Enable content capture (optional)

Content capture records the text of prompts, responses, and tool input and output. All four categories are off by default; your organization opts in per category. When you enable a category on the setup screen, the snippet gains the matching Claude Code logging settings, so you must update the distributed settings (the JSON in the admin console, or managed-settings.json) for the change to take effect. Note that enabling content capture requires the Pro plan or above (this includes the trial period).

Enabling content capture, notifying employees, and obtaining any required consent are the responsibility of your organization. See the Privacy Policy for exactly what is recorded. Privacy Policy

For how to decide the scope, the audience, retention, and employee notification, see: How to Track, Audit, and Govern Claude Code Costs Across Your Organization