|
| 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> |
0 commit comments