GitHub CLI now collects pseudoanonymous telemetry

Published: (April 22, 2026 at 07:58 AM EDT)
3 min read

Source: Hacker News

Telemetry

GitHub CLI sends pseudonymous telemetry to help us improve the product. We want you to understand what is being sent and why.

Why we collect telemetry

As agentic adoption of GitHub CLI grows, our team needs visibility into how features are being used in practice. We use this data to:

  • Prioritize our work
  • Evaluate whether features are meeting real user needs

For example, when we ship a new subcommand, we want to understand whether anyone is using it and how. If adoption is low, we know we need to revisit the feature’s discoverability or design. If a subcommand sees high usage with certain flags, that tells us where to invest in a better experience.

Reviewing telemetry

GitHub CLI is open source; you can review the telemetry implementation in the cli/cli repository. If you want to see exactly what would be sent without actually sending it, enable logging mode using either an environment variable or a configuration option.

Environment variable

export GH_TELEMETRY=log

CLI config

gh config set telemetry log

In logging mode, the JSON payload that would normally be sent is printed to stderr instead. This lets you inspect every field before deciding whether to keep telemetry enabled, for example:

GH_TELEMETRY=log gh repo list --archived

The command prints something like:

Telemetry payload:
{
  "events": [
    {
      "type": "command_invocation",
      "dimensions": {
        "agent": "",
        "architecture": "arm64",
        "command": "gh repo list",
        "device_id": "1e9a73a6-c8bd-4e1e-be02-78f4b11de4e1",
        "flags": "archived",
        "invocation_id": "eda780f5-27f9-433c-a7ae-7a033361e572",
        "is_tty": "true",
        "os": "darwin",
        "timestamp": "2026-04-16T14:55:13.418Z",
        "version": "2.91.0"
      }
    }
  ]
}

Note: This command can only log telemetry for the exact command and context in which it ran. Changing environment variables, authenticated accounts, or other factors may change the events and dimensions included in the payload.

How to opt out

You can opt out of telemetry using either an environment variable or a configuration option.

Environment variables

export GH_TELEMETRY=false

Any falsy value works: 0, false, disabled, or an empty string. You can also use the DO_NOT_TRACK convention:

export DO_NOT_TRACK=true

CLI config

gh config set telemetry disabled

Note: Environment variables take precedence over the config value.

Where data is sent

Telemetry events are sent to GitHub’s internal analytics infrastructure. For more information about how GitHub handles your data, see the GitHub General Privacy Statement.

Additional information

  • GitHub CLI allows you to add features by installing GitHub and third‑party extensions, including agents. These extensions may collect their own usage data and are not controlled by opting out. Consult each extension’s documentation for details on its telemetry reporting and how to disable it.
  • This page describes client‑side data collection for the GitHub CLI (gh). It does not apply to GitHub Copilot or the Copilot CLI, which handle data collection separately. For information on the Copilot CLI, see:
0 views
Back to Blog

Related posts

Read more »

GitHub CLI: Opt-out usage telemetry

With the release of v2.91.0https://github.com/cli/cli/releases/tag/v2.91.0, GitHub CLI sends pseudonymous usage telemetry to help us improve the product. We wan...