§ Telemetry

A light ping, and why we ask.

nteract is maintained under NumFOCUS, a non-profit. We don’t sell your data. We never will.

One anonymous daily heartbeat tells funders that real people are using nteract. The ping is evidence of use, not funding.

In [1]: ping()
Out[1]: {
          "install_id": "550e8400-e29b-41d4-a716-446655440000",
          "source": "app",
          "version": "2.2.1",
          "channel": "nightly",
          "platform": "macos",
          "arch": "arm64"
        }

If you’d rather not, flip it off. No penalty. No degraded features.

Your rights

Access

Open Settings → Privacy to see your install ID, last ping times, and current setting.

Rectify

There’s nothing to rectify. The six fields are facts about your build, not profile data.

Erase

Rotate your install ID from Settings → Privacy. Old rows become unlinkable and age out at 400 days. To delete them immediately, call the server-side erasure endpoint (DELETE /v1/install/{install_id}) or email privacy@nteract.io with your install ID.

Object / withdraw

Flip the setting off, any time. No penalty, no features lost.

How to opt out

  • Onboarding choice. Press “Opt out of metrics, continue” on the final onboarding screen.
  • Settings → Privacy. Flip the telemetry switch off any time. Rotate your install ID or request erasure from here too.
  • CLI. Run runt config telemetry disable. Check status with runt config telemetry status.

For locked-down deployments and CI images: Set NTERACT_TELEMETRY_DISABLE=1 for locked-down deployments and CI images.

Exactly what's sent
FieldExampleDescription
install_id550e8400-e29b-41d4-a716-446655440000Opaque UUIDv4 generated on first run. Not derived from any identifying data.
sourceappWhich process sent the ping. One of app, daemon, or mcp.
version2.2.1Release version of the build that sent the ping.
channelnightlyRelease channel: stable or nightly.
platformmacosOperating system family: macos, linux, or windows.
archarm64CPU architecture: arm64 or x86_64.
What is never sent or stored
  • Hostname, username, home directory, or any filesystem path.
  • Notebook contents, cell outputs, kernel names, or environment details.
  • Dependency names or versions (Python, Node, R, system packages).
  • Hardware identifiers (MAC address, serial number, disk UUID).
  • Client IP address at rest. Cloudflare observes it briefly for rate limiting; the database does not store it.
  • User-Agent or any HTTP header beyond Content-Type.
When a ping is suppressed
GateTrigger
Dev modeRUNTIMED_DEV=1 or RUNTIMED_WORKSPACE_PATH is set
CICI environment variable is set
Kill switchNTERACT_TELEMETRY_DISABLE environment variable is set
Disabledtelemetry_enabled = false in settings
Consent not recordedtelemetry_consent_recorded = false (user has not pressed either onboarding button)
Not onboardedonboarding_completed = false (fresh install before first-run screen)
Unsupported hostPlatform or architecture not in the server's enum
ThrottledLast ping for this source was less than 20 hours ago
Retention and schema evolution
  • Raw pings: kept for 400 days, then deleted by a nightly cleanup job.
  • Daily aggregate counts: kept indefinitely. No install_id; just counts grouped by day, source, version, channel, platform, arch.
  • New fields may be added over time (additive only). Any field removal is a breaking change that gets a new route version (/v2/ping).

Sponsored project note

nteract is a NumFOCUS sponsored project. NumFOCUS’s own privacy policy covers NumFOCUS services (its website, event registration, etc.), not sponsored projects. This page is how nteract handles your data.

Contact

Privacy questions: privacy@nteract.io.

Source: github.com/nteract/desktop.