Safe to delete
Caches and build output every app rebuilds on its own. No cost.
removed for goodI got some if you need it.
A small macOS app that finds the caches, build output and tooling leftovers that silently eat a developer's disk, sorts them by how safe they are to remove, and deletes only what you tick.
System Settings tells you how much, never what. Backspacer grew out of a month of chasing that number on a 245 GB MacBook Air.
Most of it was Xcode, simulators, npm, Gradle, Docker, Electron apps and the AI tools' own caches, each one rebuildable, none of them visible from where macOS puts the number. Backspacer is the catalog of everything that chase found, with a Scan button in front of it.
Every entry is measured, explained, and placed by how safe it is to remove. You tick what goes; the dialog lists every item and its size before anything happens.
Caches and build output every app rebuilds on its own. No cost.
removed for goodComes back on the next build or install. Costs one slow build.
removed for goodReal data or tooling. Delete only what you no longer use.
moved to the TrashNeeded for current work. Shown so the numbers add up.
read-onlymacOS manages these itself — purged automatically or SIP-protected. Shown for accounting.
read-only77 entries in the catalog today, grouped like this. Multi-path entries open a Details list with a Delete per project, per simulator, per model, per app.
An app that deletes folders has to earn it. The rules are in the source, and the test suite runs the safety gate over every path in the shipped catalog.
Every disk operation takes a catalog entry id. The Swift side resolves it from its own copy of the catalog, so a bug or injection in the UI cannot delete anything the catalog doesn't already describe.
Home, Documents, Desktop, Pictures, Mail, Messages, Keychains, iCloud Drive, .ssh and anything outside the allowed roots are refused at any depth, after symlinks are resolved.
Real data is moved to the Trash so Finder can put it back. Caches and build output are removed for good, because parked in the Trash they would reclaim nothing.
Admin items go through macOS's own password prompt. The app never sees a password and there is no helper tool to trust.
Entries under the size you choose leave the list and can't be selected until you lower it again.
Every scan and delete, the exact commands, failures. About → Reveal log. Nothing is ever sent anywhere.
The source is public so you can check what the app does before handing it your disk, build it yourself, and propose catalog entries. The UI runs in a plain browser with a mock bridge; the app is a Swift package with no dependencies.
Backspacer is free for noncommercial use under the PolyForm Noncommercial License 1.0.0: use it, share it, read and modify the source. Commercial use needs a separate license from the author. The name and icon aren't licensed, so a modified build must be renamed. Full terms in LICENSE; pull requests are accepted under Apache-2.0.
The most useful things you can send are a bug report with the log attached, and a catalog entry: what the folder is, where it lives, which bucket and why, what brings it back. The issue templates ask exactly those questions.
# build the app from source (Xcode 16 or later) git clone https://github.com/anton-g-kulikov/backspacer.git cd backspacer scripts/build-app.sh open build/Backspacer.app # or just try the UI, no Xcode needed python3 -m http.server 8765 open http://localhost:8765/web/index.html