Docs menu

Privacy and Telemetry

Your vaults live on your machine. Separately, fai sends anonymous usage analytics to Fathym, so we can see which features get used and where fai breaks. This page covers what that data is and how to switch it off.

The default

Usage analytics are on until you turn them off. fai tells you once, the first time it runs. It doesn't ask.

What's stored on your machine

The first run creates ~/.fai/config/telemetry.json with three fields:

FieldWhat it is
DeviceIdA random UUID. It isn't derived from anything.
ConsentWhether analytics are on (true or false)
CreatedAtWhen the file was created

What's sent

Every event carries the same basic profile:

  • The anonymous device ID
  • fai version and build (fai or fai-debug), OS, CPU architecture, Deno version
  • Total memory and CPU count
  • How many times you've run fai, and a usage stage derived from that count

On top of that, fai sends events about what you use: which command ran, which coding agents and model providers were detected, the synthesis provider and model name, token counts, how long things took, whether they succeeded, and a few yes/no flags such as whether fai is running in CI.

Usage data doesn't include your code, your captured sessions, your prompts, or the contents of your vaults.

Where it goes

Events go to Fathym's Azure Application Insights. To send them somewhere else, for example your own Application Insights resource, set APPLICATIONINSIGHTS_CONNECTION_STRING.

Turn it off

Any one of these stops fai sending analytics:

RoutemacOS / LinuxWindows (PowerShell)
Commandfai telemetry offfai telemetry off
Config fileSet "Consent": false in ~/.fai/config/telemetry.jsonSame file, under your user folder
DO_NOT_TRACKexport DO_NOT_TRACK=1$env:DO_NOT_TRACK = '1'
FAI_TELEMETRY_DISABLEDexport FAI_TELEMETRY_DISABLED=1$env:FAI_TELEMETRY_DISABLED = '1'

The environment variables must be set to exactly 1. Both forms last for the current shell only; add the line to your shell profile to keep it.

CI is excluded automatically. If CI, GITHUB_ACTIONS, JENKINS_URL, BUILDKITE, CIRCLECI, TRAVIS, or GITLAB_CI is set, fai sends nothing unless you also set FAI_TELEMETRY_FORCE.

Turn analytics back on with fai telemetry on.

See what's sent

FAI_TELEMETRY_DEBUG=1 fai                  # macOS / Linux
$env:FAI_TELEMETRY_DEBUG = '1'; fai        # Windows (PowerShell)

Prints every event to your terminal (on stdout) as it's recorded, so you can read exactly what fai reports. This mode prints events in addition to sending them. It doesn't stop them being sent.

Check your setting

fai telemetry status

Shows whether analytics are on and the first characters of your device ID. It reflects your saved setting, DO_NOT_TRACK, and CI detection. It doesn't yet check FAI_TELEMETRY_DISABLED, so it can report "enabled" while that variable is switching analytics off.

Commands reference →

On this page