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 statusThe status output includes the reason when telemetry is disabled.
To turn telemetry back on:
chargebee telemetry enableTo inspect recorded events waiting to be sent:
chargebee telemetry status --pendingConditions that disable CLI telemetry
The CLI records no events and generates no install ID when any of these conditions applies:
| Condition | Detail |
|---|---|
DO_NOT_TRACK is set | Any value except empty, 0, or false |
CHARGEBEE_CLI_TELEMETRY | Set to 0, false, or off |
| Running in CI | Detected from the environment |
| The configuration directory is not writable | For 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.
| Field | When | Description |
|---|---|---|
client | Always | CHARGEBEE_CLI, which identifies the source of the event |
visitor_id | Always | Random install ID. Not derived from your account, user, or machine |
site_name | Always | Site selected by --use-profile, CHARGEBEE_SITE + CHARGEBEE_API_KEY, or the active profile; otherwise unconfigured |
cli_version | Always | Installed CLI version |
name | Always | Command path, such as customer list. Arguments are not included |
timestamp | Always | When the event was recorded |
os, arch, rt | Always | Operating system, architecture, and runtime, for example darwin, arm64, node |
status | Always | Whether the command finished ok or error |
ci | Always | false, because telemetry is disabled in CI |
flags | When flags are used | Flag names only, such as data,use-profile. This field excludes their values |
dur_ms | Non-interactive commands | Duration in milliseconds. Not recorded for interactive commands or listen |
err_type | Errors | Coarse category such as api_404. Messages and stack traces are never recorded |
pcv | When available | Product Catalog version of the configured site |
code_lang | Code generation | A recognized language selected with --code-sample. Node.js aliases are recorded as js; unknown values and list are omitted |
agent | When detected | Agent runtime, such as cursor or claude-code |
listen_phase | chargebee listen | Tunnel 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.