Telemetry

Agora CLI telemetry is limited to operational diagnostics such as command failures and local log metadata. It never includes OAuth tokens, app certificates, dotenv secrets, or project env values. Field redaction is enforced by redactTelemetryFields in internal/cli/telemetry.go, which matches the token | secret | password | api[_-]?key | authorization key pattern (case-insensitive) and replaces the value with the literal [REDACTED].

Status (current release): the on/off contract below is fully wired. The transport (Sentry SDK) is not yet linked into the binary, so all telemetry calls are no-ops at runtime. The next release will wire Sentry per docs/proposals/telemetry-sentry-wireup.md; the surface and field schema will not change.

Inspect or change the setting

Telemetry is enabled by default in the local config.

agora telemetry status
agora telemetry disable
agora telemetry enable

For scripts, prefer JSON:

agora telemetry disable --json

Opt-out signals

The CLI honors all of the following — any one of them disables telemetry for the current process:

Signal Notes
DO_NOT_TRACK=<any non-empty> Standard cross-tool convention. Also suppresses local file logs for that process.
AGORA_SENTRY_ENABLED=0 Hard env override. Wins over the config file.
agora telemetry disable Persists telemetryEnabled: false to the config.
agora config update --telemetry-enabled=false Equivalent to agora telemetry disable.
DO_NOT_TRACK=1 agora project list --json
AGORA_SENTRY_ENABLED=0 agora init my-app --template nextjs --json

Field schema

The wire-up plan documents the exact field set the Sentry-backed sink will send. Until then the table below is forward-looking; treat it as the specification, not the production behavior:

Field Type Example Notes
command string "project create" Stable label from agora introspect --json.
exitCode int 1 Process exit code at failure.
commitSha string "abc1234" Build-time injected.
os string "darwin/arm64" Runtime, not host-specific.
installMethod string "installer" / "npm" / "brew" From the install provenance receipt.
agentLabel string "cursor" From agent_infer.go.

Explicitly never sent:

  • OAuth tokens or session refresh tokens.
  • Agora App Certificate values.
  • Project names or App IDs (use opaque hashes if needed in the future).
  • Local file paths beyond the rotating log file path basename.

Where the config lives

agora config path

The same directory holds the rotating log file (agora-cli.log) and the project list cache used by shell completion.