- Lever. Pull it for a dry run first.
Declutter-inator
A free, open-source way to clean up your Mac. It finds the gigabytes hiding in caches, build folders and old downloads, shows you every one, and removes only what you pick.
curl -fsSL https://declutter.kunalbagaria.com/install | sh
Paste it into Terminal. It installs one program to ~/.local/bin and runs on macOS 11 or later, on Apple silicon or Intel. You can read the script before you run it, or use Homebrew instead: brew install kunalbagaria/tap/declutterinator.
What it looks for
Everything it finds goes into one of three groups, so you always know what you’re agreeing to. If you’d rather free up disk space by hand, the guide to cleaning up your Mac covers each of these places and the commands to clear them.
- Safe to zap
- Things that grow back on their own: app caches, logs, the Trash, Xcode DerivedData, and the download caches of npm, Yarn, pnpm, Bun, pip, uv, Cargo, Gradle, Go, CocoaPods and Homebrew. These start out selected.
- Probably fine
- Things that cost a re-download or a rebuild:
node_modules,target,.venv,Podsand.nextfolders in projects you haven’t touched for a month, Docker images, old installers, and zip files sitting next to the folder you unzipped them into. - Your call
- Your own files: old downloads, very large files, apps you haven’t opened in six months, iPhone backups and Xcode archives. Nothing here is ever selected for you, and whatever you pick goes to the Trash, not away for good.
DISK 86% 425 GB of 494 GB used · 69 GB free = what the machine can reclaim without touching your own files SAFE TO ZAP caches & junk that grow back on their own 25.0 GB Application caches ··············· 9.6 GB Google 3.1 GB · com.spotify.client 2.0 GB · +72 more Xcode DerivedData ················ 7.9 GB MyApp 3.5 GB · Widgets 2.9 GB · +4 more npm cache ························ 3.6 GB Bun cache ························ 2.6 GB +9.9 GB more is shared with your projects (APFS clones) and isn't counted Headless browser downloads ······· 770 MB Puppeteer 478 MB · Playwright 287 MB Homebrew leftovers ··············· ~540 MB 32 old downloads & versions PROBABLY FINE safe, but costs a re-download or rebuild 34.6 GB Project build artifacts ·········· 26.5 GB 42 projects, 37 idle for 30+ days — web-app 1.8 GB · api 1.7 GB · +40 more Archives you already unzipped ···· 5.2 GB Photos-2025.zip 1.1 GB · assets.zip 798 MB · +79 more Installers & disk images ········· 2.9 GB Docker.dmg 612 MB · Figma.dmg 231 MB · +15 more YOUR CALL your files — never touched unless you pick them 27.3 GB Apps you don't use ··············· 15.8 GB not opened in 180+ days — Xcode 5.6 GB · GarageBand 1.1 GB · +21 more Large files ······················ 11.5 GB 500 MB or bigger — screen-recording.mov 2.2 GB · ubuntu.iso 1.4 GB · +13 more ❝ node_modules: the heaviest objects in the known universe. — on Project build artifacts ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ POTENTIAL LOOT 86.9 GB 25.0 GB zero-regret · 34.6 GB probably fine · 27.3 GB your call ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
What is claimed
A machine for reclaiming disk space, wherein:
- nothing is removed until you confirm, and
clean --dry-runlists every path first; - your own files go to the Trash, and only caches and build output are deleted outright;
- every path is checked again right before removal: it has to be inside your home folder, and
.ssh, Keychains, iCloud Drive, Mail and Messages are off limits; - it never follows a symlink and never wanders onto another disk;
- a
node_modulesfolder only counts if apackage.jsonsits next to it, and atargetfolder only if aCargo.tomldoes; - sizes are what files actually occupy, so space shared through APFS clones or hard links is never promised twice;
- the self-destruct button is not connected to anything.
Using it
declutterinator- Scan, read the report, then choose what to remove.
declutterinator clean --dry-run- List every path that would be removed. Changes nothing.
declutterinator clean --safe --yes- Clear everything in the safe group without asking. Good for a monthly cron job.
declutterinator big ~/Library -d 2- See what’s taking up space, folder by folder.
declutterinator dupes ~/Pictures- Find duplicate files, and tell real copies from APFS clones.
declutterinator categories- List everything it knows how to find.
Run the install line again to upgrade, or brew upgrade declutterinator if you used Homebrew. To uninstall, delete ~/.local/bin/declutterinator (or run brew uninstall declutterinator).