Telemetry
tl;dr
Wave Terminal collects telemetry data to help us track feature use, direct future product efforts, and generate aggregate metrics on Wave's popularity and usage. We do NOT collect personal information (PII), keystrokes, file contents, AI prompts, IP addresses, hostnames, or commands. We attach all information to an anonymous, randomly generated ClientId (UUID). You may opt out of collection at any time.
Here's a quick summary of what is collected:
- Basic App/System Info - OS, architecture, app version, update settings
- Usage Metrics - App start/shutdown, active minutes, foreground time, tab/block counts/usage
- Feature Interactions - When you create tabs, run commands, change settings, etc.
- Display Info - Monitor resolution, number of displays
- Connection Events - SSH/WSL connection attempts (but NOT hostnames/IPs)
- Wave AI Usage - Model/provider selection, token counts, request metrics, latency (but NOT prompts or responses)
- Error Reports - Crash/panic events with minimal debugging info, but no stack traces or detailed errors
Telemetry can be disabled at any time in settings. If not disabled it is sent on startup, on shutdown, and every 4-hours.
How to Disable Telemetry
Telemetry can be enabled or disabled on the initial welcome screen when Wave first starts. After setup, telemetry can be disabled by setting the telemetry:enabled key to false in Wave’s general configuration file. It can also be disabled using the CLI command wsh setconfig telemetry:enabled=false.
This document outlines the current telemetry system as of v0.11.1. As of v0.12.5, Wave Terminal no longer sends legacy telemetry. The previous telemetry documentation can be found in our Legacy Telemetry Documentation for historical reference.
Diagnostics Ping
Wave sends a small, anonymous diagnostics ping after the app has been running for a short time and at most once per day thereafter. This is used to estimate active installs and understand which versions are still in use, so we can make informed decisions about ongoing support and deprecations.
The ping includes only: your Wave version, OS/CPU arch, local date (yyyy-mm-dd, no timezone or clock time), your randomly generated anonymous client ID, and whether usage telemetry is enabled or disabled.
It does not include usage data, commands, files, or any telemetry events.
This ping is intentionally separate from telemetry so Wave can count active installs. If you'd like to disable it, set the WAVETERM_NOPING environment variable.
Sending Telemetry
Provided that telemetry is enabled, it is sent shortly after Wave is first launched and then again every 4 hours thereafter. It can also be sent in response to a few special cases listed below. When telemetry is sent, events are marked as sent to prevent duplicate transmissions.
Sending Once Telemetry is Enabled
As soon as telemetry is enabled, a telemetry update is sent regardless of how long it has been since the last send. This does not reset the usual timer for telemetry sends.
When Wave is Closed
Provided that telemetry is enabled, it will be sent when Waveterm is closed.
Event Types and Properties
Wave collects the event types and properties described in the summary above. As we add features, new events and properties may be added to track their usage.
For the complete, current list of all telemetry events and properties, see the source code: telemetrydata.go
GDPR Opt-Out Compliance
When telemetry is disabled, Wave sends a single minimal opt-out record associated with the anonymous client ID, recording that telemetry was turned off and when it occurred. This record is retained for compliance purposes. After that, no telemetry or usage data is sent.
Deleting Your Data
If you want your previously collected telemetry data deleted, email us at support (at) waveterm.dev with your ClientId and we'll remove it.
Privacy Policy
For a summary of the above, you can take a look at our Privacy Policy.