CleanLink Privacy Policy

Updated 1 October 2026

Local cleaning and optional shortening

Cleaning happens on your Mac. After you choose Start Cleaning, CleanLink checks newly copied standalone web links and removes known trackers. Rich text, files, images, and concealed clipboard items are skipped. Manual cleaning also stays local.

Automatic shortening is off by default. If you enable it, accepted web links are sent over HTTPS to cln.li, hosted on Cloudflare Workers and D1, and stored to provide public redirects. Cleaning runs first when both toggles are on. There are no advertising SDKs or app usage analytics.

Public short links

Four-character short links are public and guessable. Anyone who finds or guesses a link can open its destination. Do not shorten private, password-reset, sign-in, or other sensitive links. Destination URLs remain stored while the link is active. Turning shortening off or quitting the app does not delete existing short links.

Contact the developer through the app's support link with the short URL to request disabling or deletion of its destination. Disabled IDs are retained as tombstones and never reused. A destination hash and pseudonymous owner identifier may remain for abuse prevention. Managed database backups can retain earlier records according to Cloudflare D1's backup retention.

Click analytics

For successful GET redirects we retain only the short-link ID, UTC calendar date, and a count. Daily buckets are retained for the current day and previous 29 days, with older buckets removed by a daily job. HEAD requests and explicit prefetches are not counted. Counts can include bots and are not unique-person counts.

Our click analytics do not store IP addresses, visitor IDs, cookies, user agents, referrers, precise timestamps, or location. Analytics failures do not prevent redirects.

Access and abuse prevention

The app authorizes shortening with a revocable app-wide access key. A random installation identifier is stored in your Mac's preferences and sent with shortening requests. The service stores a keyed hash of that identifier with links to enforce quotas, deduplicate links, and block abuse. The raw installation identifier and access key are not stored in D1 or logged by the Worker. The installation identifier is not an Apple Account or purchase identifier. It is not used for advertising or behavioral analytics.

The bundled access key can be extracted from the app, and an installation identifier can be reset. Neither is proof of purchase or device attestation. Edge and global limits provide additional abuse controls. Older private previews use a separate temporary key and share a quota.

Cloudflare necessarily processes connection information, including IP addresses, to deliver and protect the service. Our Worker uses a daily keyed IP hash only as an ephemeral rate-limit key; it is not written to D1 or click analytics. Temporary per-user quota counters are removed after their window expires by the daily cleanup job. Workers request logging and tracing are disabled in the service configuration. Cloudflare and Apple may process service data under their own policies.

Local storage and controls

The 10 most recent accepted links and the last processed link remain in memory until you quit. Preferences are stored locally. Hiding recent links hides the list without stopping session history. CleanLink does not erase the system clipboard when it quits; copy something else to replace its contents.

Cleaning and shortening have separate toggles. Turn both off to stop automatic processing, or quit. Launch at login is optional. macOS clipboard features, including Universal Clipboard, are controlled by Apple and your system settings.

Purchases and support

Apple processes App Store payments. The developer does not receive payment card details. Support information you choose to send is used to respond to your request. Avoid sending sensitive destination links in support messages.

Contact

For support, privacy questions, or requests to disable a short link, email hello@sodre.studio. For a takedown, include the cln.li short URL rather than its private destination. Support messages are used to respond to requests and resolve issues; only send information you are comfortable sharing.