← back to docs

Quickstart

Paste one snippet into the Claude for Teams admin console. 5 minutes, zero per-machine work.

Metric AI is built for teams using Claude for Teams or Enterprise. The canonical flow is one paste into the Claude.ai admin console — every developer’s claude install picks up the bearer at next startup. Five minutes, no per-machine setup.

This page is the fast path. For MDM rollout or single-dev fallback, see Onboarding.

1 · Generate the org token (admin)

Sign into the dashboardAdminSettingsOrg ingest tokenGenerate.

The plaintext is shown once. Copy it now along with the rendered managed-settings.json snippet (the dashboard pre-fills the bearer for you).

Need to rotate later? Same panel → Rotate. Previous token is revoked immediately. Update the snippet in the admin console with the new value.

2 · Add your team to Members (admin)

Same panel → Members → add each teammate’s email. The dashboard signs in via email-OTP; the members table is the gate.

One bearer for the whole team. Every member uses the same OTEL_EXPORTER_OTLP_HEADERS value — per-user attribution comes from user.email on every span automatically. Devs never handle the bearer directly.

3 · Push via Claude.ai admin console (admin)

Open Claude.ai → Admin Console → Claude Code → Managed settings (path may differ by plan tier). Paste:

{
  "env": {
    "CLAUDE_CODE_ENABLE_TELEMETRY": "1",
    "CLAUDE_CODE_ENHANCED_TELEMETRY_BETA": "1",
    "OTEL_METRICS_EXPORTER": "otlp",
    "OTEL_LOGS_EXPORTER": "otlp",
    "OTEL_TRACES_EXPORTER": "otlp",
    "OTEL_EXPORTER_OTLP_PROTOCOL": "http/json",
    "OTEL_EXPORTER_OTLP_ENDPOINT": "https://otlp.metric-ai.nativekloud.com",
    "OTEL_EXPORTER_OTLP_HEADERS": "Authorization=Bearer <YOUR_ORG_TOKEN>",
    "OTEL_RESOURCE_ATTRIBUTES": "deployment.environment=prod"
  }
}

Replace <YOUR_ORG_TOKEN> with the plaintext from step 1, save. Settings fetch on each claude startup.

4 · Devs do nothing

Each team member’s next claude session picks up the bearer automatically. No per-machine setup, no ~/.claude/settings.json edits, no shared secret floating in dotfiles.

Verify on a developer machine:

claude /status
# Look for "Enterprise managed settings (remote)" — that's the bearer arriving from the admin console.

5 · Watch data flow

Within 30 seconds of any developer’s next claude activity, thin spans land in D1. Within 15 minutes, daily aggregates roll into the dashboard — Usage, Quality, Activity panels light up automatically.

What this captures

  • every claude_code.interaction (one per user prompt)
  • every claude_code.llm_request (model, tokens, cache hit, cost computed at read time)
  • every claude_code.tool execution (Bash / Read / Edit / etc.)
  • every approval prompt (tool.blocked_on_user) → tool approval rate panel
  • every hook fire
  • the prompt.id resource attribute correlates an entire user turn across CLI, Agent SDK, and Cowork
  • per-user attribution via user.email — no per-user tokens needed

Don’t have Claude for Teams yet?

Two fallbacks (full details on the Onboarding page):

  • MDM (Jamf / Kandji / Intune / GPO) — push the same managed-settings.json to system paths on every developer machine. Same effect, override-proof.
  • Per-user ~/.claude/settings.json — single dev evaluating the product, or no MDM available. Each dev pastes the same org bearer manually. Override-able; move to managed settings as soon as you have more than a couple of seats.

Notes

  • Both OTLP/JSON and OTLP/protobuf are supported.
  • Agent SDK inherits CLI config automatically (TRACEPARENT propagates to subprocesses, including Bash).
  • Cowork emits separately — point its admin-portal OTLP config at the same https://otlp.metric-ai.nativekloud.com URL with the same bearer; the source-chip filter on the dashboard segments Cowork from CLI traffic.