Your 256 GB MacBook is full? Here are the 7 places your GB actually went
Disk full even though you barely installed anything? These are the 7 real culprits on macOS and how to find them with Terminal — no CleanMyMac required.
I bought my 256 GB M1 Air in 2022 thinking “I don’t store movies, 256 is plenty.” Exactly 8 months later, macOS slapped me with that yellow “Your startup disk is almost full” notification — even though in my head I hadn’t done much.
I opened System Settings → General → Storage, and Apple drew me a pretty colored bar saying “Documents: 89 GB, System Data: 76 GB, Developer: 23 GB”… without telling me what specifically was taking the space. That’s on Apple, not you.
Two hours in Terminal later, I found the 7 culprits. Here they are — ordered from easiest to nuke to ones that need care.
1. ~/Library/Caches — usually 5 to 30 GB
Every app you install keeps its own cache in ~/Library/Caches/. Some are civilized — a few MB. Some aren’t:
- Chrome / Brave / Arc: 2–8 GB (especially if you keep tabs locked open for months)
- Slack: 3–15 GB if you’re in multiple workspaces
- Spotify: 2–10 GB
- Figma Desktop: 1–5 GB
- Zoom: 1–3 GB
Find out who’s hogging:
du -sh ~/Library/Caches/* 2>/dev/null | sort -hr | head -20
You’ll see the top offenders instantly. Deleting ~/Library/Caches/<AppName> is safe: the app rebuilds on demand. Worst case is that the first load after deletion is a bit slow.
2. Xcode DerivedData + iOS Simulators — potentially 20–50 GB
If you’ve ever opened Xcode (even once), this folder is a landmine:
du -sh ~/Library/Developer/Xcode/DerivedData
du -sh ~/Library/Developer/CoreSimulator/Devices
DerivedData is old build artifacts. Delete freely (Xcode rebuilds next time):
rm -rf ~/Library/Developer/Xcode/DerivedData/*
CoreSimulator holds every iOS Simulator you’ve ever booted. A fully-featured iOS 17 simulator is ~7 GB. If you have iOS 15, 16, 17, 18 multiplied by device types (iPhone 12, 14, 15, SE, iPad…), 30 GB is typical. Prune unused ones:
xcrun simctl delete unavailable
That removes all simulators belonging to iOS versions you’ve uninstalled. For deeper clean, Xcode → Window → Devices and Simulators → delete manually.
3. node_modules in old projects — potentially 10–80 GB
An average freelance dev has 20–100 project folders scattered across ~/Dev, ~/Sites, ~/Workspace. Each node_modules is 200 MB to 2 GB. I go deep on this in my Dev Purge post, but the quick scan is:
find ~ -type d -name "node_modules" -prune 2>/dev/null \
-exec du -sh {} + | sort -hr | head -20
If the project hasn’t been touched in 6+ months, rm -rf node_modules/. When you need to dev it again, npm ci or pnpm install gets it back in a minute.
4. Docker images & volumes — typically 10–40 GB
If you use Docker Desktop or OrbStack, check:
docker system df
You’ll see 3 rows: Images, Containers, Volumes. If the total exceeds 10 GB (it usually does), clean up:
docker system prune -a --volumes
This removes all images not used by a container, stopped containers, and orphaned volumes. You’ll have to pull images again next time — but if you’re between projects, it’s safe.
5. Time Machine local snapshots — silently 20–100 GB
The worst offender. Even if you’ve never connected an external Time Machine drive, macOS creates local snapshots as “backup insurance.” They’re marked purgeable — meaning “I’ll delete these when space is tight” — except in practice they often don’t purge in time. I wrote a dedicated post on purgeable space if you want the full picture.
Check how many you have:
tmutil listlocalsnapshots /
If you see dozens, nuke them all:
for s in $(tmutil listlocalsnapshots / | sed 's/com.apple.TimeMachine.//' | sed 's/.local//'); do
sudo tmutil deletelocalsnapshots "$s"
done
Only do this if you have a real backup (external drive or cloud). Local snapshots are your last-ditch safety net against accidental rm -rf.
6. Mail.app downloads — 1–15 GB if you use Mail
If you use Mail.app with a Gmail or Outlook account that’s been active for 5+ years, every attachment is cached locally:
du -sh ~/Library/Mail
Don’t delete by hand — use Mail → Mailbox → Erase Junk/Trash, then Mailbox → Rebuild per account.
7. Downloads and Desktop — typically 5–30 GB
Stupid simple, and everyone forgets. I once found a xcode_15.2.xip weighing 7.5 GB that had been sitting there for 4 months.
du -sh ~/Downloads ~/Desktop
Open Finder, sort by Size desc, trash the old .dmg, .xip, .iso, videos. Five minutes recovers 10 GB routinely.
The tally
On my 256 GB machine, that cleanup recovered exactly 94 GB. I didn’t uninstall a single app, didn’t delete any active project, didn’t have to buy an external drive.
macOS is “self-managing” on paper. In practice it hoards aggressively if you develop or run heavy apps.
Want this in a single click? I’m building Molecule — a native macOS app (SwiftUI) that handles all 7 places above with a preview-first UI, zero telemetry, and it’s free. Download and use.