Wipecraft privacy
Page: wipecraft.app/privacy · Applies to: Wipecraft 1.x for macOS · Last updated: 2026-10-29
Wipecraft reads your disk to show what takes space. Wipecraft sends none of what it reads anywhere. The one way it reaches another program is a coding agent you connect yourself, over a local connection on your Mac (see "Command-line tool and Claude Code plugin" and "Coding agents (MCP)"). This page lists every network call the app makes, what each one carries, and how to remove everything Wipecraft stores.
In short
- No account. No telemetry. No analytics.
- Wipecraft sends no file name, path or scan result anywhere. A coding agent you connect is the one exception, and it is your choice: it receives scan results from Wipecraft on your Mac.
- The app makes network calls for two things: your license, and update checks.
- One optional check goes through your own GitHub CLI (
gh), only if you have it installed and signed in. It is on by default and you can switch it off in Settings. See section 6. - Crash reports are off by default. If you turn them on, they go to Sentry (EU region) only when the app crashes, with no file names or paths. See section 5.
- Coding agents you connect can read scan results (titles, paths and sizes) through a local connection on your Mac. They cannot clean unless you turn that on in Settings > Agents. An agent backed by a cloud service may send what it receives to its own provider, under that provider's terms. See "Coding agents (MCP)" below.
- The
wipecraftcommand-line tool and the Claude Code plugin make no network call of their own. The only request that can leave through them is the optionalghcheck in section 6, and only when the app's setting for it is on.
What leaves your Mac, and when
1. License activation
| When | You enter a license key and choose Activate. |
|---|---|
| Sent to | Polar, api.polar.sh (our payment and license provider). |
| What is sent | The license key, our seller ID at Polar (organization ID), and a label for this activation: your Mac's name, as set in System Settings > General > Sharing. If the name is empty, the label is "Wipecraft". Polar stores the label with the activation, and it lets you tell your 2 activations apart. Like any web request, it also shows your IP address and a user agent to Polar. |
| What comes back | Whether the key is valid, and an activation ID that Wipecraft keeps in your Keychain. |
| Opt-in | Yes. Nothing is sent until you activate a key. |
2. License check
| When | Once each time Wipecraft opens, only if a license is active on this Mac. |
|---|---|
| Sent to | Polar, api.polar.sh. |
| What is sent | The license key, our seller ID at Polar (organization ID) and the activation ID. Like any web request, it also shows your IP address and a user agent to Polar. |
| What comes back | Whether the license is still valid, or was refunded or revoked. |
| Opt-in | Yes. It happens only after you activate a license. If the check fails, for example offline, everything keeps working. |
3. Removing the license from a Mac
| When | You choose "Remove from this Mac" in Settings > License. Also when you activate a different key on this Mac: the old activation is released. If a release fails, for example offline, Wipecraft tries it again the next time it opens. |
|---|---|
| Sent to | Polar, api.polar.sh. |
| What is sent | The license key, our seller ID at Polar (organization ID) and the activation ID. Like any web request, it also shows your IP address and a user agent to Polar. |
| Opt-in | Yes. |
4. Update checks
| When | When you choose "Check for Updates…". Automatic checks happen only if you allow them: the updater (Sparkle) asks once whether to check automatically. |
|---|---|
| Sent to | The update feed at updates.blitzcortex.com. |
| What is sent | A standard web request for the update feed. Like any web request, it shows your IP address and a user agent with the app's name and version. Sparkle's system profile is turned off, so no hardware or system details are added. |
| What comes back | The list of available versions. If you install one, the update file is downloaded from the address the feed lists, and its signature is checked before it is installed. |
| Opt-in | Manual checks: yes. Automatic checks: only if you say yes to the updater's question. |
5. Crash reports (off by default)
| When | Only if you turn on "Send crash reports" in Settings > Privacy. It is off by default, and nothing is sent, loaded or started until you turn it on. Turning it off stops it. |
|---|---|
| Sent to | Sentry (sentry.io), in its EU data region (Germany). |
| What is sent | When the app crashes: the crash type and message, the stack trace, the app version and build, macOS version, device model and architecture, free memory and disk space, and the app's install path with your user name replaced by "_". Before anything leaves your Mac, every file path in the message, exception text, tags and extra data is replaced with "<path>"; your user name is removed from stack-frame and binary paths. Like any web request, it shows your IP address. |
| What is not sent | File names, folder names, scan results, license key, Mac name, usage or session data, breadcrumbs, performance or app-hang data, MetricKit data. "Send default personal data" (sendDefaultPii) is off in the SDK. |
| Opt-in | Yes. Off until you turn it on; Settings shows "Sends crash details without file names or paths. Off by default." |
6. GitHub merge check (your own gh login)
| When | During a scan, for a worktree whose commits are not on the main branch or a remote, and only if its repository's origin is on github.com. The same check runs again right before you remove such a worktree; if it no longer finds the merged pull request, nothing is removed. |
|---|---|
| Requirements | The GitHub CLI (gh) is installed in /opt/homebrew/bin or /usr/local/bin, you are signed in to github.com with it, and "Check GitHub for merged pull requests" is on in Settings > Privacy (default: on). If any of these is missing, nothing is asked and nothing is shown. |
| Sent to | GitHub, by gh, with your own login. Wipecraft itself sends nothing and holds no GitHub token. |
| What is sent | Branch names and commit IDs are what Wipecraft asks GitHub about, using your own gh login; nothing else leaves this Mac. In practice gh sends the repository name (owner/name, taken from origin) and the branch name, and Wipecraft compares the worktree's commit ID with the answer on your Mac. Two read-only commands run: gh auth status --hostname github.com and gh pr list --state merged. Nothing is created, changed or posted on GitHub. |
| What comes back | The numbers and head commit IDs of merged pull requests for that branch. Wipecraft uses them only to recognise a squash-merged branch, so its worktree is not locked for "commits not on the main branch or a remote". Every other lock stays. |
| Limits | Each call stops after 5 seconds. A timeout or error counts as "not merged" and shows nothing. |
| Opt-in | On by default. Switch it off in Settings > Privacy; with it off, gh is never run. |
Purchase
When you buy, you use Polar's checkout in your browser, not the app. Polar is the merchant of record: it handles payment, tax and refunds. Through Polar we receive your email address and order details, so we can send your license and handle refunds. Polar's own privacy policy covers the checkout.
Command-line tool and Claude Code plugin
The wipecraft command is a plain program inside the app (Contents/Helpers). It runs with your own rights, does not run administrator commands and makes no network call of its own.
- What it reads. The same folders and read-only tool commands as the app. It also reads the app's settings (the scan options and the two agent switches) from the app's preferences, and only reads them. A scan or status creates no file and changes none.
- License.
wipecraft clean, with or without--apply, reads your license from the Keychain. macOS may ask you to allow that. If you decline, the command acts as if no license were active. Scanning does not read it. - What it writes. Only when you run
wipecraft clean --applyorwipecraft quarantine restore: the same Quarantine, Archive and deletion log files as the app, plus the lock file below. Caches, logs and temporary files that their app rebuilds are removed directly, without Quarantine. Such an item leaves only an entry in the deletion log and cannot be restored.clean --applyon a worktree runsgit worktree removeafter the ignored files that are not build output move to Quarantine; the build output inside the folder is deleted, not quarantined. - GitHub check. A scan, status or clean follows the app's setting for the check in section 6.
--no-githubswitches it off for one run.
The Claude Code plugin is optional and is not installed by Wipecraft. When you install it, Claude Code runs two scripts that call wipecraft:
- When a session starts (SessionStart), the script prints one line into the session if it has a summary younger than 24 hours, for example "30 GB can be freed (Simulators 21 GB, Worktrees 9 GB)". The line holds a total and up to three source names with sizes, and no path. It does not wait for a scan. If the summary is older than an hour it starts
wipecraft status --brief --no-github --min-reclaimable 1GBin the background, at low priority, and saves the one-line result in~/Library/Caches/wipecraft/session-brief.txt, in$XDG_CACHE_HOME/wipecraft/if that variable is set to an absolute path. A folder namedrefresh.locksits next to it while a refresh runs.--no-githubmeans this script never callsgh. - When a session ends (SessionEnd) inside a linked git worktree, the script runs
wipecraft scan --json --source worktrees, reads the result on your Mac withjqorpython3, and prints one line to your terminal about that worktree. In a main repository it runs nothing. - Tidying after a session is off unless you turn on "Tidy finished worktrees after Claude Code sessions" in Settings > Agents. The script reads that switch with
wipecraft config get claudeAutoTidy. When it is on, a background job runswipecraft clean <worktree id> --applyafter a short delay, with the same checks as the command. - Apart from the cache folder above, the scripts write nothing themselves. The tidy job's
wipecraft cleanwrites only to the stores listed under "What Wipecraft stores". Ifwipecraftis not on your PATH the scripts do nothing. - The scan at session end follows the app's GitHub setting, so
ghcan run there when the setting is on.
The plugin's two commands run wipecraft through Claude Code. /wipecraft:status runs wipecraft scan --json; Claude reads the result, which includes folder paths, and it goes to Claude's provider as part of your conversation. The line printed at session start goes into the session the same way. /wipecraft:tidy shows a dry run first and runs --apply only after you answer yes in the chat.
Coding agents (MCP)
wipecraft mcp is a command that coding agents such as Claude Code, Codex and Cursor can start on your Mac. It is the same tool as the command line in Wipecraft's Contents/Helpers folder.
- It talks to the agent that started it only through standard input and output. Its source contains no network connection and no listening port, so it makes no network call of its own. (If the optional
ghcheck is on, a scan it runs can startgh, as in section 6.) - It is read-only by default. An agent can ask what can be freed, list and explain items, and see what is in Quarantine. Nothing is changed by these requests, and no file or folder is created.
- Cleaning needs two things: "Allow agents to clean through MCP" turned on in Settings > Agents (default: off), and a valid license. For each id the agent names, cleaning does what
wipecraft clean --applydoes: caches, logs and temporary files that their app rebuilds are removed directly and cannot be restored, other files move to Quarantine for 7 days, session histories go to the Archive, and a finished worktree is removed withgit worktree removeafter its ignored files that are not build output move to Quarantine. The tool description tells the agent which items cannot be restored. Actions marked "Irreversible" are refused. clean_itemsreads your license from the Keychain on every call, also when the agent only asks for a plan (apply: false), so macOS may ask for permission in the process the agent started. The read tools never read the license.- A scan an agent starts follows your scan settings, including the optional GitHub check in section 6.
- An agent you connect receives scan results (titles, paths and sizes) over this local connection. Wipecraft itself sends nothing to any network. An agent backed by a cloud service, for example Claude Code, Codex or Cursor, may send what it receives to its own provider. That is your choice, and it falls under that agent's own privacy terms, not this page.
What Wipecraft never sends
Wipecraft sends none of the following anywhere. A coding agent you connect receives scan results (titles, paths, sizes) over the local connection described above; what that agent does next is your choice and its own terms.
- File names and paths.
- Scan results: what was found, sizes, dates, safety labels.
- The deletion log, Quarantine and Archive lists, and monitoring history.
- The contents of anything Wipecraft measures, moves or archives.
- Your Full Disk Access setting and other preferences.
Notifications from monitoring are local macOS notifications. They do not go through a server.
Local logs
- Deletion log. Every action Wipecraft takes is recorded on your Mac: when, which item, its title, its size, the kind of action (quarantine, archive, direct removal or a tool's command) and whether it was irreversible. It is never sent anywhere. Settings > "Export Deletion Log…" saves it as a CSV file where you choose.
- macOS system log. When a monitoring check fails, Wipecraft writes the error type and code to the macOS unified log, without file names or paths. That log stays on your Mac like every other app's.
What Wipecraft stores on your Mac
| What | Where | Holds |
|---|---|---|
| App data folder | ~/Library/Application Support/Wipecraft/ | The files below. |
| Quarantine list | …/Wipecraft/quarantine-manifest.json | Original location of each quarantined item, so it can be restored. |
| Archive list and archives | …/Wipecraft/archive-manifest.json, …/Wipecraft/Archives/ | Compressed session histories you archived, and where they came from. |
| Deletion log | …/Wipecraft/deletions.jsonl | Time, item, title, size, kind of action, and whether it was irreversible. Export it as CSV in Settings. A directly removed item leaves only this entry. |
| Monitoring history | …/Wipecraft/growth.jsonl, …/Wipecraft/alert-ledger.json | Sizes from daily checks, and which alerts were already sent. |
| Operation lock | …/Wipecraft/store-operation.lock | A lock file. It makes the app and the wipecraft command take turns when they move files. Created the first time something is moved. |
| Plugin summary | ~/Library/Caches/wipecraft/session-brief.txt, and a refresh.lock folder while it refreshes (under $XDG_CACHE_HOME/wipecraft/ if that variable is set to an absolute path) | One line from the Claude Code plugin: the total that can be freed and up to three source names with sizes. Only exists if you installed the plugin. |
| Quarantine folders | ~/.Wipecraft-Quarantine/ on your startup disk, and .Wipecraft-Quarantine at the top of any other disk you cleaned | Files you removed that their app does not rebuild, for 7 days. |
| License | Keychain item com.blitzcortex.wipecraft.license | Your license key and activation. |
| Preferences | ~/Library/Preferences/com.blitzcortex.wipecraft.plist | Settings such as monitoring and developer mode. |
| Updater data | ~/Library/Caches/com.blitzcortex.wipecraft/ | Update downloads, if any. |
| Network storage | ~/Library/HTTPStorages/com.blitzcortex.wipecraft/ | Created by macOS for the app's web requests (license calls). |
| Window state | ~/Library/Saved Application State/com.blitzcortex.wipecraft.savedState/ | Created by macOS to restore windows. |
How to remove everything
- Decide about Quarantine and Archives first. Restore anything you want to keep. Archives hold your archived session histories; once you delete the Archives folder, they are gone.
- Free the license activation. Settings > License > "Remove from this Mac". This frees one of your 2 activations.
- Turn off "Launch at login" in Settings, if you turned it on. If you installed the Claude Code plugin, remove it in Claude Code, and remove the MCP entry you added for Claude Code, Codex or Cursor. Delete the
wipecraftlink you made in/usr/local/bin, if any. - Quit Wipecraft from its menu, or from the menu bar icon.
- Delete the app from Applications.
- Delete its data:
~/Library/Application Support/Wipecraft/~/.Wipecraft-Quarantine/, and.Wipecraft-Quarantineon other disks. These folders are hidden. In Finder, press Command-Shift-Period to show them.~/Library/Caches/com.blitzcortex.wipecraft/~/Library/Caches/wipecraft/(the plugin summary, if you used the plugin)~/Library/HTTPStorages/com.blitzcortex.wipecraft/~/Library/Saved Application State/com.blitzcortex.wipecraft.savedState/- Preferences: in Terminal,
defaults delete com.blitzcortex.wipecraft - The Keychain item
com.blitzcortex.wipecraft.license, in Keychain Access.
- Optional: remove Wipecraft from System Settings > Privacy & Security > Full Disk Access.
To have your purchase data and activation labels deleted, write to us at the address below.
Your rights
You can ask what personal data we hold about you, and ask us to correct or delete it. The personal data we hold:
- your purchase details (email address and order details), held at Polar;
- your license activations, held at Polar, including their labels: the names of the Macs you activated, which often contain a person's name.
We keep no request logs on the update server. Cloudflare, which hosts the update files, processes those requests under its own privacy policy.
Write to the address below. You can also lodge a complaint with the French data protection authority (CNIL).
Contact
BlitzCortex — Berkay Turk EI, SIREN 103 051 652
Email: support@blitzcortex.com
Web: wipecraft.app