System Data is the Storage category for everything macOS doesn't file elsewhere: caches, logs, Time Machine local snapshots, virtual machine images and app data. On a developer Mac the big items are usually Docker's disk image, simulators and local snapshots. Don't delete "System Data" itself: run du on your Library folder and tmutil listlocalsnapshots / to find what's large, then clean each item with the tool that owns it.
Why is System Data so big?
Open System Settings › General › Storage and hover the bar. On a fresh Mac, System Data is often 10–20 GB. On a Mac used for development for a year, 80–200 GB is common, and the Storage panel won't tell you why: you can't click into it.
Apple describes it only as "a general category that measures the storage space used by all Apple and third-party files" that don't fit a narrower category. In practice, on most Macs, that means:
- Time Machine local snapshots. When your backup disk isn't connected, Time Machine keeps hourly snapshots on the internal disk. They hold on to the space of files you've already deleted.
- Caches and logs in
~/Library/Caches,~/Library/Logsand their system-wide versions. - Virtual machine disk images. Docker Desktop keeps every image, container and volume in one file,
Docker.raw, inside~/Library/Containers. UTM, Parallels and OrbStack keep theirs in similar places. - Simulator data. iOS simulator devices and runtimes can reach tens of gigabytes. Some Macs show them under Developer, others fold them into System Data.
- App support files in
~/Library/Application Support: chat apps' media caches, Electron apps, game launchers.
Find what's really inside it
Three read-only commands tell you more than the Storage panel. None of them deletes anything.
1. Local snapshots.
$ tmutil listlocalsnapshots /If this lists dozens of com.apple.TimeMachine... dates, snapshots are part of your System Data.
2. Your Library, largest last.
$ du -sh ~/Library/* 2>/dev/null | sort -h | tail -12On developer Macs, Containers (Docker), Developer (Xcode and simulators) and Caches are usually near the bottom. Go one level deeper on whichever is largest:
$ du -sh ~/Library/Containers/* 2>/dev/null | sort -h | tail -8 $ du -sh ~/Library/Developer/* 2>/dev/null | sort -h | tail -8
3. Every developer cache at once. diskreceipt is a free Terminal tool that prints Xcode, Docker, node_modules and package manager caches with their sizes, a safe, check or keep label, and the command to clean each. It only reads.
$ brew install abdiraimov-otabek/tap/diskreceipt $ diskreceipt

What's safe to remove
Time Machine local snapshots
If you have a real backup on another disk or in the cloud, local snapshots are safe to remove. Apple keeps hourly snapshots for 24 hours and deletes them "as they age or as space is needed", so this is only for when you need the space now.
# remove all local snapshots on the startup disk $ tmutil deletelocalsnapshots /
Local snapshots are restore points on the same disk, not a backup. Deleting them loses those hourly versions, not your current files. Make sure your real backup is up to date first.
Docker's disk image
Don't delete Docker.raw in Finder: it holds every image, container and volume. Prune inside Docker instead, starting with docker system df to see what's reclaimable. The Docker guide explains each prune command and why volumes need care.
Simulators and Xcode data
# remove simulators for runtimes you no longer have $ xcrun simctl delete unavailable
DerivedData, old DeviceSupport folders and simulator runtimes are covered step by step in the Xcode guide. All of it is rebuilt or redownloaded when needed.
App caches and logs
Folders inside ~/Library/Caches and ~/Library/Logs belong to individual apps, which recreate them. Quit the app first, then move its folder to the Trash. Leave Apple's own com.apple.* folders alone: macOS manages those itself.
Caches, logs, Docker images and build cache, DerivedData and unavailable simulators all come back on their own or with a rebuild. The cost is a slower first launch or build.
What not to touch
/System,/private/varand/Libraryfolders you don't recognise. macOS protects most of these, and the parts it doesn't protect can break apps or updates.~/Library/Application Supportand~/Library/Containerswholesale. They hold real data: app settings, local databases, mail, notes. Go folder by folder, and only for apps you've already uninstalled.- Cleaner apps that "clear System Data" in one click without showing you paths. If you can't see what it removes, you can't know it was safe.
Why it comes back
System Data grows back because the things inside it are working as designed: Time Machine snapshots while your backup disk is away, Docker layers with every build, simulator data with every Xcode release, caches with every app you use. A monthly check of the three commands above, or a Shedi scan, keeps it from creeping up to 200 GB again.
If System Data stays huge and none of the above explains it, restarting the Mac and running Disk Utility › First Aid on the startup disk is the next step: users on Apple's forums report System Data dropping sharply after both, typically from purgeable space finally being released.
