Hover/Tag

Usage data

What optional usage data Tag collects, and how to turn it off.

Tag can share a little anonymous usage data, such as whether setup finished, to help us make installing and running Tag more reliable. You can turn it off at any time, and it never includes your prompts, Slack messages, agent output, Tag or workspace names, paths, logs, credentials, or configuration values.

Your choice

The first time you use Tag, it turns usage data on and tells you with one short note: "Tag shares anonymous usage data to improve setup and reliability." In the app, the note appears at the end of setup, or on Home if you skip setup, and goes away when you move to another screen. Learn more opens Settings at Privacy, where you can turn it off.

Home with the note: Tag shares anonymous usage data to improve setup and reliability, and Learn more

To change your mind later, open Settings → General and turn Share usage data on or off. It's under Privacy. In the terminal:

tag telemetry status
tag telemetry on
tag telemetry off

One choice covers the app, the tag command, and every Tag on this computer. If you turned usage data off in an earlier version, Tag keeps it off.

How the choice works

Tag contains an optional, privacy-bounded telemetry client that helps Klovr understand whether people can install, configure, and operate Tag. The tag command and the desktop app share it: one preference, one installation identifier, and one fixed list of events. Approved release builds use the dedicated destination and collection boundary described on this page. Source checkouts have no telemetry destination unless they are packaged by the release workflow.

At the first interactive run, Tag saves an installation-wide enabled preference and shows a one-line note, in the terminal or in the app, that says how to turn it off. Non-interactive runs and runs with telemetry disabled don't change the setting, and a saved opt-out is never overridden. Turning telemetry off saves a disabled preference, deletes the local pseudonymous identifier and queued events, and sends no opt-out event. Non-interactive runs do not choose on the operator's behalf.

Set TAG_TELEMETRY=off before running Tag for an immediate, process-only hard stop. While this override is present, Tag creates no telemetry files and makes no telemetry network requests. The app's Share usage data setting then says it's off because TAG_TELEMETRY=off is set.

The saved preference applies to every Tag in the same installation and lives at $TAG_HOME/config/telemetry.json, outside versioned release directories.

Events and properties

Tag can emit only the following fixed events and scalar properties. The client has no general-purpose event API for prompts, arbitrary labels, or application data.

EventProperties
tui_startedTag version, OS family, CPU architecture, and whether the invocation is interactive
setup_startedSetup entry point: setup, add, or test
setup_step_completedFixed terminal setup step (notice, Slack, app, channels, or finish) and coarse elapsed-time bucket
setup_abandonedLast fixed setup step and coarse elapsed-time bucket
setup_completedCoarse elapsed-time bucket and backend kind: Codex or Claude
command_completedFixed command group, outcome, and coarse duration bucket
command_failedFixed command group and stable error category
telemetry_preference_changedThe value enabled; disabling sends no event
app_openedApp and Tag versions, OS family, and CPU architecture
app_screen_viewedFixed screen: Home, Tag details, Settings, AI settings, or setup
app_setup_startedSetup entry point: first Tag, another Tag, or finishing an earlier setup
app_setup_step_completedFixed setup step (Your Tag, AI, workspace, existing app, create, or channels) and coarse elapsed-time bucket
app_setup_abandonedLast fixed setup step, why it ended (cancelled, failed, or left for AI settings), and coarse elapsed-time bucket
app_setup_completedSetup entry point and coarse elapsed-time bucket
app_update_finishedWhether the update succeeded or failed
app_channel_switchedRelease channel: stable, beta, or alpha (the app does not offer edge)

The app does not send events itself. It asks the installed tag command to record one of the app_ events above, and the command checks every event name, field, and value against the same closed lists before anything is queued. Setup events come from the position on the app's step track, never from the answers. When the app runs the tag command for its own work, such as refreshing the list of Tags, the command records no tui_started, setup_*, or command_* events, so the app's background checks are not counted as terminal use. The app records nothing before it has installed the tag command and shown the notice.

Duration values are reduced to <5s, 5–30s, 30–120s, or >120s. Error categories are fixed values selected by Tag; exception messages and stack traces are not collected.

Tag never includes Slack messages, channel or workspace identifiers, Tag or workspace names, prompts, agent input or output, retrieval queries, file contents, source code, paths, host names, account identities, email addresses, command arguments, configuration values, environment variables, logs, credentials, tokens, or raw error text in an event.

Identifier and local queue

After telemetry is enabled, Tag creates a random installation UUID. It does not identify a person or create a PostHog person profile. tag telemetry off deletes this identifier.

Events briefly enter a local queue containing at most 64 events. Queued events expire after 24 hours. Delivery happens in a detached background process; network failures are silent and cannot change command output or exit status. The queue is deleted when telemetry is disabled.

Destination and retention

Release builds send events directly to a dedicated Tag project in PostHog EU Cloud at https://eu.i.posthog.com, for both the CLI and the app. They are not mixed with Hover website or documentation analytics. Tag disables PostHog person profiles and IP geolocation and does not use autocapture, session recording, surveys, feature flags, or error and log capture.

The Tag project uses PostHog's Free plan, which retains event data for one year. Tag does not copy telemetry into another analytics project or maintain a separate telemetry export.

For privacy questions, access or deletion requests, contact [email protected]. The broader Hover website privacy notice is available at hover.team/privacy.

Last updated

On this page