Privacy & telemetry disclosure
What this collects, and how to stop it.
This page documents the telemetry sent by Helios, Selene, and Moonlight OS to this
collector, and applies to any build whose release notes link here as its PrivacyUrl.
Operator
This collector is operated by the Moonlight OS project, the same team that maintains Helios and
Selene, at mlos-telemetry.mopigames.dev.
What is sent
Each client may send two kinds of event:
- Launch — project name (
helios,selene, ormoonlight-os), app version, operating system, and CPU architecture. Sent at most once per UTC day. - Crash — the same fields, plus a short categorical reason and up to 64 stack frames. Frames are stripped of file paths and truncated to 160 characters before they leave the device; only the trailing symbol/offset is kept. Sent once, on the next launch after an unclean exit.
The collector rejects any field it doesn't expect. It never accepts or stores device identifiers, IP addresses, hostnames, usernames, user agents, memory dumps, log files, or free-form text.
Enabled by default
Telemetry and crash reporting are both on by default in Helios, Selene, and Moonlight OS. Each project exposes two local settings to turn them off independently:
telemetry_enabled— stops launch events.crash_reporting_enabled— stops crash events.
Set either to disabled in the app's configuration (see that project's
Configuration docs for the exact setting). A build compiled without a telemetry endpoint
configured sends nothing at all, regardless of these settings.
How data is aggregated, retained, and deleted
Events are not stored individually. A launch increments a counter keyed by day/project/version/OS/architecture — there is no raw event log to delete, because no raw event is ever written. Crash events work the same way: a counter keyed by day/project/version/OS/reason, and a fingerprint derived from the sanitized frames.
These daily counters are kept indefinitely so the public dashboard can show historical trends — there is currently no automatic expiry or deletion job. Because the counters carry no identifying information, there is nothing in them that corresponds to an individual person or device to delete on request.
IP addresses
The collector application does not log, store, or forward client IP addresses. The reverse proxy in front of it is likewise configured without access logging, so no component in this pipeline retains IP addresses.
What's public
The aggregated counts above — launches and crash fingerprints per day, per project — are shown on the dashboard for anyone to view. Nothing published there can be traced back to an individual installation.