Skip to content
Reference

Telemetry

Stack's opt-in anonymous usage telemetry — what's collected, what isn't, and how to opt out permanently.

Default: off

Stack never sends telemetry without explicit consent. On first run in an interactive terminal you are asked once:

Share anonymous usage telemetry (command + duration, no paths/secrets)? [y/N]

The default answer is N. Pressing Enter without typing anything leaves telemetry disabled. Nothing is transmitted until you answer y.

What's collected

When you opt in, each CLI invocation may send one event with these fields only:

Field Value
command Top-level subcommand name (e.g. "add", "scan"). Never includes arguments or flag values.
exitCode Process exit code. 0 = success.
durationMs Wall-clock milliseconds from CLI start to exit.
installId A random UUID stored in ~/.ashlr/stack/config.json. Used only to count distinct installations. Not you — just a machine count.
runId A fresh UUID per invocation. Not stored anywhere and not linkable across runs.
stackVersion, platform Installed version string and OS platform (darwin / linux / win32).

What's never collected

  • Working directory, filesystem paths, or project names.
  • Provider names or which services you use.
  • Secret values, API keys, or anything stored in Phantom.
  • Command arguments or flag values.
  • Email address or any account identifier.
  • Contents of .stack.toml or .stack.local.toml.

Your IP address is visible to the telemetry endpoint at the HTTP layer. It is purged within 48 hours and never written to the analytics database.

How to opt out

# Disable via CLI (persisted to ~/.ashlr/stack/config.json)
stack telemetry disable

# Or set an env var — overrides any stored opt-in for this process only
STACK_TELEMETRY=0 stack add supabase

# Or add it permanently to your shell profile
echo 'export STACK_TELEMETRY=0' >> ~/.zshrc

You can also check the current status or re-enable from the CLI:

stack telemetry status   # shows enabled/disabled + installId
stack telemetry enable   # opt back in
stack telemetry disable  # opt out

Once opted out, no data is sent — not even a "user opted out" ping.

CI environments

Stack automatically detects CI=true and skips the first-run prompt. Telemetry defaults to disabled in CI unless you explicitly set STACK_TELEMETRY=1. The update-check banner is also suppressed in CI and when STACK_NO_UPDATE_CHECK=1 is set.

For the full legal document — data retention schedules, the complete field list, and the changelog — see the Privacy Policy.