The GitHub Copilot page covers usage and cost synced from GitHub. This page covers the per-machine Plugin, which adds conversation-level telemetry. Run both: the plugin for per-developer activity, GitHub for seat and usage spend.
What’s tracked
Copilot Chat emits OTLP logs and traces. Weave stores:- Session activity — session start, duration, model, git repository/branch/commit, and final status
- Prompts — prompt submissions and (when content capture is on) prompt text for activity classification
- Agent output — assistant replies, reasoning, and user feedback ratings (content follows your org policy)
- Tool calls — tool name, type, success, duration, model, and (when allowed) tool input
- File edits — relative path, language, lines added/removed, and whether the edit was accepted
- Subagents — subagent start/stop, status, duration, and tool-call counts
- LLM calls — per-call model plus input, output, cache-read, cache-creation, and reasoning tokens
- Install health — members appear under People we’re receiving data from once Chat telemetry arrives (there is no Weave hook installer that pings on setup)
What it unlocks
- No GitHub org-admin requirement — GitHub usage APIs need Copilot Business/Enterprise and App permissions; the plugin reports from each developer’s Copilot Chat
- Per-developer, per-session granularity — attribute activity to individual machines and GitHub emails
- File- and tool-level detail — accepted/rejected edits, line counts, and tool calls the GitHub usage API does not expose
- AI skills — conversation scoring needs the plugin’s session-level prompts, agent messages, and tool calls
- Install health monitoring — People we’re receiving data from is the live check that Chat telemetry is reaching Weave; dashboards update about hourly
Prerequisites
- GitHub Copilot Chat in VS Code, or Copilot CLI, with a build that supports Copilot Chat OTEL (
github.copilot.chat.otel.*) - A Weave account. Any signed-in member can create a personal install command. An admin can also create a shared plugin API key.
- The ability to set process environment variables before launching VS Code or Copilot CLI
~/.weave hook runtime. Copilot exports OTLP itself.
Setup
1
Create a plugin API key in Weave
Go to Data → Copilot → Connect (or Configure if Copilot is already connected), select Weave Plugin Install, and click Install Weave Plugin. If you can’t open that page, open Personal plugin setup on the Data page and choose Copilot. The page is titled Copilot plugin API keys. Click Create my install command to write telemetry onto your own Weave account. Revoke my install command removes those personal commands. An admin can click Create API key for a shared key that attributes by email. Weave shows the full key once, plus env vars, settings JSON, and an install command.
2
Export environment variables before launching Copilot
This is the required path on current Copilot Chat. Process env is what delivers Weave’s modal fills the real endpoint and key.
weave.token. Do not skip it even if you also apply settings JSON.COPILOT_OTEL_CAPTURE_CONTENT follows your org’s prompt-body retention: it is false when prompt bodies are denied.For per-user attribution, append ,user.email=you@corp.com to OTEL_RESOURCE_ATTRIBUTES. Copilot also sends user.email in its OTEL resource when the GitHub account email is present; add the attribute if usage does not link to a Weave member.3
Optionally merge VS Code settings
Settings JSON is a forward-compatible extra for newer Copilot builds. Merge it into user or MDM
settings.json. Settings alone do not deliver weave.token on current marketplace Copilot Chat.4
Restart VS Code or Copilot CLI
Quit the app completely so it picks up process env, then run a Copilot Chat session and confirm activity in Weave.
wcopkey_ prefix.
Install command and hosted config
The Install command in the modal only fetches settings JSON:GET /api/copilot/config/:key). Push it via MDM together with the environment variables — a settings-only rollout does not send telemetry today. Append ?email=you@corp.com to bake user.email into resourceAttributes.
Privacy
Copilot Chat has a single content toggle (COPILOT_OTEL_CAPTURE_CONTENT / github.copilot.chat.otel.captureContent), not the per-category install flags the Claude Code, Cursor, and Codex plugins use. Weave sets that toggle from your org’s prompt bodies policy.
After ingest, Weave still applies the full telemetry content policy (prompt bodies, agent messages, tool I/O, file paths, git context) before storing rows. Admins set the org floor under Telemetry content retention; members can opt out further, but not back in past the org floor.
Fleet / MDM rollout
- Create one org plugin API key.
- Deploy the four environment variables to each developer (login item, launchd, Intune, Jamf). VS Code and Copilot CLI must inherit them — a settings-only MDM profile is not enough on current Copilot.
- Optionally merge the hosted
settings.json(curl https://app.workweave.ai/api/copilot/config/<key>) and add?email=per user for attribution. The curl one-liner is settings JSON only — it is not a hook installer, and Enhanced AI tools treat that fetch as macOS/Linux (use WSL on Windows). - On the Copilot plugin page, link installs that are not yet matched to Weave members.
Metrics enabled
Once reporting, the plugin feeds:- Conversation prompt quality — prompt-level signals from captured sessions
- AI skills — per-conversation scoring (planning, verification, ownership, and more)
Cost tracking
The plugin captures activity, tokens, and behavioral signals, not GitHub invoices. Session-level cost estimates in Weave are modeled from captured tokens and model rates. Billed Copilot spend (usage report + seats) comes from the GitHub Copilot integration. Run the plugin and the GitHub connection together.Sync frequency
Telemetry is sent in real time over OTLP as Copilot Chat emits log and trace records.Uninstall
There is no--uninstall script. Remove the COPILOT_OTEL_* / OTEL_* environment variables and the github.copilot.chat.otel.* settings, then restart VS Code or Copilot CLI. Rotate or delete the API key on the Copilot plugin API keys page where you created it if you want every reference to it gone.
Troubleshooting
No activity after install
No activity after install
- Confirm the four environment variables are set in the process that launches VS Code / Copilot CLI (GUI apps often do not inherit your shell profile)
- Fully quit and reopen VS Code (OTEL settings load on startup)
- Confirm Copilot Chat is actually used — completions-only usage without Chat OTEL will not appear here
- Verify the machine can reach the ingest endpoint (check network/firewall)
I only applied settings.json
I only applied settings.json
On current marketplace Copilot Chat,
github.copilot.chat.otel.resourceAttributes does not deliver weave.token. Export OTEL_RESOURCE_ATTRIBUTES (and the other env vars) as well.Usage is not attributed to a Weave member
Usage is not attributed to a Weave member
Append
,user.email=you@corp.com to OTEL_RESOURCE_ATTRIBUTES, or ?email=you@corp.com on the hosted config URL. Events without a resolvable email are dropped. Then link unmatched installs on the Copilot plugin page or the Members page.How do I know the setup worked?
How do I know the setup worked?
If a name is on People we’re receiving data from, the install worked. Dashboards update about hourly — that list is the live check.
Data privacy
The plugin receives whatever Copilot Chat puts on the OTEL export: session metadata, token counts, tool usage, edit stats, and — when content capture is on — prompt and agent text. Weave does not read source files beyond paths Copilot includes on edit events.Related integrations
- GitHub Copilot — GitHub usage and billing (spend, seats)
- Cursor plugin — the equivalent per-machine plugin for Cursor
- Claude Code plugin — the equivalent per-machine plugin for Claude Code
- Codex plugin — the equivalent per-machine plugin for Codex
