Work top-down from the largest items, prefer regenerable data, and move everything through the Trash. This is the order that avoids both wasted effort and data loss.
Deleted files in the Trash still occupy the disk. Empty it. Then be aware that macOS also reports purgeable space — Time Machine local snapshots and evictable cloud files — which Finder may count as available even though macOS only reclaims it under pressure. Run tmutil listlocalsnapshots / in Terminal to see local snapshots. Leave them alone unless you have a specific reason; they are your local recovery points.
This is where most Macs hide tens of gigabytes. Everything below is build output or a cache — it comes back the next time you build, install or launch:
| Item | Typical location | Regenerates? | |---|---|---| | Xcode DerivedData | `~/Library/Developer/Xcode/DerivedData` | Yes, on next build | | iOS DeviceSupport | `~/Library/Developer/Xcode/iOS DeviceSupport` | Yes, on reconnect | | Simulator caches & devices | `~/Library/Developer/CoreSimulator` | Yes, via Xcode | | Xcode Archives | `~/Library/Developer/Xcode/Archives` | No — these are your release archives | | node_modules | Project folders | Yes, via `npm install` | | npm / yarn / pnpm cache | `~/.npm`, `~/.cache` | Yes | | Homebrew cache | `~/Library/Caches/Homebrew` | Yes | | pip / Cargo / Gradle / Maven / CocoaPods / SwiftPM caches | Various in `~/.cache`, `~/.gradle`, `~/.m2` | Yes | | Docker disk image | `Docker.raw` | Reclaimed via Docker's own prune | | iOS backups | `~/Library/Application Support/MobileSync/Backup` | No — these are real backups |
Two cautions. Xcode Archives are not build output — they are the archives you upload to App Store Connect; deleting them can mean re-archiving an old release. And Docker.raw should be shrunk with Docker's own tooling (for example docker system prune), not by throwing the file at the Trash, because the container runtime expects to own it.
Duplicate photo and video libraries are common, and so are accumulated copies of the same installer. Do not deduplicate by filename or size. A correct duplicate finder compares content: match on size first to group candidates cheaply, then hash — partial, then full SHA-256 — so a pair is only reported when the bytes are identical. Keep the first copy, stage the rest, and review the list before anything moves.
Sort by size, then look at age. The intersection of “very large” and “untouched for a year” is the highest-value, lowest-risk list on any disk: old exports, downloaded disk images, installer packages, screen recordings. Massive Disk reports both modification and last-opened dates so you can tell a file you abandoned from one you use daily.
Dragging an app to the Trash leaves its data behind — Application Support folders, caches, preferences, containers, logs, launch agents. A proper uninstaller removes the bundle and those associated files. Check what it's removing first, and don't uninstall anything that belongs to the operating system or to your organisation's security tooling.
/System and the sealed system volume./private/var/db and macOS's own caches.~/Library — clear those from within the owning app.Freeing space is a one-off; keeping it is a routine. Scan monthly, and the moment the same folder appears at the top of the list three months running, that's the cache to automate or the project to archive. Massive Disk's Snapshots feature captures the shape of a scan so you can compare before and after and see exactly which folder grew — useful for spotting a runaway log or a sync client quietly filling the disk.
Finally, delete recoverably. Every removal should land in the Trash. A tool with a permanent-delete button is a tool that can turn one mis-click into an unrecoverable loss.
Empty the Trash, then clear developer caches: Xcode DerivedData, iOS DeviceSupport and Simulator data, package-manager caches, and Docker's disk image. They are regenerable and often account for tens of gigabytes.
Yes. DerivedData is intermediate build output that Xcode recreates on the next build. Xcode Archives are different — those are your release archives and should be kept.
Briefly, yes — the cache is rebuilt the next time the app or tool runs. That one-time cost is usually far smaller than the space recovered.
Massive Disk is a native Apple Silicon app that maps every byte of your storage across six visualizations — then gives you safe, reversible ways to get space back. Scanning is free forever; cleanup tools are Pro.