pyscriptc collects anonymous usage metrics to help the maintainers understand how the compiler is used, find bugs and prioritize what to support next. This page describes exactly what is sent, what is never sent, and how to turn it off. It is not legal advice.
When telemetry is enabled (it is on by default in release builds, off in CI and a no-op in dev checkouts), the tool sends one event per invocation over HTTPS to PostHog EU (hosted in Frankfurt, Germany):
- The subcommand you ran (for example
compileorcoverage) - The pyscriptc version and the CPython version (major.minor only)
- The operating system platform
- Whether the event comes from our own traffic (
internal): a source checkout or editable install,PYSC_INTERNAL=1, or CI. CI never sends events; the flag marks maintainer smoke runs so they can be excluded from the dashboard. - For
compileandcoverage: the outcome (ok,fences,check-failed,lower-error,build-error), the duration in milliseconds, and aggregate fence counts with diagnostic family names - A randomly generated anonymous install id (a uuid4 stored only in
~/.config/pyscriptc/telemetry-id)
The full field-by-field list is in the telemetry guide.
The public website (the landing page, the compatibility page and the docs) also sends anonymous usage events to the same PostHog EU project, so the maintainer can see which pages and links are actually used.
What the website sends:
- The page path, the referrer and the standard
utm_*campaign parameters when a link carries them - Which links and buttons were clicked (for example a call to action, a copy of the install command, an install tab, an outbound link to GitHub or PyPI)
- How far down the landing page a visitor scrolled
The website analytics is cookieless: no cookies and no local storage, so there is no identifier that survives a page view. Browsers that send Do Not Track or Global Privacy Control are not tracked at all. Text typed into any form, page content and session recordings are never captured. The client IP address is discarded, the same as for the CLI telemetry, and no person profile is built.
The website events are kept for the same 90 days as the CLI events. The website has no separate opt-out switch: Do Not Track and Global Privacy Control are honoured, and a browser extension that blocks the PostHog host blocks the events too.
- Personal identity, emails, or usernames
- Source code, file names, or local file system paths
- Git repository URLs or commit metadata
- Imported module names, fence codes with locations, or definition names
- Environment variables, secrets, API keys, or tokens
- Raw user arguments or inputs
- Hardware identifiers, host names, or MAC addresses
Every event asks PostHog not to store the client IP address, not to geolocate it, and not to build a person profile. The network connection itself necessarily exposes your IP address to the server; the project is configured to discard it.
Raw events are kept for 90 days and then deleted. Events are transmitted directly to PostHog EU over HTTPS; the data is not sold or shared with third parties. PostHog acts as the data processor under its standard data processing agreement.
Any one of these disables telemetry completely:
export DO_NOT_TRACK=1 # the standard environment variable
export PYSC_NO_TELEMETRY=1 # pyscriptc-specific
pyscriptc telemetry disable # persists to ~/.config/pyscriptc/config.tomlpyscriptc telemetry status shows the effective state and why, and pyscriptc telemetry reset-id rotates the install id, cutting any link to previously sent events.
One stderr line announces that telemetry is enabled on first use.