Skip to main content

Claude Code Telemetry Integration

How Keypup receives the Claude Code usage of your Claude Team or Claude Enterprise organization

Written by Tom Williams

For Claude Team and Claude Enterprise organizations only. If your developers use a Claude Console organization (platform.claude.com) with API keys, connect the Claude Platform integration instead.

Our Claude Code Telemetry integration receives the usage metrics Claude Code sends: sessions, lines of code, commits, pull requests, accepted and rejected edits, and tokens per model, for each developer of your organization. This usage is exposed on Keypup as the AI Usage dataset, and can be reported next to your pull request and issue metrics, or compared with GitHub Copilot, OpenAI, and other AI tools.

We do not receive your code or your prompts. The settings Keypup gives you turn on Claude Code's usage metrics only - counts of sessions, lines, commits, edits and tokens. Claude Code's events and traces, which can carry prompts and tool details, stay off.

How it works

Anthropic offers no usage API for Claude Team, and Keypup does not read Claude Enterprise's analytics API. Claude Code itself, however, can send its usage metrics to any address using the OpenTelemetry standard. Keypup gives you that address, and your organization's managed settings tell every Claude Code session to use it:

  • When you connect the integration, you enter your Claude organization ID, and Keypup gives you a block of settings.

  • An Owner of your organization pastes it into Managed settings in your Claude Code Organization Settings on claude.ai.

  • Each developer relaunches Claude Code, which then sends its usage to Keypup every minute.

Usage is recorded from the day the settings are pasted, with no earlier history. Anthropic keeps no usage Keypup can read back, so connect early: Keypup records your usage even before you enable the project, and imports all of it when you do.

Which Claude plans are supported?

What decides whether a developer's usage is reported is how they signed in to Claude Code.

  • Claude Team and Claude Enterprise - supported. Claude Code sessions signed in with a seat of your organization receive the managed settings and report their usage.

  • Claude Console organization (pay-as-you-go API, platform.claude.com) - use the Claude Platform integration, which reads Anthropic's usage reports and includes a year of history.

  • Personal plans (Free, Pro, Max) - not supported. A developer signed in to Claude Code with a personal account is not counted, even on a machine that carries your settings.

Usage through Amazon Bedrock, Google Cloud Vertex AI or Microsoft Foundry, and Claude Code run with an API key, is not counted either: those sessions are not signed in to your organization.

How to connect Claude Code Telemetry

You need the ID of your Claude organization, and an Owner of the organization to paste the settings on claude.ai.

  1. Find your Claude organization ID. See Claude Code Telemetry - Find your Claude organization ID.

  2. In Keypup, go to Settings > App management and click Connect on Claude Code Telemetry.

  3. Enter your Claude organization ID. Keypup shows a block of managed settings.

  4. Copy the block, then click Create Receiver.

  5. On claude.ai, open your Claude Code Organization Settings and paste the block into Managed settings. If the field already holds settings, add the lines of Keypup's env block to your existing env block rather than replacing it.
    ​

    ​

  6. Ask your developers to relaunch Claude Code. Settings apply when Claude Code starts, so a session left open keeps running without them.

  7. In Keypup, enable the project Keypup created for your organization, named Claude Code (Org <the start of your organization ID>).

Keypup shows the block once. It contains a token that is not stored anywhere else in readable form. You can always read it back from your managed settings on claude.ai. If you lose it, reconnect Claude Code Telemetry on Keypup to get a new block and paste it in place of the old one, which then stops working. Your recorded usage is kept.

Devices managed by MDM. If you deploy Claude Code settings to your developers' machines as a managed-settings.json file, you can put the same env block there instead. Nothing changes on Keypup's side.

Organizations with their own OpenTelemetry collector. If your Claude Code sessions already send their metrics to your own collector, add Keypup as a second exporter there rather than replacing yours. Use the endpoint and the authorization header from Keypup's block, and the JSON encoding:

exporters:
otlphttp/keypup:
metrics_endpoint: <OTEL_EXPORTER_OTLP_METRICS_ENDPOINT from the block>
encoding: json
headers:
Authorization: "Bearer <the token from the block>"

Claude Code must still send cumulative values: keep OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=cumulative in your settings, and do not convert the metrics to deltas in the collector pipeline that feeds Keypup.

What data do we collect?

Per developer, identified by their email address, and per UTC day:

  • sessions started or resumed;

  • lines of code added and deleted, commits and pull requests created by Claude Code;

  • edits accepted and rejected;

  • input, output and cached tokens per model, with whether the model ran in fast mode or with the 1M token context window.

Claude Code also reports an estimated cost and the time developers were active. Keypup records both but does not show them yet.

Claude Code attributes no usage to a repository, so the repository and language fields of the AI Usage dataset stay empty, and it reports no count of suggestions shown, requests or prompts. For the full field coverage, see AI Usage provider coverage.

How often do we refresh data?

Claude Code sends its usage every minute. Keypup imports what it has received every 20 minutes, so usage shows in your insights within about 20 minutes.

If Keypup cannot receive usage for a while, Claude Code keeps counting and the next export it delivers carries everything since the last one. That usage is then counted on the day it was received.

What the figures will and will not show

  • Only sessions that received the settings. A developer who has not relaunched Claude Code since the settings were pasted, or who signs in with a personal account or an API key, is not counted. Claude.ai chat and Cowork are not Claude Code and are not counted either.

  • No split between the terminal and IDEs. Claude Code does not report whether it runs in VS Code, JetBrains or a terminal, so all three appear as the command line surface (CLI). The Code tab of Claude Desktop appears as DESKTOP_APP, and Claude Code on the web as CLOUD_AGENT, when they report.

  • Accepted edits include automatic approvals. An edit accepted by the developer's permission mode, without a prompt, counts as accepted. In auto-accept modes, the acceptance rate is close to 100%.

  • Figures can be lower than the analytics dashboard on claude.ai, which Anthropic computes from its own data, including sessions that never received your settings.

  • Figures are reported by Claude Code itself. They suit adoption and usage analytics, not billing.

  • A developer can be counted twice. If you connect both Claude Platform and Claude Code Telemetry, a developer using both a Console API key and a Team or Enterprise seat appears in each.

How long do we keep the data?

Keypup keeps the usage it receives for as long as the integration is connected, whether the project is enabled or not.

Deleting the integration deletes its history for good. Anthropic keeps no copy Keypup can read back, so a history deleted cannot be imported again. To pause the import, disable the project instead: usage keeps being recorded, and is imported when you enable it again.

Troubleshooting

No usage shows up. Check, in this order, that the project is enabled in Keypup, that the block is saved in your managed settings on claude.ai, and that developers have relaunched Claude Code since. Then allow 20 minutes.

Some developers are missing. They are most likely signed in to Claude Code with a personal account, with an API key, or through Amazon Bedrock, Google Cloud Vertex AI, or Microsoft Foundry. Ask them to sign in with their seat of your organization (/login in Claude Code) and relaunch it.

No usage shows up for anyone, though the settings are pasted. The organization ID entered on Keypup may not be the one your developers sign in to: Keypup only keeps the usage of the organization it was connected for. Check the ID (see Find your Claude organization ID) and contact us via chat if it differs.

You lost the settings block, or think the token was exposed. Reconnect Claude Code Telemetry on Keypup to get a new block, and paste it in place of the old one. The old token stops working immediately, and your recorded usage is kept.

Contact us via chat if you have any questions.

Did this answer your question?