Privacy and data

DNS Button collects nothing.

An app that changes where your DNS goes should be clear about what it can see. Here's all of it, for Mac, iPhone and iPad.

Who publishes this

DNS Button and this site are built and operated by SR WORKS LLC. The app, this site and their code are © 2026 SR WORKS LLC, all rights reserved.

What we collect

Nothing. There is no analytics SDK, no crash reporter, no telemetry, no advertising identifier and no account to create. The app has no server of its own to send anything to. Nobody at SR WORKS LLC can see which resolver you picked, how often you switch, or that you have installed the app at all.

This is a property of how the app is built rather than a promise about how we behave: there is no code in it that reports usage anywhere.

What leaves your device, and when

Five things. Your DNS lookups, response-time testing and the syncing of resolvers you add happen on their own; the leak test and the filter check only when you use them.

1. Your ordinary DNS lookups

This is the point of the app. When you choose a provider, DNS Button sets up a DNS configuration, which you approve once in Settings, and your device sends its DNS queries to that provider. Those queries do not pass through us and we never see them. What the operator you chose does with them is governed by their privacy policy, not ours. AdGuard, Canadian Shield, CleanBrowsing, Cloudflare, Control D, DNS4EU, Google, NextDNS, OpenDNS and Quad9 each publish their own; if that matters to you, read the one belonging to whichever you pick.

2. Response-time testing

To time a resolver the app sends it real DNS queries for example.com, directly from your device, the way your DNS would reach it: over HTTPS, over TLS, or as plain DNS. For an encrypted server it first looks the server's name up through the DNS you're using, as any connection does. Those queries go to the resolver operators, not to us. Nothing about the result leaves your device; the timings are stored on it so the app can show them again.

This runs on its own as well as when you ask for it: when the app first runs, whenever you join a different network, and when the timings are more than six hours old. When you switch to a resolver, it times that one straight away. On a Mac that happens while the app is running; on iPhone and iPad, only while it is open. Each round sends a handful of queries per provider and reports the middle result, so one slow answer does not decide what a resolver looks like. You can switch it off in Settings › Providers › Refresh automatically on a Mac, or Settings › Response Times › Refresh Automatically on iPhone and iPad, which leaves the timings measured only when you ask.

A resolver that stops answering is asked again more often, so the app can say it is not responding and stop offering it. Those rechecks start a couple of minutes apart and slow down to half an hour while it stays quiet; each one also queries a resolver that is working, which is how the app tells a resolver that has gone down from a network that is blocking it. They stop as soon as it answers, and the same setting switches them off.

Testing a resolver you add sends it the same kind of query, and looks up the reverse DNS name of its address, which is an ordinary DNS query too. Testing a Pi-hole also asks it for the name pi.hole, which is how the app confirms it is one.

3. The DNS leak test

Running the DNS leak test contacts dnsleak.dev, and only then. It asks that service for a set of unique hostnames, resolves them through your device's configured resolver, and asks the service which resolvers were seen asking. That is the entire mechanism. The test cannot work without your resolver contacting their nameserver, which is exactly what it is measuring.

dnsleak.dev is also operated by SR WORKS LLC, so we should be explicit rather than let the shared owner go unmentioned: when you run this test, that service sees your IP address and the address of the resolver that performed the lookups, because it cannot answer the question otherwise. It is governed by its own privacy policy, which describes what it stores. The app and the service share no code and no account system.

The app keeps the result in memory, so it can mention it beside your DNS, until the network or the DNS changes. It is never written to your device's storage.

4. The filter check

Filter Check sends a handful of DNS queries from your device, directly to the resolver that is currently answering, the same way your DNS reaches it: as plain DNS, over HTTPS or over TLS. It asks about a control name and about names a filtering tier is meant to block, so it can tell you whether the tier you picked is blocking anything. Those queries go to the resolver operator, exactly as your ordinary lookups do. No web page is loaded, and no result leaves your device.

5. Resolvers you add, to your own iCloud

Resolvers you add yourself under Custom DNS sync between your Mac, iPhone and iPad through your own iCloud account, in Apple's CloudKit private database. Each resolver is stored there encrypted, and with Advanced Data Protection turned on it is end-to-end encrypted. It is your data in your iCloud account: we cannot see it, and nobody else signed in to a different Apple Account receives it. Family Sharing shares the subscription, not your resolvers.

Nothing else syncs. Your settings, network rules, trusted networks and response times stay on each device. Sync is off when you are not signed in to iCloud, or when iCloud is turned off for DNS Button in your Apple Account settings.

What is stored on your device

Everything the app keeps stays on the device it runs on, apart from the copy of your added resolvers in your own iCloud account described above. None of it is sent to us.

The app never asks for, records or sends your location. The DNS configuration itself is kept by the system, and removing it from the app's own settings, or from Settings, deletes it.

On a Mac everything above lives in ~/Library/Containers/dev.dnsbutton.app, so removing the DNS configuration and deleting that folder returns the Mac to exactly where it started. On iPhone and iPad it is deleted with the app. The synced copy of your resolvers stays in iCloud until you delete DNS Button's data from iCloud storage in your Apple Account settings. Diagnostic messages go to the system log on your own device, the same as any other app, and are never transmitted.

Purchases

The subscription is handled entirely by Apple through the App Store, and one subscription covers your Mac, iPhone and iPad. We never see your payment details, your name or your Apple Account, and we cannot tell who has subscribed. The app asks StoreKit whether a valid subscription exists and shows or hides the paid features accordingly; it does not store that answer, and there is no license key, activation or check-in with any server. Canceling is done in your Apple Account settings, not here.

This website

Static pages. No cookies, no analytics, no tag manager, no embedded video and no third-party requests of any kind. There is not even a web font to fetch: these pages are set in whatever typeface your own device uses for its interface, so nothing is downloaded from us or from anyone else beyond the page itself.

These pages are served by Cloudflare, with no server of ours behind it. Cloudflare terminates the connection, so it sees your IP address and which pages you asked for, and it keeps ordinary web server logs. That is the whole of it. Those logs are not joined to anything, they are not used to build a profile of you, and nothing in these pages follows you anywhere else.

Children

DNS Button is a utility for configuring a device's DNS and is not directed at children. It collects nothing from anyone, of any age.

Your rights

Rights such as access, correction, portability and erasure attach to personal data held about you. We hold none, so there is nothing for us to produce or delete. Everything the app keeps is on your own devices and in your own iCloud account, in the places named above, under your control. If you would like this confirmed in writing, ask.

Changes

If this policy changes, the date below changes with it, and the version shipped with the app is updated in the same release. We will not quietly broaden it.

Contact

support@dnsbutton.dev

Last updated .