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):

/plugin, Installed tab
/plugin
  Installed
    Built-in
      cc-plugin-agents-md
      cc-plugin-diff
      cc-plugin-plugin-authoring
      cc-plugin-sec-default
      cc-plugin-telemetry
      cc-plugin-you-should-know

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_TRAFFIC or DO_NOT_TRACK is 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:

terminal
# turn off Claude Code's analytics, including this mod
export DISABLE_TELEMETRY=1

# or stop all nonessential traffic at once
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1

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-telemetryOpenTelemetry export
Goes toAnthropicAn endpoint you choose
DefaultOn with Anthropic's own API; off on Bedrock, Vertex and FoundryOff
Turned on or off withDISABLE_TELEMETRY, or /pluginCLAUDE_CODE_ENABLE_TELEMETRY
HoldsFeature usage, IDs, environmentYour sessions: tokens, cost, tool calls, errors
Who reads itAnthropicYou 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-telemetry is 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 /plugin or with DISABLE_TELEMETRY=1; --safe-mode and disableAllHooks do 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.