Privacy Policy

Last updated: October 16, 2026

In one sentence: DisplayPilot has no telemetry, no analytics, and no usage statistics. The app bundles no analytics SDK, and there is no request that reports how you use it. Below is exactly what it reads locally, and the only three things that ever reach the network.

1. What we collect

No usage data at all. No analytics, no event reporting, no crash-report uploads, no device fingerprinting, no advertising identifiers, no user profiling.

The only network request related to licensing is the one-time redemption of a short code (DP-XXXX-XXXX-XXXX). It sends exactly two things:

That request only asks the licensing service to exchange the short code for the long signed activation code belonging to that order. A code beginning with DP- (the long signed code) is then verified entirely offline — no request is sent, now or later. The random identifier cannot be traced back to you or to your device model.

Current status: checkout is live. Payment is in cryptocurrency through our own checkout and licensing service. A DP- activation code is verified offline and never contacts a server; only redeeming a short code makes one request, and it is made to our own service, not to a third party.

2. What we don't collect

These are things the app uses but processes only locally on your Mac. They are never uploaded:

And these we never touch at all:

3. Only three things reach the network

Apart from the three items below, the app initiates no network requests. Everything is HTTPS; plaintext HTTP is never used.

1. Checking for updates

The app requests a version manifest from appcast.xml to see whether a newer version exists. That manifest is hosted alongside this website on GitHub Pages. The request contains no license key, no device identifier, and no usage data. It is off by default: it is only sent if you turn on automatic checking in the General panel (at most once a day thereafter), or click “Check for Updates” yourself.

The host, GitHub, sees your IP address, the request time, and a client identifier, exactly as any web server would. That is the host's ordinary access log, not something we collect on top of it.

2. Verifying a license

This only happens when you activate. A long signed code (DP-…) is verified locally, offline, with a public key built into the app — no request leaves your Mac, at activation or ever. A short code (DP-XXXX-XXXX-XXXX) is exchanged once, at redemption, with our own licensing service:

We have deliberately made this offline-first: a failed re-check, a dropped connection, or a server outage never changes your license state — it only records an error. If re-checks can't get through for a long time, there is still a 7-day grace period during which everything keeps working. Until you activate, the app sends no license request at all and asks for no account.

Current status: this is live. A long DP- code needs no network at all. The short-code redemption above is the only licensing request the app ever makes, and it goes to our own service. Until you activate, the app sends no license request at all and asks for no account.

3. Opening the purchase page or the website

When you click “Buy” or “Visit website”, the address opens in your default browser. Payment happens in your browser, not through the app. The purchase entry point is the order page served by our licensing service; it uses the browser you already have and installs nothing.

4. Where your data lives

To remove everything: quit the app, then delete the two directories/files above; for a thorough job, also delete that one Keychain entry in Keychain Access. The app installs no background service or daemon, and uninstalling leaves no resident component behind.

5. Third parties

Beyond these, the app and this website have no analytics service, ad network, social plugin, or third-party font.

6. Children

DisplayPilot is a desktop tool for Mac users. It is not designed for children, and it does not knowingly collect any information from children.

7. Changes to this policy

If a future version changes the app's network behavior — for example, adding cloud sync — this policy will be updated first, and the changelog will say what changed. We will not quietly widen what we collect behind a “continued use means acceptance” clause.

8. Contact

If you have questions about this policy, or want to check which license information is held about you, please open an issue on GitHub.

← Back to home