Mac Cleaner Pro logoMac Cleaner Pro
For developers

The Mac cleaner that speaks Xcode, npm and Gradle.

Most cleaners treat a 30 GB DerivedData folder as an anonymous blob. This one knows what made it, whether it’s safe to remove, and the command that brings it back.

Developer Junk listing build artefacts with sizes, safety badges and the restore command for each
10.66 GB in one pass here. Each row carries its restore command, and anything the scanner can't confirm is flagged for review rather than pre-ticked.

It checks the tool is still there

An artefact is only provably safe to delete if whatever produced it can produce it again. So before a folder is offered as safe, the scanner looks for the manifest beside it:

FolderConfirmed byRestore with
node_modulespackage.jsonnpm install
targetCargo.tomlcargo build
PodsPodfilepod install
buildbuild.gradle / pom.xml./gradlew build
.dart_toolpubspec.yamlflutter pub get
.nextpackage.jsonnpm run build

21 folder types are detected in total. Eleven require a confirming manifest like the above; the rest — .gradle, __pycache__, .pytest_cache, .ruff_cache and friends — are pure toolchain caches with no project context. venv, .venv and .tox are always flagged review-recommended, never auto-selected, because a virtualenv can hold things a lockfile doesn’t describe.

It only walks where you point it

Scanning starts from your own code directories, and /System/, /Library/, /Applications/ and ~/Library/ are never descended into. Symlinks aren’t followed. Matches aren’t recursed into, so a monorepo is walked once rather than once per node_modules.

And everything routes through the same trash-first deletion path as the rest of the app — nothing is rm -rf’d, and you have 30 days to undo. How deletion works →

Download freeRead the source