Telemetry
Mochi can send anonymous usage events that tell us whether new users get to a first successful run. It is off until you turn it on. Nothing is sent before then.
Turn it on or off in the desktop app under Settings → Privacy, or from the CLI:
mochi telemetry status
mochi telemetry enable
mochi telemetry disable # also deletes the install IDSetting DO_NOT_TRACK=1 or MOCHI_TELEMETRY_DISABLED=1 in your environment keeps it off whatever the saved setting says.
What is sent
Events go to api.mochiexec.io/telemetry, which is run by Mochi. Nothing goes to a third-party analytics service. Every request carries these fields:
| Field | Value |
|---|---|
installId | A random ID created when you turn telemetry on. It is not derived from your machine, account or license. Turning telemetry off deletes it, and turning it back on creates a new one. |
surface | desktop or cli |
os | darwin, linux or windows |
arch | amd64 or arm64 |
appVersion | The desktop app's version, e.g. 0.9.0 |
cliVersion | The mochi CLI's version |
Each event has a name and a timestamp. The complete list of events:
| Event | When | Properties |
|---|---|---|
app_opened | The desktop app starts | None |
telemetry_enabled | You turn telemetry on | None |
milestone_reached | You reach a step of getting started, or a usage milestone, for the first time | milestone, backfilled, and for some milestones source, discovery or files (see below) |
onboarding_step | A step of the new-project wizard is shown, finished or canceled | step: source or discover. action: viewed, completed or canceled |
error_shown | The app shows you an error. Sent at most once per error code each time the app runs | code: the error's code, such as AI_RATE_LIMITED, or OTHER. area: run, ai, discovery, workspace, license, settings or other |
milestone is one of:
| Milestone | Reached when |
|---|---|
workspace_added | You add your first project. It carries source (folder or git) and discovery (whether you scanned it for tasks) |
tasks_discovered | A scan first finds task files. It carries files, how many it found (capped at 1000) |
first_run_started | You start your first run |
first_run_succeeded | A run first finishes successfully |
first_ai_used | You first ask AI to explain, diagnose or document something, or start a chat |
runs_10, runs_100, runs_1000, runs_10000 | Your run count reaches that number |
streak_7 | You run something seven days in a row |
agent_first | An AI agent runs one of your executables for the first time |
Mochi remembers which milestones you've reached on your machine, whether or not telemetry is on. If you turn telemetry on later, the ones you've already reached are sent once at that moment with backfilled set to true. Nothing about them is sent while telemetry is off.
An error's message, details and output are never sent. A task of yours that fails is not a Mochi error and isn't reported.
This is the complete list. An event that isn't on it can't be sent, and the server rejects anything that isn't.
What is never sent
- Workspace, project, namespace or executable names
- File paths, commands, arguments or any run output
- Secrets, vault contents or environment variables
- AI prompts or responses
- Your license key, email address or IP address. The server doesn't store the IP a request comes from.
Properties can only be fixed choices, counts or version numbers. There is no free-text field where any of the above could end up.