Skip to content

Commit 84207fe

Browse files
authored
feat: write a separate telemetry docs (#35)
1 parent 1008ce8 commit 84207fe

File tree

3 files changed

+164
-39
lines changed

3 files changed

+164
-39
lines changed

src/content/docs/rover/config/project-config.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,4 +228,5 @@ For a complete list of all available configuration options, see the [Project Con
228228
<LinkCard title="Sandbox Configuration" href="/rover/config/sandbox-config" description="Customize the container environment with custom images and network rules" />
229229
<LinkCard title="Hooks" href="/rover/config/hooks" description="Run custom commands when tasks are merged, pushed, or completed" />
230230
<LinkCard title="User Settings" href="/rover/config/user-settings" description="Configure user-specific preferences" />
231+
<LinkCard title="Telemetry" href="/rover/config/telemetry" description="Learn what data Rover collects and how to disable it" />
231232
</CardGrid>
Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
---
2+
title: Telemetry
3+
description: Understanding what data Rover collects and how to disable it
4+
sidebar:
5+
order: 5
6+
---
7+
8+
import StepList from '../../../../components/StepList.svelte';
9+
import StepItem from '../../../../components/StepItem.svelte';
10+
import { Aside, CardGrid, LinkCard } from '@astrojs/starlight/components';
11+
12+
Rover collects anonymous usage telemetry to help the team understand how the tool is used and prioritize improvements. This page explains what data is collected, how privacy is protected, and how to disable telemetry if you prefer.
13+
14+
## Why Rover Collects Telemetry
15+
16+
Telemetry helps the Rover team:
17+
18+
- **Understand usage patterns**: Which commands are used most frequently
19+
- **Prioritize improvements**: Focus development effort on the features people actually use
20+
21+
## Anonymous data
22+
23+
Rover is designed with privacy as a core principle:
24+
25+
- **No personal information**: Telemetry never collects your name, email, or any identifying information
26+
- **No code or content**: Task descriptions, prompts, file contents, and code are never transmitted
27+
- **Anonymous user ID**: A random UUID is generated on first use and stored in the [global store](/rover/advanced/global-store)
28+
- **No tracking across devices**: The random ID is local to your machine and has no connection to your identity
29+
- **You control your ID**: You can regenerate your anonymous ID at any time by modifying the global store
30+
31+
The anonymous user ID is stored in the global configuration file:
32+
33+
| Platform | Location |
34+
|----------|----------|
35+
| macOS/Linux | `~/.rover/config/rover.json` |
36+
| Windows | `%APPDATA%\Rover\config\rover.json` |
37+
38+
<Aside type="tip">
39+
Your anonymous ID is just a random string like `a1b2c3d4-5678-90ab-cdef-1234567890ab`. It cannot be linked back to you.
40+
</Aside>
41+
42+
## What Data is Collected
43+
44+
Telemetry records only command usage events. For each event, Rover sends:
45+
46+
| Data | Description |
47+
|------|-------------|
48+
| Anonymous user ID | Random UUID stored in the global configuration |
49+
| Event type | Which command was run (e.g., `new_task`, `merge_task`) |
50+
| Source | Whether the command came from the CLI or VS Code extension |
51+
52+
### Additional Metadata by Command
53+
54+
Some commands include basic metadata to help understand usage patterns:
55+
56+
| Command | Additional Data |
57+
|---------|-----------------|
58+
| `rover task` | Workflow name, agent names, whether multi-agent mode was used, task provider (user input or GitHub) |
59+
| `rover iterate` | Iteration number |
60+
| `rover init` | Agent names, preferred agent, programming languages, attribution setting |
61+
62+
### What is Never Collected
63+
64+
To be explicit, Rover **never** collects:
65+
66+
- Task descriptions or titles
67+
- Code content or file paths
68+
- Repository names or URLs
69+
- GitHub issue content
70+
- Environment variables or secrets
71+
- Personal information of any kind
72+
73+
## Disabling Telemetry
74+
75+
You can disable telemetry at any time using one of the following methods.
76+
77+
### Option 1: Environment Variable (Recommended)
78+
79+
Set the `ROVER_NO_TELEMETRY` environment variable:
80+
81+
```sh
82+
# For a single command
83+
ROVER_NO_TELEMETRY=1 rover list
84+
85+
# Or export it for your entire session
86+
export ROVER_NO_TELEMETRY=1
87+
```
88+
89+
To disable telemetry permanently, add the export to your shell profile (`~/.bashrc`, `~/.zshrc`, etc.):
90+
91+
```sh
92+
# Add to ~/.bashrc or ~/.zshrc
93+
export ROVER_NO_TELEMETRY=1
94+
```
95+
96+
<Aside type="note">
97+
Either `ROVER_NO_TELEMETRY=1` or `ROVER_NO_TELEMETRY=true` will disable telemetry.
98+
</Aside>
99+
100+
### Option 2: Global Store Configuration
101+
102+
Edit the global configuration file to set telemetry to disabled:
103+
104+
<StepList title="Disable via global store">
105+
<StepItem step={1}>
106+
Open the global configuration file
107+
108+
```sh
109+
# macOS/Linux
110+
nano ~/.rover/config/rover.json
111+
112+
# Windows (PowerShell)
113+
notepad $env:APPDATA\Rover\config\rover.json
114+
```
115+
</StepItem>
116+
<StepItem step={2}>
117+
Set the `telemetry` field to `"disabled"`
118+
119+
```json
120+
{
121+
"version": "1.0",
122+
"userId": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
123+
"telemetry": "disabled",
124+
...
125+
}
126+
```
127+
</StepItem>
128+
</StepList>
129+
130+
### Option 3: Marker File (Legacy)
131+
132+
Create a `.no-telemetry` marker file:
133+
134+
```sh
135+
# macOS/Linux
136+
mkdir -p ~/.config/rover && touch ~/.config/rover/.no-telemetry
137+
138+
# To re-enable
139+
rm ~/.config/rover/.no-telemetry
140+
```
141+
142+
<Aside type="caution">
143+
The marker file uses a legacy path (`~/.config/rover/`) that differs from the current global store location (`~/.rover/config/`). While this method still works, we recommend using the environment variable or global store configuration instead.
144+
</Aside>
145+
146+
## Verifying Telemetry Status
147+
148+
You can verify whether telemetry is disabled by checking any of these:
149+
150+
1. **Environment variable**: `echo $ROVER_NO_TELEMETRY` (if set to `1` or `true`)
151+
2. **Global store**: Check the `telemetry` field in `~/.rover/config/rover.json`
152+
3. **Marker file**: `ls ~/.config/rover/.no-telemetry` (if file exists)
153+
154+
Telemetry is disabled if any of these conditions is met.
155+
156+
## Next Steps
157+
158+
<CardGrid>
159+
<LinkCard title="Global Store" href="/rover/advanced/global-store" description="Learn about the global configuration where telemetry settings are stored" />
160+
<LinkCard title="Project Configuration" href="/rover/config/project-config" description="Configure project-wide settings shared across your team" />
161+
<LinkCard title="User Settings" href="/rover/config/user-settings" description="Configure user-specific preferences" />
162+
</CardGrid>

src/content/docs/rover/config/user-settings.mdx

Lines changed: 1 addition & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@ sidebar:
55
order: 2
66
---
77

8-
import StepList from '../../../../components/StepList.svelte';
9-
import StepItem from '../../../../components/StepItem.svelte';
108
import { Aside, CardGrid, LinkCard } from '@astrojs/starlight/components';
119

1210
The **`.rover/settings.json`** file stores user-specific preferences that should not be shared across your team. This file is automatically added to `.gitignore` when you run `rover init`.
@@ -99,46 +97,10 @@ rover task --agent claude:sonnet "Quick code review"
9997

10098
For a complete list of all available configuration options, see the [User Config Reference](/rover/reference/user-config).
10199

102-
## Telemetry
103-
104-
Rover has basic telemetry reporting to help understand how the tool is used. This telemetry does not identify you, as it generates a fully random hash you can change. You can find your random ID at `~/.config/rover/.user`.
105-
106-
The only information recorded by telemetry is which action was invoked and basic metadata like the action source (CLI or VS Code Extension). Telemetry **does not record** any data from prompts, task titles, or descriptions.
107-
108-
### Disabling Telemetry
109-
110-
There are two ways to disable telemetry in Rover.
111-
112-
**Option 1: Create a no-telemetry file**
113-
114-
<StepList title="Disable via file">
115-
<StepItem step={1}>
116-
```sh
117-
mkdir -p ~/.config/rover
118-
```
119-
</StepItem>
120-
<StepItem step={2}>
121-
```sh
122-
touch ~/.config/rover/.no-telemetry
123-
```
124-
</StepItem>
125-
</StepList>
126-
127-
**Option 2: Use an environment variable**
128-
129-
Set the `ROVER_NO_TELEMETRY` environment variable:
130-
131-
```sh
132-
# For a single command
133-
ROVER_NO_TELEMETRY=true rover list
134-
135-
# Or export it globally
136-
export ROVER_NO_TELEMETRY=true
137-
```
138-
139100
## Next Steps
140101

141102
<CardGrid>
142103
<LinkCard title="Project Configuration" href="/rover/config/project-config" description="Configure project-wide settings" />
143104
<LinkCard title="Hooks" href="/rover/config/hooks" description="Run custom commands at task lifecycle events" />
105+
<LinkCard title="Telemetry" href="/rover/config/telemetry" description="Learn what data Rover collects and how to disable it" />
144106
</CardGrid>

0 commit comments

Comments
 (0)