Free and open source for macOS

Free up disk spacewithout deleting the wrong file.

Dusty lives in your menu bar and reclaims the gigabytes hiding in caches, logs, and developer junk. It can only ever delete from a fixed allowlist, and it shows you every path and its size before it removes a thing.

$ brew install --cask yagcioglutoprak/tap/dusty
MIT licensed Signed & notarized by Apple macOS 13+
Dusty scanning and revealing reclaimable disk space across cleanup levels
Why you can trust it

Built so it cannot delete the wrong thing.

Most "Mac cleaners" are closed software that deletes files you cannot see. Dusty is the opposite. The deletion logic is a separate, unit-tested Swift package, and a single validator is the only thing that can authorize a delete. These are the rules it enforces.

01

Allowlist only

A path is deletable only if it descends from an explicit target in the registry. There is no "delete everything except" logic anywhere in the codebase. The rules are data you can read.

02

Protected folders off-limits

Documents, Desktop, Photos, Mail, iCloud Drive, and Keychains are rejected even as path prefixes.

03

No symlink escapes

Symlinks are never followed, so a delete can never walk out of an allowed directory.

04

Boot volume only

Confined to the volume your home folder lives on. Never runs as root, never uses sudo.

05

Dry run

Flip one toggle to scan and report exact bytes, without removing a thing.

06

Move to Trash, then undo

Developer and Deep cleanups can land in the Trash, with an undo window right after. Nothing is irreversible by surprise.

07

A written record

Every action, with timestamp, path, and exact bytes, is appended to a plain JSON log in Application Support you can open any time. Nothing happens off the books.

"ts":"2026-05-31T22:14Z", "path":"~/Library/Caches/…", "bytes":248512
What it cleans

Three levels, from "anytime" to "look before you leap."

Level 01

Safe

User caches, app logs, the Trash, and browser caches. The everyday stuff that piles up on its own.

Regenerates on its own. Zero functional impact.

Level 02

Developer

Xcode DerivedData and simulators, plus caches for npm, pnpm, pip, Cargo, Go, Homebrew, Gradle, CocoaPods, SwiftPM, JetBrains, and Unity.

Rebuilds or re-downloads next time you need it.

Level 03

Deep

Old .dmg and .pkg installers in Downloads, Xcode archives, unused simulators, and aged diagnostic logs.

Per-file checklist. Nothing goes without a tick.

Some paths ask for Full Disk Access
How it compares

The honest version, against the paid cleaners.

DustyCleanMyMac and similar
PriceFree, MIT licensedPaid license or subscription
Source codeOpen, every rule is readableClosed
What it can deleteA fixed allowlist, nothing elseBroad categories, not all visible
Sizes shown before deleting Always, per pathVaries
Undo and a deletion log YesVaries
Account or telemetryNoneOften
Open source

Cleanup targets are data, not code.

Adding a cache is a single entry that the scanner, the UI, and the safety checks all pick up. That is the whole contribution model, so pull requests are easy.

XcodenpmpnpmpipCargoGoHomebrewComposerGradleCocoaPodsSwiftPMJetBrainsUnityDocker
CleanupTarget(
    id: "dart-pub-cache",
    displayName: "Dart and Flutter pub cache",
    level: .developer,
    pathTemplates: ["~/.pub-cache"],
    category: "Package Manager",
    deletesContentsNotDirectory: true,
    regenerates: true
)  // one entry, everywhere it needs to be

Get your disk space back.

Free, open source, signed and notarized. Installs in one line.

$ brew install --cask yagcioglutoprak/tap/dusty