In System Settings → General → Storage, System Data is a remainder, not a single directory. On a developer Mac it often includes Xcode trees, Docker’s VM disk, simulator runtimes, package caches, editor caches, and local Time Machine snapshots. There is nothing to “open and delete.” Reclaim in the order below. Do not disable SIP. Do not delete /System.

The order

  1. Xcode caches (DerivedData, DeviceSupport, simulators — keep Archives / dSYMs)
  2. Docker prune — never delete Docker.raw
  3. Unused simulator runtimes and devices
  4. Package-manager caches (Homebrew, npm, yarn, pnpm, and the rest you actually use)
  5. IDE and AI caches (settings stay)
  6. Time Machine thinning with thinlocalsnapshots only — no snapshot wipe
  7. User caches under ~/Library/Caches, reviewed one folder at a time

Stop when Storage looks sane. Later steps are smaller and easier to regret. After any move to Trash, empty Trash only when you are sure — space returns then, not at the first drag.

1. Xcode

Quit Xcode, measure with du, then remove regenerable trees. Full walkthrough: How to clean Xcode caches safely on Mac. Keep ~/Library/Developer/Xcode/Archives unless dSYMs already live elsewhere.

2. Docker prune

Docker Desktop’s sparse Docker.raw often inflates System Data in Finder even when allocated size is smaller. Use docker system df and prune unused images, containers, and build cache. Do not delete the VM disk. Details: Clean Docker disk space on Mac.

3. Unused simulators

Old iOS runtimes under ~/Library/Developer/CoreSimulator are a frequent System Data spike. Remove runtimes you no longer boot in Xcode → Settings → Platforms and unused devices in Window → Devices and Simulators. xcrun simctl delete unavailable only drops broken device records. Keep the runtime you still ship against.

4. Package-manager caches

Prefer each tool’s own cleanup so you do not trash a global store you still need:

zsh — package caches
$ brew cleanup
$ npm cache clean --force
$ yarn cache clean
$ pnpm store prune

Skip commands for tools you do not install. CocoaPods, uv, and others have their own cache/clean flags — use those rather than deleting ~/.ssh or project sources.

5. IDE and AI caches

Editors and local AI tools accumulate Cache, CachedData, and GPU/cache folders under ~/Library/Caches and ~/Library/Application Support. Typical names on a developer Mac include Cursor, VS Code, Windsurf, Zed, and JetBrains. Delete cache directories, not User settings, snippets, or model files you still want offline. Quit the app first. Measure with du -sh before Trash.

6. Time Machine thinning only

Local snapshots count toward System Data. Thin them; do not wipe the set. tmutil thinlocalsnapshots asks macOS to free reclaimable snapshot space for a byte target. Do not run a full local-snapshot delete.

zsh — Time Machine
$ tmutil listlocalsnapshots /
# thin only — example: ask for ~20 GB, urgency 4
$ tmutil thinlocalsnapshots / 21474836480 4

7. User caches — last

du -sh ~/Library/Caches/* lists large app caches. Review names you recognize, then Trash those folders. Leave ~/.ssh, Documents, Desktop, and project trees alone. Blocked on purpose: SIP paths, /System, /Library, /usr. If a remaining giant is still Docker’s VM disk, go back to prune — never delete Docker.raw.

Optional review UI

This order works in Finder and Terminal with no extra app. If you want one scan afterward, MacOSCleaner Smart Cleanup can list the same kinds of developer categories (Xcode, Docker prune mapping, package managers, IDE/AI caches, snapshot thinning) with risk badges so you confirm each selection. Direct removeItem for confirmed caches; Trash for review-only categories, app uninstaller, and disk analyzer. Optional, Apple Silicon, macOS 26.0+.

Frequently asked questions

What is macOS System Data?
System Data in Settings → General → Storage is a remainder bucket: caches, local snapshots, developer data, VM disks, logs, and other files Apple does not file under Apps, Documents, or iCloud. It is not one folder you can delete.
Should I disable SIP to shrink System Data?
No. Disabling SIP and deleting /System will not safely reclaim developer storage. Stay in your home folder and use the reclaim order on this page.
How do I thin Time Machine local snapshots?
Use tmutil thinlocalsnapshots with a mount point and a byte target. Do not run a full local-snapshot wipe. Thinning asks macOS to free reclaimable snapshot space; wiping removes the safety net.

Shrink System Data safely with MacOSCleaner

Tackle bloated "System Data" without risky terminal hacks or disabling SIP. MacOSCleaner safely uncovers hidden caches, developer runtimes, orphaned build artifacts, and app leftovers. 100% native Swift 6, zero telemetry; direct removeItem for confirmed caches, Trash (trashItem) for review-only, uninstaller, disk analyzer, and duplicates.