Dash0 acquires Polar Signals
Monitor GitHub Copilot CLI with cost visibility, adoption tracking, and productivity signals across your engineering teams — without changing how developers work.
GitHub Copilot CLI is GitHub's agentic coding tool that runs in your terminal. With the Dash0 agent plugin it emits OpenTelemetry traces about every session — token usage, cost, the model behind each turn, tool calls, and the pull requests it helps ship. Sending that telemetry to Dash0 gives engineering leaders and platform teams a single place to understand how Copilot CLI is adopted, what it costs, and the impact it has — without changing how developers work.
GitHub Copilot CLI ships native OpenTelemetry that carries the token, cost, model, and tool-execution detail of each session. The Dash0 agent plugin turns that into canonical per-turn spans and exports them to Dash0, where the AI Coding section reports what Copilot CLI costs and how widely your teams use it.
amd64 or arm64.Add the Dash0 marketplace, install the plugin from it, and restart copilot so the hooks load at startup:
Run the configure command inside Copilot CLI:
When prompted, provide your Dash0 connection details:
{{endpoint_otlp_http}}{{token}}{{dataset}}This writes your configuration to ~/.copilot/dash0-agent-plugin.local.md
(%USERPROFILE%\.copilot\dash0-agent-plugin.local.md on Windows), or to .copilot/dash0-agent-plugin.local.md in the
current workspace if you choose project scope. It also installs a launch wrapper that enables Copilot's native
OpenTelemetry into a per-session file, which is where the per-turn token, cost, and model usage comes from. The skill
asks which shell you launch copilot from and installs the matching wrapper:
copilot function in ~/.bashrc or ~/.zshrc.copilot function in the file $PROFILE names.copilot.cmd wrapper in a PATH directory that comes before the npm global bin (%APPDATA%\npm).Open a new shell afterward so the wrapper takes effect.
For more information on choosing a dataset, see the dataset documentation.
Copilot CLI attaches the authenticated user to every span, so cost and adoption break down by user and model out of the
box. To also break down by team or department, provide a team name when you run /dash0-configure. It goes into the
plugin config and is attached to every span.
copilot, then issue any command.A copilot launched from a shell without the launch wrapper still emits spans, but without the per-turn usage detail.
On Windows, check that the wrapper is in place with Get-Command copilot -CommandType Function in PowerShell, or
where copilot.cmd in cmd.exe. A PowerShell profile that fails to parse loads nothing at all, which leaves the
function undefined and the spans without usage data.