Last updated: July 5, 2026
Set Up AI Coding Insights
Setup has two parts: connect your coding agent (Claude Code or Cursor) so sessions and cost flow into Dash0, then connect GitHub to link that activity to pull requests and cycle time.
Each agent has a ready-made integration under Integrations in Dash0, with copy-paste configuration that fills in your endpoint and token. Start there, copy the configuration, and you are minutes away from first signal.
Step 1: Find Your Dash0 Endpoint and Token
Every agent needs the same two values from Dash0:
- The OTLP endpoint: The URL the agent sends telemetry to, for example
https://ingress.<region>.aws.dash0.com. - An authorization token: A token used to authenticate against your organization.
Both are available in Settings → Auth Tokens and in the integration page for your agent.
If you manage more than one dataset, decide up front which dataset should receive coding-agent telemetry, and set it consistently across every agent and developer.
Step 2: Connect Your AI Coding Agent
Choose your coding agent and follow the corresponding setup instructions. Both agents send telemetry to the same Dash0 endpoint and appear together in AI Coding Insights, grouped by model rather than by vendor.
Claude Code
Connect Claude Code to Dash0 using the Dash0 Agent Plugin.
The recommended way to instrument Claude Code is the Dash0 Agent Claude Code Plugin, which captures agent activity as OpenTelemetry traces: tool calls, LLM invocations, token usage, cost, and errors.
Install the Plugin
Install from within Claude Code:
1/plugin install dash0@claude-plugins-official
Alternatively, install it from the Dash0 marketplace:
12/plugin marketplace add dash0hq/claude-marketplace/plugin install dash0-agent-plugin@dash0
For headless or CI environments, install with the claude CLI and the user scope:
123git config --global url."https://github.com/".insteadOf "git@github.com:"claude plugin marketplace add dash0hq/claude-marketplace --scope userclaude plugin install dash0-agent-plugin@dash0 --scope user
Configure the Plugin
Create a configuration file with YAML frontmatter. Use ~/.claude/dash0-agent-plugin.local.md for a user-wide setup, or .claude/dash0-agent-plugin.local.md inside a repository for a project-specific one:
123456789---otlp_url: "https://ingress.<region>.aws.dash0.com"auth_token: "your-dash0-auth-token"dataset: "default"agent_name: "claude-code"team_name: "platform"omit_io: trueomit_user_info: false---
You can also configure the plugin through the /plugin UI (Installed → dash0 → Configure, then /reload-plugins) or through environment variables. Settings are applied in that order of precedence, with the UI taking priority, then a project-level file, then a user-level file, then environment variables:
123456export DASH0_OTLP_URL="https://ingress.<region>.aws.dash0.com"export DASH0_DATASET="default"export DASH0_AGENT_NAME="claude-code"export DASH0_TEAM_NAME="platform"export DASH0_OMIT_IO="true"export DASH0_OMIT_USER_INFO="false"
For security, the auth token cannot be set through a DASH0_ variable. Use CLAUDE_PLUGIN_OPTION_AUTH_TOKEN instead:
1export CLAUDE_PLUGIN_OPTION_AUTH_TOKEN="your-dash0-auth-token"
Configuration Options
| Option | Required | Purpose |
|---|---|---|
otlp_url | Yes | The Dash0 OTLP endpoint. |
auth_token | Yes | The Dash0 authorization token. |
dataset | No | The dataset the telemetry is routed to. |
agent_name | No | The service identifier for the agent. Defaults to claude-code. |
team_name | No | Attributes the agent's spans to a team. |
omit_io | No | Strips prompts and tool input/output from the telemetry. Defaults to true. |
omit_user_info | No | Anonymizes user identity. Defaults to false. |
With omit_io set to true (the default), the Conversation preview on the Sessions tab will not contain prompt or tool content. Set it to false if you want to read full conversations in Dash0, keeping in mind that this sends prompt and tool I/O to your dataset.
Alternative: Native Claude Code Tracing (beta)
Claude Code can also export OpenTelemetry traces on its own, configured entirely through environment variables, without the plugin. This path is in beta and captures less detail than the plugin: it omits turn-by-turn conversation history, permission prompts, subagent coordination, and context compaction events. The plugin remains the recommended option. Use native tracing only when you cannot install the plugin.
Set the following, pointing the endpoint at the OTLP value from Step 1 and using the token as a bearer header:
1234567export CLAUDE_CODE_ENABLE_TELEMETRY=1export CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1export ENABLE_BETA_TRACING_DETAILED=1export OTEL_TRACES_EXPORTER=otlpexport OTEL_EXPORTER_OTLP_PROTOCOL=http/protobufexport OTEL_EXPORTER_OTLP_ENDPOINT="https://ingress.<region>.aws.dash0.com"export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer your-dash0-auth-token"
To route to a specific dataset, add Dash0-Dataset=<name> to the headers. To attribute sessions to a developer, set OTEL_RESOURCE_ATTRIBUTES="user.name=$(git config user.name)". Add the same exports to your shell profile so they persist across sessions, and check your integration page for the exact endpoint and any protocol settings your region requires.
Native tracing identifies itself with the instrumentation scope com.anthropic.claude_code.tracing, while the plugin uses dash0-agent-plugin. Dash0 separates both into AI Coding Insights, so you can run either one.
Cursor
Connect Cursor to Dash0 using the Dash0 Agent Cursor Plugin. Follow the Dash0 Agent Cursor Plugin setup instructions.
AI Coding Insights groups by model, not by vendor. Claude Code and Cursor land in the same views, comparable on cost, adoption, and cycle time. Models the pricing catalog cannot resolve appear in an explicit unpriced bucket rather than being silently counted as zero.
Step 3: Attribute Usage to Teams
AI Coding Insights groups usage by team. Telemetry without a team is grouped under unknown, which is why an organization that has just started sending data sees most activity there.
Set a team on every agent (team_name for the Claude Code plugin, and the equivalent setting on any other agent you connect) so cost, adoption, and productivity break down cleanly per team. Apply it consistently across developers.
When you roll AI Coding Insights out to a team, point every developer at the same endpoint, token, and dataset, and store the token in a shared secret manager rather than distributing it by hand. With the Claude Code plugin, each developer's identity is read automatically from their local Git configuration (git config user.name), so per-user attribution works without extra setup as long as everyone has their Git identity configured. Keep omit_io at its default unless the team has agreed to capture prompt content.
Step 4: Connect GitHub for Productivity Metrics
The Cost, Adoption, and Tools & Skills pillars work from agent telemetry alone. The Productivity pillar, including assisted pull requests and cycle time from session to merge, needs branch and pull-request lifecycle data from your version control. Connect GitHub so Dash0 can attribute merged pull requests back to the sessions that produced them.
Follow Set Up GitHub Integration to connect it from Settings → Integrations in Dash0.
After connecting to GitHub, select the dataset in Dash0 where you want to send productivity metrics for AI Coding Insights. Until GitHub is connected and enough merged pull requests are attributed, the Productivity tab shows a prompt to connect rather than populated metrics, and cycle time can read as zero. By default, nothing is connected. Once you select a dataset, metrics begin flowing into Dash0.
Step 5: Verify the Data Arrives
-
Run a short session in your agent that issues at least one prompt.
-
Open Darkplane → AI Coding in Dash0.
-
Set the time range to cover the session, for example Last 30 minutes.
-
Confirm the session appears on the Sessions tab with a user, duration, model, and prompt count.
If sessions do not appear, see Troubleshoot AI Coding Insights.
Troubleshooting
- No sessions appear: Confirm the agent is configured with the correct endpoint and token, and that the selected time range covers the session.
- Authentication errors: Re-check the token and endpoint values against the integration page.
- Data lands in the wrong dataset: Verify the dataset value matches an existing dataset name.
- Everything is grouped under
unknown: Set a team on the agent as shown in Step 4. - Productivity tab is empty: Connect GitHub as shown in Step 5, and allow time for pull requests to merge and be attributed.
- No conversation content (Claude Code): This is expected when
omit_ioistrue. Set it tofalseto capture prompts and tool I/O.
To inspect what the Claude Code plugin sends, run it with debug output enabled:
1DASH0_DEBUG=true DASH0_DEBUG_FILE=/tmp/dash0-debug.log claude
For the full set of issues, including missing token metrics, duplicate sessions, multi-user attribution, and high data volume, see Troubleshoot AI Coding Insights.
Further Reading
- About AI Coding Insights: Overview of the feature.
- Key Concepts: How sessions, prompts, and teams map onto the data.
- Troubleshoot AI Coding Insights: Solutions for common setup and telemetry issues.

