cc-plugin-telemetry is a mod built into Claude Code. It sends the analytics records that Claude Code and its built-in mods log to Anthropic.1 A record holds an event name, numbers, yes or no values, IDs and details about your environment. It never holds your code or your prompts.2,3 It is on wherever Claude Code's own analytics are on, and DISABLE_TELEMETRY=1 turns it off.1
Where you saw it
Since Claude Code v2.1.287, some of Claude Code's own features are mods.4 Open /plugin and go to the Installed tab: they are listed under Built-in, each with a cc-plugin- prefix.1 Roughly like this (the names are from Anthropic's docs; your list depends on your version and organization):
Most of them do something you can see. cc-plugin-diff draws the /diff pane, and cc-plugin-you-should-know shows notes above the prompt (we explained that one in cc-plugin-you-should-know: what this Claude Code mod does). cc-plugin-telemetry draws nothing, so it is easy to wonder what it does. Its job is plumbing. Anthropic's docs describe it as sending the analytics records that Claude Code and its built-in mods log, and its README describes the methods it gives built-in mods to log their own records.1,2
Its source is public, in the mods folder of the Claude Code repository, with a README that says exactly what it does.2 Everything below comes from that README and Anthropic's docs.
What a record holds
A built-in mod logs a record in one of two ways. log queues an event, which arrives at Anthropic as a row named tengu_plugin_<event>. mark records one use of a feature as ok, sad or bad, the same way Claude Code's own feature events do, as tengu_feature_<kind>.2
Each row carries what Claude Code's own analytics rows carry:2
- IDs: an event ID, your install's device ID, your signed-in account's IDs, and the session ID
- The session: the model, the client type, the entrypoint, and whether the session is interactive
- Your environment: platform and architecture, terminal, shell, package managers and runtimes, whether you run in CI or GitHub Actions, the Linux distribution, WSL, and Claude Code's version
- Your repository: a hash of its remote, not the URL itself
Records go out in batches: a few seconds after the first one is queued, right away once a hundred are waiting, and when the session ends. They are sent with your session's own credential. If the ingest refuses a batch twice, or the session has no first-party credential, the batch is dropped.2
What it never sends
The README is strict here. Nothing free-form reaches a row. Event names and property keys must be plain snake_case words, and every value must be a number, true or false, or one item from a fixed list. An entry that breaks a rule is refused before anything is queued.2
For environment variables whose value is a secret, or names a person or a host, the mod only records whether the variable is set, never its value. Your shell is recorded by its name from a short list, not its full path.2
That matches what Anthropic's data usage page says about Claude Code's usage metrics in general: latency, reliability and usage patterns, and never your code, prompts or file paths.3
One more rule: only the plugins built into Claude Code can use it. If a mod you or your administrator installed tries to log through it, the call is refused, with a reason.2 So a third-party mod cannot quietly send its own analytics to Anthropic through this channel.
When it is off, and how to turn it off
It sends nothing wherever Claude Code's own analytics are off. That covers:2,3
DISABLE_TELEMETRY,CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICorDO_NOT_TRACKis set- you use Claude Code through Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry or a similar provider, where analytics are off by default
- you go through a cloud gateway, or a deployment with its own OAuth URL
- it is a test run
It checks these before every batch, so a session that switches to a third-party provider halfway stops sending. If it cannot read the switches at all, it sends nothing.2
To turn it off yourself, there are two ways.1 Disable it on the Installed tab of /plugin, or turn analytics off in your shell or in the env block of your settings. The docs do not say whether disabling the mod alone stops every analytics record Claude Code sends, so if you want all of it off, use the variable:
Two things to know. DISABLE_TELEMETRY and CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC also turn off feature flag checks, which can make some features, such as Remote Control, unavailable.3 And the usual ways to stop mods do not reach this one: --safe-mode, --bare and disableAllHooks leave built-in mods running, and a built-in mod cannot be uninstalled, only disabled.1
Not the same as your own OpenTelemetry
Claude Code has a second, separate telemetry path, and it is the one you control. Set CLAUDE_CODE_ENABLE_TELEMETRY=1 and point it at an OpenTelemetry endpoint, and Claude Code sends metrics, events and, in beta, traces about your sessions to that endpoint: token use, cost, tool calls, API errors.5 That data goes to you, never to Anthropic.5
| cc-plugin-telemetry | OpenTelemetry export | |
|---|---|---|
| Goes to | Anthropic | An endpoint you choose |
| Default | On with Anthropic's own API; off on Bedrock, Vertex and Foundry | Off |
| Turned on or off with | DISABLE_TELEMETRY, or /plugin | CLAUDE_CODE_ENABLE_TELEMETRY |
| Holds | Feature usage, IDs, environment | Your sessions: tokens, cost, tool calls, errors |
| Who reads it | Anthropic | You and your team |
Turning one off does not turn off the other. The mod even passes entries meant for your configured collector through untouched.2 What changed in that export this week is in Claude Code OpenTelemetry: what v2.1.300 changed.
Anthropic watches how Claude Code is used. Nobody in that picture watches your app in production. Fixter is monitoring for teams that build with coding agents: you send your logs and traces over standard OpenTelemetry, and Fixter finds the issues and bugs in your system and tells you what broke and why. You pull them into Claude Code over MCP and fix them there.
Key takeaways
cc-plugin-telemetryis a built-in Claude Code mod that sends analytics records from Claude Code and its built-in mods to Anthropic- A record holds event names, numbers, yes or no values, IDs and environment details, never code, prompts or file paths
- Only built-in plugins can use it; an installed mod is refused
- Turn it off in
/pluginor withDISABLE_TELEMETRY=1;--safe-modeanddisableAllHooksdo not stop it - It is separate from Claude Code's OpenTelemetry export, which goes to an endpoint you choose
Frequently asked questions
What is cc-plugin-telemetry in Claude Code?
It is one of the mods built into Claude Code, listed under Built-in on the Installed tab of /plugin. It sends the analytics records that Claude Code and its built-in mods log to Anthropic. It is Anthropic measuring how its own features are used. It is not something you installed, and it does not send anything to your own tools.
Does cc-plugin-telemetry send my code or prompts?
No. Its README says nothing free-form reaches a record: an event name, property keys, and values that are numbers, true or false, or a choice from a fixed list. Anthropic's data usage page says the same about Claude Code's usage metrics: they never include your code, prompts or file paths. A record does carry IDs (device, account, session), the model, details about your environment such as the OS and terminal, and a hash of the repository's remote.
How do I turn off cc-plugin-telemetry?
Either disable it on the Installed tab of /plugin, or turn Claude Code's analytics off with DISABLE_TELEMETRY=1. CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 and DO_NOT_TRACK also stop it. You cannot uninstall it, because built-in mods cannot be updated or uninstalled, and --safe-mode, --bare and disableAllHooks do not stop built-in mods.
Is cc-plugin-telemetry on when I use Bedrock or Vertex?
No. It sends nothing on a third-party provider such as Amazon Bedrock, Google Cloud's Agent Platform or Microsoft Foundry, on a cloud gateway, or on a deployment with its own OAuth URL. Claude Code's own analytics are off by default on those providers too.
Can my own mod use cc-plugin-telemetry to send analytics?
No. A gate in front of it serves only the plugins built into Claude Code. A call from a mod that you or an administrator installed is refused with a reason. For your own data, use Claude Code's OpenTelemetry export, which sends to a collector you choose.
Is cc-plugin-telemetry the same as Claude Code's OpenTelemetry export?
No. cc-plugin-telemetry sends analytics to Anthropic. The OpenTelemetry export (CLAUDE_CODE_ENABLE_TELEMETRY=1) sends metrics, events and traces about your sessions to an endpoint you configure, never to Anthropic. They are switched on and off separately.
Sources
- Claude Code docs, Mods built into Claude Code (what cc-plugin-telemetry does, where it is on, how to turn it off)
- Claude Code repository, telemetry mod README (record format, fields, batching, gate, when it sends nothing)
- Claude Code docs, Data usage: telemetry services and defaults by provider
- Claude Code release v2.1.287, October 1, 2026 (adds mods)
- Claude Code docs, Monitoring (OpenTelemetry export to your own endpoint)