What is taking up “System Data” on a developer’s Mac

Where developer tools hide tens of gigabytes on macOS: Xcode, package manager caches, simulators, Docker and local snapshots, with commands to measure each.

The storage bar in System Settings groups everything it cannot classify into “System Data”. On a developer’s Mac that bucket is mostly tool caches in your home folder, not the operating system.

Measure the usual suspects

du -sh ~/Library/Developer ~/Library/Caches ~/Library/Containers \
       ~/.npm ~/.cache ~/.gradle ~/.m2 ~/.cargo ~/go/pkg 2>/dev/null | sort -h
WhereWhat it isClean it with
~/Library/DeveloperXcode DerivedData, archives, device support, simulatorsSee the Xcode guide
~/Library/CachesApp caches, plus Homebrew, pip, Yarn, JetBrains and othersThe owning tool, where it has a command (brew cleanup, pip cache purge)
~/.npm ~/.cachenpm cache; uv, Puppeteer, Playwright and many other toolsnpm cache clean --force, uv cache prune
~/.gradle ~/.m2Gradle caches and the Maven repositoryDelete ~/.gradle/caches; dependencies download again on the next build
~/.cargo ~/go/pkgCargo registry, Go module cachecargo cache -a (with cargo-cache), go clean -modcache
~/Library/Containers/com.docker.dockerDocker’s disk imagedocker system prune; see the Docker guide

Local Time Machine snapshots

tmutil listlocalsnapshots /

macOS keeps local snapshots and removes them by itself when space runs low, so they rarely need attention. They do explain why deleting a large folder sometimes frees nothing straight away.

Things that are not caches

Model weights in ~/.ollama or ~/.cache/huggingface, Python virtual environments, iPhone backups in ~/Library/Application Support/MobileSync, and anything under ~/Library/Mobile Documents (iCloud) are large and look like clutter, but deleting them loses real data or hours of downloads.

How Siftaway handles this

One scan covers all of the locations above, sorts them by size, says which tool owns each one and what it costs to rebuild, and keeps the “not caches” group visibly protected instead of offering it for deletion.