dash0 — Claude Code plugin: OpenTelemetry traces for agent sessions
Turns Claude sessions into OpenTelemetry traces — prompts, tool calls, token spend — and ships them to Dash0 or your own backend.
/plugin install dash0@claude-plugins-official
/plugin marketplace add anthropics/claude-plugins-officialWhat dash0 does
This plugin wires a coding agent into Dash0 so you can see how it actually works. Prompts and responses, tool and MCP calls, sub-agent activity and token consumption all leave the session as OpenTelemetry traces. Follow one session turn by turn, check what each turn cost, spot where the agent stalled, and line up agent activity with the systems it touched.
Under the hood there is one shared Go pipeline plus a per-runtime surface. For Claude that means claude-on-event.sh, hook registration in hooks.json, slash commands, a configure skill and diagnostic scripts. Telemetry goes to Dash0 or to any OpenTelemetry-compatible backend; setup and configuration live in the Dash0 docs for AI SDLC Insights.
On Windows, Claude additionally needs Git for Windows, because hook commands run through Git Bash there while other runtimes use a PowerShell bootstrap. macOS, Linux and Windows are all supported, on amd64 or arm64.
What it helps with
- walk through a session turn by turn
- see what each turn cost in tokens
- find where the agent got stuck
- inspect MCP and sub-agent calls
- connect agent activity to the systems it touched
Example prompts for the agent
- Show me the trace of my last Claude session in Dash0
- How many tokens did each turn of this session use?
- Set up telemetry export to Dash0
How to install dash0
Plugin marketplace
/plugin install dash0@claude-plugins-official/plugin marketplace add anthropics/claude-plugins-officialStep by step, with commands for each platform: Claude Code plugins: marketplaces, installing, and building your own
Questions about dash0
How do I install dash0 in Claude Code?
Add the marketplace first: /plugin marketplace add anthropics/claude-plugins-official, then install the plugin: /plugin install dash0@claude-plugins-official.
What does dash0 do?
It records prompts and responses, tool and MCP calls, sub-agent activity and token usage as OpenTelemetry traces and sends them to Dash0 or another compatible backend.
What does dash0 need on Windows?
Claude runs hook commands through Git Bash, so Git for Windows has to be installed. Other runtimes use a PowerShell bootstrap instead.
Source text
SKILL.md · Apache-2.0
# Dash0 Agent Plugin Connect your coding agent to [Dash0](https://dash0.com) for deep insight into how it's used — prompts and responses, tool calls, MCP calls, sub-agent activity, and token consumption — emitted as OpenTelemetry traces. Trace through a session, see what each turn cost, find where the agent got stuck, and join agent activity with the systems it touches. ## Setup Check out our documentation for setting up and configuring the Dash0 Agent Plugin: [Set Up AI SDLC Insights](https://www.dash0.com/docs/dash0/darkplane/insights/setup) ## Supported runtimes - **Claude Code** — installation, configuration, and usage in [`.claude-plugin/README.md`](./.claude-plugin/README.md). - **Cursor** — installation, configuration, and usage in [`.cursor-plugin/README.md`](./.cursor-plugin/README.md). - **OpenAI Codex** — installation, configuration, and usage in [`.codex-plugin/README.md`](./.codex-plugin/README.md). - **GitHub Copilot CLI** — installation, configuration, and usage in [`.github/plugin/README.md`](./.github/plugin/README.md). - **OpenCode V2** — installation, configuration, and usage in [`opencode-v2/README.md`](./opencode-v2/README.md). - **GitHub Copilot app** — installation, configuration, and usage in [`copilot-app/README.md`](./copilot-app/README.md). All runtimes run on macOS, Linux, and Windows, on `amd64` or `arm64`. On Windows, Claude Code also needs [Git for Windows](https://gitforwindows.org/): it runs hook commands through Git Bash, where the other runtimes use a PowerShell bootstrap. ## Repository layout This repo ships one shared Go pipeline (`cmd/`, `internal/`) and runtime-specific plugin surfaces. The rule: **`<runtime>/` holds everything shipped to that runtime**, including its `<runtime>-on-event.sh` bootstrap wrapper. | Path | Runtime | Purpose | |---|---|---| | `claude/` (`claude-on-event.sh`, `hooks.json`, `commands/`, `skills/`, `tools/`), `.claude-plugin/` | Claude Code | Bootstrap wrapper, hook registration, slash commands, configure skill, diagnostic scripts, manifest | | `cursor/` (`cursor-on-event.sh`, `hooks.json`, `skills/`), `.cursor-plugin/`, `install-cursor.sh` | Cursor | Bootstrap wrapper, hook registration, configure skill, manifest, installer | | `codex/` (`codex-on-event.sh`, `hooks.json`), `.codex-plugin/`, `.agents/plugins/marketplace.json`, `install-codex.sh` | OpenAI Codex | Bootstrap wrapper, hook registration, manifest, self-hosted Codex marketplace, installer. Installed via marketplace (`codex plugin add`) or the installer (hooks written to `~/.codex/config.toml`). `.agents/plugins/` is Codex-only — Claude reads `.claude-plugin/`, Cursor its own dir | | `copilot/` (`copilot-on-event.sh`, `plugin.json`, `hooks.json`, `skills/`), `.github/plugin/marketplace.json` | GitHub Copilot CLI | Self-contained plugin package (bootstrap wrapper, manifest, camelCase hooks, configure skill) + self-hosted Copilot marketplace listing it. Installed via marketplace (`copilot plugin install dash0-agent-plugin@dash0`) or the `:copilot` subpath. `.github/plugin/` is Copilot-only | | `opencode-v2/` (`index.js`, bootstraps, `skills/`, npm metadata) | OpenCode V2 | V2 `Plugin.define` package, configure skill and persistent event-stream consumer. Installed with `opencode plugin add @dash0/agent-plugin-opencode-v2` (npm, published by the release workflow) or from a cloned path | | `copilot-app/` (`extension.mjs`, `copilot-app-on-event.sh`, `skills/`) | GitHub Copilot app | Session extension (no manifest) that turns the app's session events into one binary call per turn, plus bootstrap wrapper and configure skill. Installed with `install_extension` pointed at this folder | The dotted directories are fixed by each agent's plugin discovery and cannot move. Keeping every other runtime asset under `claude/`, `cursor/`, `codex/`, `copilot/`, `opencode-v2/`, and `copilot-app/` stops one marketplace from auto-discovering another runtime's components. `scripts/` is repo tooling only (release, version checks, the Docker test harness) — nothing there is shipped to a user. ## Contributing Start with [DEVELOPMENT.md](DEVELOPMENT.md) for coding conventions, verification commands and local runtime development. [ARCHITECTURE.md](ARCHITECTURE.md) explains event flow, package ownership and telemetry contracts. [AGENTS.md](AGENTS.md) provides the short version for coding agents. ## Releasing **Actions → Release.** Pick `patch`, `minor` or `major`; the workflow bumps every file that pins a version, builds, verifies, publishes, and moves `main` last. One button, no PR. `dry_run` builds and checks without publishing anything. Full detail in [DEVELOPMENT.md](./DEVELOPMENT.md#releasing). ## License Apache-2.0 — see [LICENSE](LICENSE).
© Dash0 · Apache-2.0 · dash0hq/dash0-agent-plugin