Control anonymous usage data collection. Telemetry is off by default — you have to opt in. When on, only aggregate command names and error codes are sent. No project data, no secrets, no personally identifiable information.
# Check your current status
nself telemetry status
# Opt in to help improve nSelf
nself telemetry on
# Opt back out at any time
nself telemetry offnself telemetry <SUBCOMMAND>nSelf collects no telemetry by default. When you run nself telemetry on, the CLI starts sending a minimal, anonymous payload to ping.nself.org/telemetry after each command. The payload includes the command name, the exit code, the CLI version, and your operating system. Nothing in your project — no env values, no database contents, no plugin configuration — ever leaves your machine.
Your opt-in preference is saved to ~/.nself/config.yaml and persists across updates. You can change it at any time.
Print your current telemetry preference.
nself telemetry status
# Telemetry: off (default)
nself telemetry on && nself telemetry status
# Telemetry: onOpt in to anonymous usage reporting. Takes effect immediately for all subsequent commands.
nself telemetry on
# Telemetry enabled. Thank you — it helps us prioritise fixes.Opt out. Takes effect immediately. Nothing is sent after this point.
nself telemetry off
# Telemetry disabled.| Field | Example | Why |
|---|---|---|
command | nself start | Understand which commands are used most |
exit_code | 0 | Track error rates per command |
cli_version | v1.1.0 | Understand version adoption |
os | darwin/arm64 | Prioritise platform support |
NSELF_TELEMETRY=0 — force-disable telemetry for the current session, regardless of configNSELF_TELEMETRY=1 — force-enable telemetry for the current sessionThe environment variable overrides the saved config for that shell session only. It does not change the persisted preference.
Payloads are sent as POST requests to https://ping.nself.org/telemetry. The endpoint is the same ping_api that handles license validation — it is always available when the CLI runs with internet access. Telemetry sends fire-and-forget; a failure or timeout does not affect the CLI command that triggered it.