Servers
Unfurl is local-only. There's no backend, no auth, no API key. The app installs and runs without an internet connection.
Unfurl is a tracker remover. It would be deeply on-brand to harvest your data with one hand while stripping it with the other. We don't. Here is what we collect, store, and share — written so a friend could read it on the train.
We collect nothing from the app. We store nothing on our servers — we don't have servers. Your link history lives only on your Mac. On iPhone and iPad, Unfurl runs entirely on-device — nothing about the links you open ever leaves your device. Since 2.1, the one thing Unfurl syncs is the cleaning rules you choose to make, over your own iCloud — never your history or the links you clean. If you delete the app, its local data is gone.
Unfurl is local-only. There's no backend, no auth, no API key. The app installs and runs without an internet connection.
No analytics, no crash reporters, no telemetry. We don't know who downloads it, who runs it, or how often.
Favicon fetching, rule updates, and following short links — each behind its own switch, all off until you say so. Nothing else talks to the network, and the Safari extension makes none of these calls.
Unfurl is a tool. It runs on your Mac, looks at the contents of your pasteboard when you copy something, and rewrites that content if it's a URL with tracking parameters. It does that, and only that, locally — without contacting any service we operate. We do not operate a service.
From the app: nothing. We have no servers, no analytics, no crash collector, no user accounts. There is no telemetry pipeline. The app does not know whether you have launched it, used it, or uninstalled it.
From this website: standard edge-server access logs (IP address, user agent, requested URL, timestamp) held briefly by Cloudflare to deliver pages and stop bots. We don't run third-party scripts, fonts, or trackers on this site. There is no cookie banner because there are no cookies.
From email you send us: the contents of your email, until we've answered it. We use Fastmail. We don't put you on a mailing list.
Four kinds of state, all under your user account, all local:
Your history, settings, and cached rules stay on your Mac. The only thing that leaves it is the rules you choose to make — synced through your own iCloud, or handed to a friend when you deliberately share one. No telemetry, no analytics, no server of ours with a copy of anything.
On the Mac and on iPhone and iPad, Unfurl includes a Safari extension that cleans links as pages load. It works through Safari's declarativeNetRequest API, which means the cleaning rules run inside Safari's own network layer — Unfurl never reads, sees, or alters the content of your pages. It only ever touches the URL.
The rules are bundled in the app and evaluated on-device. The extension makes no network requests of its own, keeps no history, and has no account. On iPhone and iPad, that's the whole story: nothing about the links you open ever leaves your device.
Since 2.3, Unfurl also includes a Safari content blocker — a second, separate extension — that keeps cookie-consent banners off the page. It uses Apple's declarative content-blocker mechanism: Unfurl hands Safari a list of hide rules, and Safari applies them itself. No script of ours runs on any page, nothing about the pages you visit is read back, and the extension makes no network requests of its own.
The rules come from the public EasyList Cookie list. The app refreshes it about once a day with a
conditional request to the list's own address (secure.fanboy.co.nz, or a mirror you choose in Settings →
Blocking) — the request carries nothing about you, and if the list hasn't changed nothing is downloaded. The list, and
Unfurl's converted copy of it, are stored on your device.
When you turn the blocker off for a site, that site's name is kept in a small list on your device. If iCloud is on, the list syncs between your devices through iCloud key-value storage — inside your Apple ID, where we can't see it. Hiding a banner means the site receives no consent choice from you; sites that behave differently without one can be exempted with the same switch.
The History window can show small site icons next to each row, to make the list easier to scan. Pulling those icons is a network call, so we keep it off by default.
If you turn it on in Settings → History, Unfurl fetches icons through DuckDuckGo's icon service rather than hitting each site directly — the sites in your history never see the request, and nothing is proxied through us. Icons are cached locally and re-fetched at most weekly.
Some links — bit.ly, t.co, SendGrid-style wrappers — only reveal their destination when a server is asked. On the Mac, Unfurl can follow these and clean where they land, but that's a network request, so it's off by default. Turn on Manual and a "Resolve" button appears per link — nothing fires until you click it; turn on Auto and it resolves on copy. Either way your IP reaches the shortener, so you can route the request through a SOCKS5 proxy (Tor, Mullvad) to keep it out. This is a macOS-only feature — the iPhone and iPad extension never makes this call.
If Unfurl crashes, macOS generates a standard crash report in
~/Library/Logs/DiagnosticReports/. We do not auto-upload these. If you submit a bug
report by email, you can choose to attach the most recent crash log — read it first, redact anything
that looks personal, and decide for yourself.
We do not share, sell, rent, lease, license, gift, swap, or otherwise transfer your data — because we do not have your data. If a government or law-enforcement agency requested information about you, we would have nothing to give them. We have nothing to give them about any of our users. We've checked.
Unfurl is suitable for all ages. We do not knowingly collect any information from anyone, of any age, because, as established above, we do not collect any information from anyone.
If you are in the EU/EEA, UK, California, or Brazil, you have specific rights over personal data we hold about you (access, correction, deletion, portability, the right to object to processing). Since we hold no personal data about you, exercising those rights with respect to us is a one-line email reply.
For your local Unfurl data, you have full access — it's on your Mac. Wipe history from
Settings → History → Clear all, or delete everything at once by removing the app's container folder at
~/Library/Containers/dev.johnnywell.Unfurl/.
Your use of Unfurl is governed by the standard Mac App Store License Agreement that Apple shows you on first purchase. The app is provided as-is, without warranty. We make no promises that it will clean every URL you throw at it, never crash, or accurately count the number of params it strips — though we try hard on all three. If something breaks because of Unfurl, our liability is capped at the price you paid for it.
You agree not to use Unfurl to launder data in a way that violates someone else's privacy, to evade affiliate disclosure rules, or to circumvent platform link policies in jurisdictions where doing so would be illegal. We can't enforce that — but we'd appreciate it.
We can change these terms with notice on this page. We won't change them retroactively. If a change is material, we'll mention it in the release notes of the next version.
Unfurl stands on the shoulders of open-source work. In particular:
Per LGPL-3.0, the version of ClearURLs we ship is unmodified and loaded as data, not code; you can load your own copy
via Settings → Rules → Custom source URL.
Email hi@unfurl.software. A real person replies, usually the same day.
— The Unfurl team · Curitiba, Brazil · June 2026