Everything happens on your Mac.
Specula measures folders on your Mac and keeps what it learns there. Scan results, history and settings stay in ~/Library/Application Support/Specula and your Mac's preferences.
Your files are never uploaded. There are no accounts, no analytics and no telemetry, and crash reports are off unless you turn them on. We never see your files, their contents or their sizes.
The three questions it asks the internet.
Is my license valid? Specula needs a license key to work, and it checks the key with Dodo Payments, the Merchant of Record that sells Specula, at live.dodopayments.com. When you enter your key, Specula sends it once, together with your Mac's name — the one in System Settings → General → Sharing, such as “Jane's MacBook Pro” — so you can tell your activations apart. Each time Specula starts, and a week after the last successful check, it sends the key and its activation ID to confirm the license is still valid. If Dodo can't be reached, Specula keeps working for 30 days after the last successful check and tries again later.
Deactivate This Mac, in Settings → License, sends the key and the activation ID to free the activation. Specula also does that on its own so no activation stays in use for nothing: for a key that belongs to another product, for a license that a newly entered key replaces, and when the keychain can't save a new activation.
These requests carry nothing about your disk or your files, no hardware identifiers and no analytics. Like any web request, they show Dodo your IP address and a user agent with the versions of Specula and macOS's networking components. Dodo's answer to an activation includes the name and email address the key was bought with; Specula keeps only the email address, to show it in Settings → License. The key, its activation ID, that email address and the time of the last check stay in your Mac's login keychain; Deactivate This Mac removes them.
Which updates does my license include? Right after Specula activates your key, and after each check that confirms it, Specula sends the activation ID — not the key — to https://speculamac.com/api/license/updates. Our server looks that activation up at Dodo Payments, answers with the day your free updates end, or that they don't end, and keeps nothing. Specula keeps that day with the license in your login keychain, offers only the updates released until then, and tells you if the version you run came out after it. The request carries nothing else. Like any web request, it reaches our hosting provider, Vercel, whose server logs record your IP address and a user agent with the versions of Specula and macOS's networking components.
Is there an update? Once a day, or when you choose Check for Updates, Specula fetches https://speculamac.com/appcast.xml. When there is a new version your license includes and you agree to install it — or automatically, if you've ticked “Automatically download and install updates” in the update window — the update is downloaded from speculamac.com. You can turn the daily check off in Settings.
The update check carries nothing about you or your disk, and no system profile is sent. Its user agent only names the Specula and Sparkle version numbers. Like any web request, it reaches Vercel, whose server logs record your IP address and that user agent.
That is all the network traffic Specula creates — unless you turn on crash and error reports, described below.
Crash and error reports, only if you allow them.
Crash and error reports are off unless you turn them on. Specula asks once, after you activate it and start your first scan, and you can switch them on or off at any time in Settings → Privacy → “Send crash and error reports”. While they are off, the reporting code doesn't run: nothing is recorded and nothing is sent. Turning them off takes effect at once.
When they are on and Specula crashes, or something it does fails — a scan, a deletion, a cleanup step, a Docker cleanup, archiving or restoring AI sessions, or an unexpected answer from the license server — it sends a report. A report contains the error and where in Specula's code it happened, the last things Specula did before it (such as the addresses of its own web requests), Specula's version, the macOS version, and your Mac's model and memory.
Before a report leaves your Mac, Specula takes out what could identify you. File paths are shortened — your home folder becomes ~ — and your account name, your full name and your Mac's name are removed, as are email addresses and license keys. A report carries no identifier of you or your Mac, nothing about your files' contents, and never your scan results, license key or email address.
Reports are processed by Sentry (Functional Software, Inc.) in its EU region, under its privacy policy, and kept for at most 90 days. We use them only to find and fix bugs. Like any web request, sending a report shows Sentry your IP address; Specula doesn't put it in the report, and Sentry is set to store neither the address nor a location derived from it. A report that can't be sent right away waits on your Mac, in ~/Library/Caches/com.specula.
Docker stays local.
If you use Docker, Specula asks the docker command-line tool on your Mac how much space images, containers and volumes take. The CLI talks to your Docker daemon — normally the local Docker Desktop — and none of that information leaves your Mac through Specula. With crash and error reports on, a failed Docker cleanup reports Docker's error message, without the names of your images.
If your active Docker context points to a remote machine, the CLI talks to that machine instead. Specula shows a warning and only runs read-only commands there.
Buying Specula.
You pay on a checkout page run by Dodo Payments, the Merchant of Record that sells Specula. Dodo collects what it needs to take your payment, prevent fraud and handle taxes — such as your name, email address, billing country and payment details — and handles it under its own privacy policy. Dodo emails you the receipt and your license key.
Dodo shares your name, email address, country and order details with us, never your full card number. We use them only for your purchase: to answer your questions, issue refunds and keep the records the law requires.
The Buy button asks our server to open a Dodo checkout for Specula, and nothing about you is part of that request. After you pay, Dodo sends you back to speculamac.com/thanks with your payment's ID and status in the link, and possibly your email address and license key; like any request, it reaches Vercel's logs.
This website.
speculamac.com uses no cookies. Its fonts are served from this site. Vercel hosts it and, as with the update check, its logs record the IP address and user agent of each request.
To see which pages people read and where they come from, it counts visits with Umami, which we run on our own server in Germany, at xinsightss.eu. For each page view it records the page, the site that linked to it, your browser, operating system, device type, screen size, language and country. It stores no cookie and no IP address; it tells visits apart by a hash of the IP address and user agent that changes every month. If your browser sends Do Not Track, nothing is recorded.
Specula is listed on Proof of Traction, which ranks new products by their visitors and is also run by Michał Florczak. Every page loads its script from proofoftraction.com, which shows this week's visitor count in the footer and, for each page view, sends the page, the site that linked to it, the page title, your screen size and language there. Proof of Traction records them with your browser, device and country. It stores no cookie and no IP address, keeps only a visit token in the tab's session storage, and tells visitors apart by a hash of the IP address and user agent that changes every day. Its privacy policy has the details.
Questions.
Specula is made by Michał Florczak. Questions about privacy? Write to support@speculamac.com.
If this ever changes, this page changes first, with a new date at the top.