Skip to main content

Runtime

Runtime

Telemetry

What the Phrony runtime collects, what it never collects, and how to opt out.

Phrony collects coarse operational telemetry from the runtime daemon and operator CLI so we can understand adoption and reliability. Telemetry is enabled by default (opt-out). The legal basis is legitimate interest in improving the product—not consent-based tracking of individuals.

What is collected

Each batch includes only:

FieldExamplePurpose
install_id
Random UUID in your config file
Distinguish installs without identity
app_version
0.1.2
Know which runtime release is in use
platform
darwin/arm64
Coarse OS and CPU architecture
Event counts
daemon_started: 1, session_completed: 7
Whitelisted counters only

Whitelisted event names: daemon_started, session_started, session_completed, session_failed, agent_deployed, tool_dispatched, migrate_run, cli_command.

What is never collected

Telemetry never includes:

  • IP addresses, hostnames, or usernames
  • File paths, project names, or repository metadata
  • Agent names, namespaces, session IDs, or tool arguments
  • Model prompts, completions, or any free-form content
  • API keys or secrets

The ingestion endpoint does not read or store client IP addresses.

Where data goes

Batches are sent over HTTPS to a Supabase Edge Function (telemetry), which validates the payload against a strict schema and inserts rows into a Postgres table (telemetry_events). Row Level Security is enabled with default-deny for anonymous and authenticated roles; only the server-side function writes data.

How to disable

You can turn telemetry off in three ways:

  1. Environment variable (applies immediately, no config file change):

    Shell
    $ export DO_NOT_TRACK=1
    # or DISABLE_TELEMETRY=1 or PHRONY_DISABLE_TELEMETRY=1
  2. CLI (persists to your user config):

    Shell
    $ phrony telemetry disable
    $ phrony telemetry status # install_id, config, and effective state
    $ phrony telemetry enable # re-enable in config
  3. Config file: ~/.config/phrony/telemetry.json (or the platform equivalent from UserConfigDir), field enabled: false.

Endpoint

Batches are sent to:

Text
https://hxybgqfxykmxdhyqsvlh.supabase.co/functions/v1/telemetry

Override for staging or air-gapped environments:

Shell
$ export PHRONY_TELEMETRY_ENDPOINT="https://<project-ref>.supabase.co/functions/v1/telemetry"