DO_NOT_TRACK A standard for respecting user privacy in software

The Problem

Many CLI tools, SDKs, and frameworks collect telemetry data by default. Each one has its own way to opt out:

Tool Opt-out method
.NET DOTNET_CLI_TELEMETRY_OPTOUT=1
AWS SAM CLI SAM_CLI_TELEMETRY=0
Azure CLI AZURE_CORE_COLLECT_TELEMETRY=0
Gatsby GATSBY_TELEMETRY_DISABLED=1
Go go telemetry off
Google Cloud SDK gcloud config set disable_usage_reporting true
Homebrew HOMEBREW_NO_ANALYTICS=1
Netlify CLI netlify --telemetry-disable
Syncthing STNOUPGRADE=1

You get the idea. There are too many, and they are all different.

The Proposal

A single, standard environment variable that clearly and unambiguously expresses a user's wish to opt out of any of the following:

We just want local software.

export DO_NOT_TRACK=1

Add the line above to your shell configuration file so it applies to all your terminal sessions:

Shell File Syntax
Bash ~/.bashrc export DO_NOT_TRACK=1
Zsh ~/.zshrc export DO_NOT_TRACK=1
Fish ~/.config/fish/config.fish set -x DO_NOT_TRACK 1
PowerShell $PROFILE $env:DO_NOT_TRACK = "1"
Windows (CMD) System Environment Variables setx DO_NOT_TRACK 1

For Software Authors

If you develop tools that collect telemetry, analytics, or make non-essential network requests, please check for this variable:


Contribute

This is an open effort. Contributions, suggestions, and discussions are welcome on GitHub.

See Also