New in Chargebee: Explore Reveal and understand your payment performance end-to-end.

Telemetry

The Chargebee CLI records limited usage data to help Chargebee understand command usage and failures. Telemetry is on by default, and you can turn it off at any time.

Telemetry events include a random identifier saved by the CLI (the install ID) and the selected site name, or unconfigured. Because the site name is included, telemetry is not anonymous. Raw arguments, credentials, customer data, and error messages are excluded. Selected metadata, such as the code-sample language, is recorded as described in Recorded CLI telemetry fields.

The CLI records nothing on the run that displays the first telemetry notice. You can turn telemetry off before the next command.

Manage CLI telemetry

To turn telemetry off and check the result:

chargebee telemetry disable
chargebee telemetry status

The status output includes the reason when telemetry is disabled.

To turn telemetry back on:

chargebee telemetry enable

To inspect recorded events waiting to be sent:

chargebee telemetry status --pending

Conditions that disable CLI telemetry

The CLI records no events and generates no install ID when any of these conditions applies:

ConditionDetail
DO_NOT_TRACK is setAny value except empty, 0, or false
CHARGEBEE_CLI_TELEMETRYSet to 0, false, or off
Running in CIDetected from the environment
The configuration directory is not writableFor example, a read-only home directory or a read-only CHARGEBEE_CONFIG_DIR

Recorded CLI telemetry fields

The CLI normally records one event per command. chargebee listen can record multiple events as the tunnel opens, closes, or fails. Events are sent to Chargebee.

FieldWhenDescription
clientAlwaysCHARGEBEE_CLI, which identifies the source of the event
visitor_idAlwaysRandom install ID. Not derived from your account, user, or machine
site_nameAlwaysSite selected by --use-profile, CHARGEBEE_SITE + CHARGEBEE_API_KEY, or the active profile; otherwise unconfigured
cli_versionAlwaysInstalled CLI version
nameAlwaysCommand path, such as customer list. Arguments are not included
timestampAlwaysWhen the event was recorded
os, arch, rtAlwaysOperating system, architecture, and runtime, for example darwin, arm64, node
statusAlwaysWhether the command finished ok or error
ciAlwaysfalse, because telemetry is disabled in CI
flagsWhen flags are usedFlag names only, such as data,use-profile. This field excludes their values
dur_msNon-interactive commandsDuration in milliseconds. Not recorded for interactive commands or listen
err_typeErrorsCoarse category such as api_404. Messages and stack traces are never recorded
pcvWhen availableProduct Catalog version of the configured site
code_langCode generationA recognized language selected with --code-sample. Node.js aliases are recorded as js; unknown values and list are omitted
agentWhen detectedAgent runtime, such as cursor or claude-code
listen_phasechargebee listenTunnel state: established, closed, or error

Data excluded from CLI telemetry

  • API keys, tokens, or any other credential
  • Raw argument values and free-form flag values
  • Customer data
  • Names, email addresses, or free-form input
  • Error messages and stack traces
  • Webhook event types or payloads
  • Webhook forwarding URLs or tunnel session IDs

The CLI records registered command names and flag names. It also records the selected site and recognized code-sample language in separate fields; it does not record request parameters or resource IDs.

CLI telemetry preference storage

The CLI saves the telemetry preference and install ID in telemetry.json inside the configuration directory. The default path is ~/.chargebee/cli/telemetry.json; CHARGEBEE_CONFIG_DIR changes the directory.

The install ID is reused across commands. Deleting telemetry.json resets the telemetry preference and install ID.