Why is System Data taking up so much space on my Mac?

System Data is taking up space on your Mac because "System Data" isn't a folder — it's whatever macOS can't classify, lumped into one gray bar. On a developer's Mac that gray bar is mostly regenerable dev junk: ~/Library/Developer/Xcode/DerivedData, ~/.gradle, Docker.raw and orphaned node_modules. GRUJ finds it and deletes it — and never touches the legitimate system part.

Download free brew install --cask fan2dev/tap/gruj

3 months free · no card · direct download (outside the App Store)

Settings shows a 90GB gray bar and won't let you in

Open Apple menu > System Settings > General > Storage and hover the dark-gray stripe: "System Data," 60, 90, sometimes 100GB+ (real Apple-forum reports hit 115GB and 200GB on Sequoia). macOS won't break it down or let you open it — The Eclectic Light Company calls that number "little more than a guesstimate." It's a leftover: total disk minus everything macOS knows how to label. On a dev Mac the unlabeled remainder is huge because your build caches live in hidden folders Finder won't show you (Cmd+Shift+. to reveal). Restarting clears a couple GB of temp files and swap — but your 50GB of DerivedData stays exactly where it was. macOS won't purge it for you.

01

1. See where it actually went

Run gruj scan. It walks the hidden dev caches macOS hides inside System Data — DerivedData, ~/.gradle, CoreSimulator devices, Docker.raw, npm/pnpm/bun stores, ~/.pub-cache, Cargo target dirs, CocoaPods, ~/Library/Caches — and shows the real size of each, like du -sh would, but all at once.

02

2. Pick what's safe to nuke

Every item is regenerable: build output, download mirrors, simulator runtimes. Tick the ones you want gone. GRUJ never lists your projects, repos, source or app data — only junk your tools rebuild on the next build, sync or pull.

03

3. Confirm and reclaim

Confirm and GRUJ deletes safely — it even forces Docker to actually shrink Docker.raw (which docker system prune leaves at full size). System Data drops by the dev junk it was hiding; the legitimate system part stays untouched.

Xcode DerivedData & Archives

10+ Xcode projects routinely stack 30-50GB in ~/Library/Developer/Xcode/DerivedData (forum reports hit ~90GB under ~/Library/Developer). GRUJ clears it safely — Xcode regenerates on the next build.

Docker.raw that won't shrink

docker system prune frees space inside the VM but leaves ~/Library/Containers/com.docker.docker/.../Docker.raw at full size — 20-50GB of dead weight. GRUJ forces the reclaim Docker won't do on its own.

Gradle, NDK & simulator runtimes

~/.gradle/caches and old iOS simulator runtimes/devices each balloon to 5-26GB+. GRUJ clears them (closing Android Studio first to avoid lock errors) so the next sync re-fetches clean.

node_modules, pnpm, bun, Cargo, pub-cache

Orphaned node_modules (200-500MB each), global stores in ~/.npm and ~/Library/pnpm, ~/.pub-cache, and Rust target/ dirs (the biggest multiplier — 10-100GB+). GRUJ surfaces every one.

Caches, CocoaPods, pip, Homebrew

~/Library/Caches, ~/Library/Caches/CocoaPods, ~/Library/Caches/pip, $TMPDIR and ~/Library/Caches/Homebrew (often 10GB+ for long-term users). All regenerable mirrors — re-downloaded on demand.

Only regenerable. Never your work.

GRUJ deletes nothing it can't justify: build output, caches, mirrors, temp files. It never touches projects, repos, source code, databases, your real System Data, swap or APFS snapshots.

GRUJ vs. clearing System Data by hand

GRUJ Settings / Finder
Breaks down what's in System Data Yes — per-tool, real sizes No — one gray number on hover
Finds hidden ~/Library & dotfolder caches Yes — scans them all No — Finder hides them by default
Knows DerivedData, Gradle, Docker, node_modules Yes, by design No — "Optimize Storage" ignores them
Forces Docker.raw to actually shrink Yes No — stays full after prune
Risk of deleting the wrong thing None — regenerable only High — manual rm -rf typos
Steps to clean everything scan, pick, confirm 8+ separate commands

FAQ

What is System Data on Mac?

System Data is the dark-gray stripe in System Settings > General > Storage. It's not a real folder — it's a leftover macOS calculates by subtracting everything it can classify (Apps, Documents, Photos, Mail...) from total disk usage. Whatever's left gets dumped into "System Data." It was called "Other" on macOS 11 and earlier.

Why is System Data taking up so much space on my Mac?

On a normal Mac it's typically 20-50GB of caches, logs, swap and snapshots. On a developer's Mac it's far bigger because hidden dev caches — DerivedData, ~/.gradle, Docker.raw, node_modules, simulator runtimes — get counted there and can add 50-100GB+ that macOS never warns you about.

How do I reduce System Data on my Mac?

Find and delete the regenerable caches macOS lumped into it. On a dev Mac the biggest wins are ~/Library/Developer/Xcode/DerivedData, ~/.gradle/caches, Docker.raw and orphaned node_modules. Run gruj scan to see every one with its real size, then pick what to remove. macOS won't shrink System Data on its own.

What's the best way to clear System Data on a developer Mac?

The fastest safe way is a tool that knows dev caches: run gruj scan, review the per-tool sizes, tick the regenerable junk, and confirm. Doing it by hand means 8+ different commands (rm -rf DerivedData, docker system prune, pod cache clean --all, brew cleanup...) across multiple tools, some risky to mistype.

Does restarting reduce System Data on Mac?

A little. Restarting clears swap, frees memory on Apple Silicon, and drops temp files apps remove on quit — usually 1-3GB. But it does nothing to your dev caches: DerivedData, ~/.gradle, Docker.raw and node_modules survive every reboot untouched.

Is it safe to delete DerivedData, Docker.raw or ~/.gradle?

Yes — all three are regenerable. Xcode rebuilds DerivedData on the next build, Docker recreates its disk image, and Gradle re-fetches caches on the next sync (close Android Studio first to avoid file locks). GRUJ only ever deletes regenerable junk like this, never your projects or source.

Will GRUJ delete legitimate System Data or break macOS?

No. GRUJ does not vacuum "System Data" as a category and never touches swap, APFS snapshots, Spotlight indexes or OS support files. It only removes the regenerable dev caches hiding inside that gray bar — the part your tools rebuild automatically.

Why doesn't macOS Tahoe (26) show what's inside System Data?

By design — it's an estimated leftover, not an indexed folder, so System Settings shows a single gray number on hover and won't let you open it. The name "System Data" is the same on Ventura, Sonoma, Sequoia and Tahoe (26); it was "Other" on macOS 11 and earlier.

Empty the gray bar of dev junk

Free for 3 months, no card. GRUJ scans the hidden caches inside your System Data and reclaims the 50GB+ macOS won't show you. macOS 13+. Direct download (Apple-notarized) or brew install --cask fan2dev/tap/gruj.

Download free