Skip to content

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:

sh
mochi telemetry status
mochi telemetry enable
mochi telemetry disable   # also deletes the install ID

Setting 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:

FieldValue
installIdA 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.
surfacedesktop or cli
osdarwin, linux or windows
archamd64 or arm64
appVersionThe desktop app's version, e.g. 0.9.0
cliVersionThe mochi CLI's version

Each event has a name and a timestamp. The complete list of events:

EventWhenProperties
app_openedThe desktop app startsNone
telemetry_enabledYou turn telemetry onNone
milestone_reachedYou reach a step of getting started, or a usage milestone, for the first timemilestone, backfilled, and for some milestones source, discovery or files (see below)
onboarding_stepA step of the new-project wizard is shown, finished or canceledstep: source or discover. action: viewed, completed or canceled
error_shownThe app shows you an error. Sent at most once per error code each time the app runscode: the error's code, such as AI_RATE_LIMITED, or OTHER. area: run, ai, discovery, workspace, license, settings or other

milestone is one of:

MilestoneReached when
workspace_addedYou add your first project. It carries source (folder or git) and discovery (whether you scanned it for tasks)
tasks_discoveredA scan first finds task files. It carries files, how many it found (capped at 1000)
first_run_startedYou start your first run
first_run_succeededA run first finishes successfully
first_ai_usedYou first ask AI to explain, diagnose or document something, or start a chat
runs_10, runs_100, runs_1000, runs_10000Your run count reaches that number
streak_7You run something seven days in a row
agent_firstAn 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.