Analytics
We track analytics for our CLI's usage through a self-hosted telemetry service at https://cloud.wendy.sh/v1/telemetry/events. This is opt-out, or through WENDYANALYTICS=false in yo
We track analytics for our CLI's usage through a self-hosted telemetry service at https://cloud.wendy.sh/v1/telemetry/events. This is opt-out, or through WENDY_ANALYTICS=false in your environment.
How it works
When analytics are enabled, each tracked event is serialised to JSON and sent via an HTTP POST request in a background goroutine. The CLI waits for any in-flight request to complete before exiting so no events are silently dropped.
Endpoint
Events are posted to:
https://cloud.wendy.sh/v1/telemetry/eventsEach request has a 5-second timeout. Network errors are silently discarded — telemetry is strictly best-effort and never blocks normal CLI operation.
Overriding the endpoint
For development and testing the telemetry host can be overridden with an environment variable:
WENDY_TELEMETRY_HOST=http://localhost:8082 wendy <command>Event payload
Every event is an anonymous JSON object. The fields sent are:
| Field | Type | Description |
|---|---|---|
anonymous_id | string | Stable random UUID stored in ~/.wendy/ — never tied to a real identity |
event | string | Event name, e.g. "command_run" |
command_name | string | Canonical command path, e.g. "wendy device wifi connect" |
command_root | string | Top-level command token |
duration_ms | integer | Command duration in milliseconds |
success | boolean | Whether the command completed without error |
error_class | string | Bounded enum describing the error category (never free-form error text) |
cli_version | string | CLI version string |
os | string | Operating system (GOOS) |
arch | string | CPU architecture (GOARCH) |
is_dev_build | boolean | true when cli_version == "dev" |
Privacy note: Flag values, positional arguments, file paths, hostnames, and error message text are never included in telemetry payloads. Only the fields listed above are sent.
Opting out
Analytics can be disabled in several ways:
- Environment variable — takes precedence over everything else:
WENDY_ANALYTICS=false wendy <command> - CLI command:
wendy analytics disable - CI environments — analytics are hard-disabled automatically when any standard CI environment variable is detected (e.g.
CI=true). There is no opt-in escape hatch in CI.