Dustloft
⚠ Your Mac is not telling you the whole story

You’re about to pay for storage you already own.

Macs routinely hide 50–200 GB behind one unhelpful label: System Data. Buy a bigger Mac and you pay hundreds for space that was already sitting on your disk. Dustloft finds it in about two minutes.

curl -fsSL https://raw.githubusercontent.com/kapil303196/dustloft/main/install-online.sh | bash
Takes about 10 seconds· Universal — Apple Silicon & Intel· or download the DMG

Free forever · Open source · No account · Nothing leaves your Mac · See what it finds first

What Finder tells you494 GB drive · 96% full
System Data — 187 GB. That’s all you get.
Media 92
Deps 46
Builds 20
Models 16
Docker 14
Xcode 13
Messaging media 92 GB Dependencies 46 GB Build output 20 GB Local AI models 16 GB Docker 14 GB Orphaned Xcode 13 GB
195 GBhanded back on the Mac this was built from, in one session
2 minfrom install to knowing exactly where your space went
$0forever. No subscription, no upsell, no telemetry

What is “System Data” actually made of?

It isn’t one thing. macOS files anything it can’t categorise under that label, then gives you no way to look inside. These are the things that quietly fill a drive — every one a category Dustloft scans.

  1. A forgotten screen recordingup to 500 GB
    Started by accident, never stopped
  2. Video editing scratch caches100–500 GB
    After Effects, Premiere, Resolve
  3. Docker disk image40–300 GB
    Defaults to eating all free space
  4. Virtual machines & emulators20–120 GB
    Parallels, UTM, Android images
  5. Leftovers from deleted apps10–100 GB
    Uninstalling never removes these
  6. Messaging app media50–100 GB
    Every photo anyone ever sent you
  7. Old iPhone backups10–80 GB
    One per device, kept forever
  8. Developer dependencies10–50 GB
    node_modules, venvs, package stores

Each bar spans the range commonly reported for that category in public macOS support threads. Dustloft reports what is actually on your disk — measured, never estimated.

The expensive way, and the free one

When a Mac fills up, the default answer is to pay — for a bigger machine, or for cloud storage every month, forever. Both are reasonable. Both are worth trying second.

Buy your way out

$200+

A storage upgrade is configured at purchase and can never be changed afterwards. Cloud storage is a subscription you keep paying for as long as the files exist. Neither tells you what was filling the disk in the first place.

Look first

Free

Two minutes to find out whether the space you’re about to buy is already sitting on your disk under a label macOS won’t explain. If it isn’t, you’ve lost two minutes. If it is, you’ve saved the upgrade.

Fast is easy. Not destroying anything is the hard part.

Everything Dustloft finds is sorted into three tiers, and the tier decides how much friction sits between you and the delete button. See the complete list of what it refuses to touch.

Regenerable

Caches, build output, dependencies, Docker images. Comes back on its own. This is all Quick Clean will ever touch.

Needs admin

Safe, but macOS wants your password. Every such item is batched into one prompt instead of one per file.

Permanent

Gone forever. Never bulk-selected, never in Quick Clean, gated behind a confirmation you tick yourself.

Four things it flatly refuses to do

  • Delete a .git directory. It offers git gc instead, and flags in red any repository whose history exists nowhere but your disk.
  • Touch Dropbox, iCloud Drive or any synced folder. A delete there propagates to every device you own. Not overridable.
  • Remove Docker volumes. Unused images, yes. The volumes holding your databases, never.
  • Claim it can reclaim “purgeable” space. No third-party app reliably can. Anyone promising it is overpromising.

The near-miss that wrote the rules

These rules came from an actual cleanup, not a checklist. This one came closest to a disaster.

One project’s .git folder was 2.2 GB. It had a GitHub remote configured, so deleting it looked obviously safe.

Running git ls-remote first told a different story. The remote authenticated successfully and returned zero refs. Nothing had ever been pushed. That local .git was the only copy of the project’s history in existence.

A repository with a remote configured looks backed up. It isn’t, until something has actually been pushed.

Dustloft runs that check for you, and never offers to delete a .git folder at all.

Nothing goes until you’ve seen it

Every item, with its full path and real size. Untick anything you want to keep — the total follows along.

Dustloft’s review screen listing 66 items totalling 26.36 GB, each with a checkbox, full path and size
Real disk usage, not apparent size — a sparse Docker image reporting 494 GB is shown at the 9.3 GB it actually occupies.

Two minutes from now you’ll know

One command. It fetches the latest release, installs it and opens it.

curl -fsSL https://raw.githubusercontent.com/kapil303196/dustloft/main/install-online.sh | bash

Universal build — Apple Silicon and Intel. Prefer a disk image? Download the DMG.

Will it delete something I need?

Not without showing you first. Everything is listed with its full path and real size, and you untick anything you want to keep. Items that cannot be recovered are never bulk-selected and need a separate confirmation. Quick Clean only touches things that rebuild themselves.

Why is my System Data so large?

macOS files everything it cannot categorise under that one label — caches, app containers, virtual machine disks, downloaded models, old device backups, local snapshots. It grows quietly and there is no built-in way to look inside. That is the exact problem Dustloft was built for.

Why does it need Full Disk Access?

Without it macOS hides the Trash, app containers and device backups, so sizes come out far lower than reality — and it asks separately for Desktop, Downloads and Documents. Dustloft asks once, up front, and explains why. macOS applies the permission only to a freshly launched app, so it restarts itself once.

Why the “unidentified developer” warning?

Notarisation requires a paid Apple Developer membership. The build is signed but not notarised. The one-line installer avoids the warning legitimately, because quarantine is applied to browser downloads and not to curl.

Does emptying the Trash actually free the space?

Usually, but not always. Root-owned items left by uninstalled apps often refuse to delete and sit there indefinitely. Dustloft spots those and removes them under a single administrator prompt.

How is it different from CleanMyMac?

Free, open source, no subscription. It also declines to do several things commercial cleaners advertise: it will not claim to reclaim purgeable space, will not delete a .git directory, and will not touch a cloud-synced folder. Fewer promises, no surprises.

Does it work on Intel Macs?

Yes. Every release is a universal binary built in CI and verified with lipo to contain both architectures.

Does anything leave my Mac?

No. There is no telemetry, no account and no server. The only network request it ever makes is checking GitHub for a newer version.