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 or store any PII (personal identifiable information) and all metric data is only associated with and aggregated using your randomly generated ClientId. You may opt out of collection at any time.

If you would like to turn telemetry on or off, the first opportunity is a button on the initial welcome page. After this, you can find a similar button by opening the settings menu (located at the bottom of the left sidebar). It can alternatively be turned on with the /telemetry:on command and turned off with the /telemetry:off command.


Sending Telemetry

Provided that telemetry is enabled, it is sent 30 seconds after Waveterm is first booted 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, it is grouped into individual days as determined by your time zone. Any data from a previous day is marked as Uploaded so it will not need to be sent again.

Sending via Manual Command

Telemetry can be sent manually with the /telemetry:send command if telemetry is active. If telemetry is deactivated, it is still possible to manually send it, but it must be done with the /telemetry:send force=1 command instead. This does not reset the usual timer for telemetry sends.

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.

Notifying that Telemetry is Disabled

As soon as telemetry is disabled, Waveterm sends a special update that notifies us of this change. See When Telemetry is Turned Off for more info. The timer still runs in the background but no data is sent.

When Waveterm is Closed

Provided that telemetry is enabled, it will be sent when Waveterm is closed.


Telemetry Data

When telemetry is active, we collect the following data. It is stored in the sstore.TelemetryData type in the source code.

NameDescription
NumCommandsThe number of Waveterm commands run on a given day.
ActiveMinutesThe number of minutes that the user has actively used Waveterm on a given day. This requires the terminal window to be in focus while the user is actively interacting with it.
FgMinutesThe number of minutes that Waveterm has been in the foreground on a given day. This requires the terminal window to be in focus regardless of user interaction.
OpenMinutesThe number of minutes that Waveterm has been open on a given day. This only requires that the terminal is open, even if the window is out of focus.
ClickSharedSee Deprecated Telemetry References
HistoryViewThe number of times the user has used the History command on a given day. It specifically refers to the history feature located in the sidebar that opens its own gui.
BookmarksViewThe number of times the user has used the Bookmarks command on a given day.
NumConnsThe total number of connections created on this Waveterm installation. This count includes connections that have been deleted and includes all of the various ways a user can make a connection. Unlike the other data, this always includes the total number of connections that have been created—not just the ones created each day.
NumWorkspacesThe number of workspaces open on a given day.
NumTabsThe number of existing tabs open on a given day.
NewTabThe number of new tabs opened on a given day.
NumStartupThe number of times waveterm has been started on a given day.
NumShutdownThe number of times waveterm has been shut down on a given day.
NumAIChatOpenThe number of times AI chat has been opened on a given day.
NumHistoryOpenThe number of times the user has used the CmdInput History feature. This is located in the input prompt at the bottom of the screen and opens up the history in a dedicated box above the prompt.
ReinitBashErrorsThe number of re-initialization errors that have happened in a bash shell on a given day.
ReinitZshErrorsThe number of re-initialization errors that have happened in a zsh shell on a given day.

Associated Data

In addition to the telemetry data collected, the following is also reported. It is stored in the sstore.ActivityType type in the source code.

NameDescription
DayThe date the telemetry is associated with. It does not include the time.
UploadedA boolean that indicates if the telemetry for this day is finalized. It is false during the day the telemetry is associated with, but gets set true at the first telemetry upload after that. Once it is true, the data for that particular day will not be sent up with the telemetry any more.
TzNameThe code for the timezone the user’s OS is reporting (e.g. PST, GMT, JST)
TzOffsetThe offset for the timezone the user’s OS is reporting (e.g. -08:00, +00:00, +09:00)
ClientVersionWhich version of Waveterm is installed.
ClientArchThis includes the user’s operating system (e.g. linux or darwin) and architecture (e.g. x86_64 or arm64). It does not include data for any Connections at this time.
BuildTimeThis serves as a more accurate version number that keeps track of when we built the version. It has no bearing on when that version was installed by you.
DefaultShellThis lists the shell type that Waveterm automatically detects (e.g. bash or zsh). This is a duplicate entry (also in Telemetry Metadata) that will likely be removed in the future.
OSReleaseThis lists the version of the operating system the user has installed.

Telemetry Metadata

Lastly, some data is sent along with the telemetry that describes how to classify it. It is stored in the pcloud.TelemetryInputType in the source code.

NameDescription
UserIdSee Deprecated Telemetry References
Client IdThis is an anonymous UUID created when Waveterm is first launched. It is used for telemetry and sending prompts to Open AI.
CurDayThe current day (in your time zone) when telemetry is sent. It does not include the time of day.
DefaultShellThis lists the shell type that Waveterm automatically detects. (e.g. bash or zsh)

When Telemetry is Turned Off

When a user disables telemetry, Waveterm sends a notification that their anonymous ClientId has had its telemetry disabled. This is done with the pcloud.NoTelemetryInputType type in the source code. Beyond that, no further information is sent unless telemetry is turned on again. If it is turned on again, the previous 30 days of telemetry will be sent.


Deprecated Telemetry References

NameDescription
WebShareLimitThis piece of telemetry existed for a feature from early development that was deprecated before the initial launch. While it is possible that this feature will come back in the future, there are no plans to bring it back at this time. As such, it is currently unused.
ClickSharedThe number of times the user has used the Shared command on a given day. While the command still exists, it does not actually do anything, so it is marked as deprecated.
UserIdThis is an anonymous UUID created when Waveterm is first launched. It is still sent along with the ClientId when sending regular telemetry messages, but is not used when telemetry is turned off. It as marked as deprecated since it is not used and will be removed from the code in a future update.

A Note on IP Addresses

Telemetry is uploaded via https, which means your IP address is known to the telemetry server. We do not store your IP address in our telemetry table and do not associate it with your ClientId.


Previously Collected Telemetry Data

While we believe the data we collect with telemetry is fairly minimal, we cannot make that decision for every user. If you ever change your mind about what has been collected previously, you may request that your data be deleted by emailing us at support@waveterm.dev. If you do, we will need your ClientId to remove it.


Privacy Policy

For a summary of the above, you can take a look at our Privacy Policy.