If your Mac is telling you storage is almost full, you are not alone. macOS accumulates gigabytes of caches, logs, simulator runtimes, and leftover app files that quietly fill your drive over months or years. This guide ranks 12 proven ways to free up disk space on Mac by the amount you can realistically reclaim, so you tackle the highest-impact tasks first rather than wasting time on scraps.
A note on safety: most of the items below are safe to delete because macOS or the relevant app will regenerate them on demand. A handful carry real risk and are labeled clearly. Cleaning is permanent — back up with Time Machine before any deep cleaning session.
| Method | Typical space recovered | Risk level |
|---|---|---|
| System Data / purgeable space | 10–60 GB | Low |
| Xcode DerivedData & caches | 5–40 GB | Low |
| iOS Simulator runtimes | 5–30 GB per runtime | Low |
| User & system caches | 1–10 GB | Low |
| Large & duplicate files | 1–20 GB | Medium |
| App leftovers after uninstall | 1–10 GB | Low |
| Homebrew cache | 0.5–5 GB | Low |
| Trash | 0.1–20 GB | None |
| Language files | 0.5–3 GB | Medium |
| Mail attachments & downloads | 0.5–5 GB | Medium |
| Time Machine local snapshots | 1–20 GB | Low |
| Node / pip / yarn caches | 0.5–10 GB | Low |
1. System Data and purgeable space (10–60 GB)
Open Apple menu > About This Mac > More Info > Storage (macOS Ventura and later) or System Information > Storage. If "System Data" consumes more than 15 GB, caches, APFS snapshots, and purgeable files have piled up. macOS marks data as purgeable when it can delete it under pressure, but it does not always do so proactively.
The fastest single-step solution is to use Crumb — it scans and safely removes system caches, user caches, logs, temp files, and purgeable space in one click, typically recovering more gigabytes than any other single method. If you prefer the manual route, keep reading the individual steps below.
2. Xcode DerivedData and build caches (5–40 GB)
Every time you build an Xcode project, macOS writes compiled objects, indexes, and module caches to ~/Library/Developer/Xcode/DerivedData. On an active developer machine this folder routinely grows past 20 GB and is safe to delete in its entirety — Xcode rebuilds it on the next build.
# Delete all DerivedData (Xcode will rebuild on next build)
rm -rf ~/Library/Developer/Xcode/DerivedData
# Also clear the Xcode module and build caches
rm -rf ~/Library/Caches/com.apple.dt.Xcode
Inside Xcode you can also choose Product > Clean Build Folder (Shift-Command-K) to clear only the current project.
3. iOS and watchOS Simulator runtimes (5–30 GB each)
Simulator runtimes live in ~/Library/Developer/CoreSimulator/Cryptex/Metadata and can each consume 5–10 GB. If you downloaded runtimes for iOS 15, 16, and 17 but only test against the latest, the older ones are dead weight.
# List installed simulator runtimes
xcrun simctl runtime list
# Delete a specific runtime by identifier shown in the list
xcrun simctl runtime delete <runtime-identifier>
# Or delete all unavailable / unsupported runtimes at once
xcrun simctl delete unavailable
4. User and system caches (1–10 GB)
Apps write cache data to ~/Library/Caches and /Library/Caches. These are safe to delete; the worst that can happen is a slower first launch while an app rebuilds its cache. Never delete ~/Library/Caches/CloudKit while iCloud sync is in progress — wait until your Mac is idle.
# View what is consuming space in your user cache folder
du -sh ~/Library/Caches/* | sort -rh | head -20
# Remove a specific app's cache (example: Spotify)
rm -rf ~/Library/Caches/com.spotify.client
Log files under ~/Library/Logs and /Library/Logs are also safe to clear.
5. Large and duplicate files (1–20 GB)
Old disk images (.dmg), video exports, forgotten ZIP archives, and duplicate photos are often the single largest contributor on non-developer machines. Use Finder's built-in search to find large files:
- Open Finder and press Command-F.
- Set the first filter to File Size and choose is greater than 500 MB.
- Set the search scope to This Mac.
- Sort results by size and review before deleting.
For duplicates, Crumb's Duplicates scanner finds identical files by content (not just name) across your entire drive, which is more reliable than a manual search.
6. App leftovers after uninstalling (1–10 GB)
Dragging an app to the Trash removes the .app bundle but leaves behind support files, caches, preferences, and crash logs scattered across ~/Library. These orphaned files add up fast if you install and remove apps regularly.
# Manually find leftovers for a deleted app (example: Notion)
find ~/Library -iname "*notion*" 2>/dev/null
A dedicated uninstaller handles this automatically. Crumb's Uninstall tab finds the app bundle and all associated leftover files together, so you can review and remove everything in one pass rather than hunting through Library folders.
7. Homebrew cache (0.5–5 GB)
Homebrew keeps downloaded tarballs and bottles so it can reinstall packages without re-downloading. Once you have installed a package, the cached installer serves no purpose.
# See how much the Homebrew cache is using
brew cleanup --dry-run
# Remove all cached downloads older than 120 days
brew cleanup --prune=120
# Remove everything in the cache (safe if brew is working correctly)
brew cleanup --prune=all
8. Empty the Trash (0.1–20 GB)
Files you delete go to the Trash and keep consuming disk space until the Trash is emptied. Check ~/.Trash size before assuming it is empty — some apps have their own trash bins (iPhoto, iMovie, Final Cut Pro).
# Check Trash size from Terminal
du -sh ~/.Trash
Right-click the Trash icon in the Dock and choose Empty Trash, or press Command-Shift-Delete in Finder.
9. Language files (0.5–3 GB)
Many apps ship with localizations for 30+ languages. If you only use English, the other language bundles inside .app/Contents/Resources/*.lproj folders are unused. Removing them is safe but requires care — do not touch system frameworks.
Risk note: some apps verify their bundle integrity at launch and may refuse to open if localization files are missing. Test after removing. This is medium-risk and manual removal is not recommended for inexperienced users.
10. Mail attachments and Downloads folder (0.5–5 GB)
Mail stores downloaded attachments at ~/Library/Mail/V10/ (the version number changes with macOS releases). Your Downloads folder is frequently the largest user-controlled dump of forgotten files.
- In Mail, open a message and right-click an attachment, then choose Remove Attachment — or use Mailbox > Erase Deleted Items.
- Sort your Downloads folder by Date Added (oldest first) and delete anything older than six months that you have already opened.
11. Time Machine local snapshots (1–20 GB)
When your Time Machine backup drive is disconnected, macOS stores local APFS snapshots on your internal drive. These count as "System Data" and macOS is supposed to reclaim them automatically, but they sometimes linger.
# List local Time Machine snapshots
tmutil listlocalsnapshots /
# Delete all local snapshots (safe — full backups remain on your external drive)
tmutil deletelocalsnapshots /
Only run this if your external backup drive is connected and up to date.
12. Node, pip, and yarn caches (0.5–10 GB)
Package manager caches accumulate quickly on developer machines. All of these are safe to delete — packages will simply be re-downloaded on the next install.
# npm cache
npm cache clean --force
# yarn (v1)
yarn cache clean
# pip
pip cache purge
# Verify npm cache location and size first
npm cache verify
How to reclaim the most space in the least time
If you want to tackle items 1 through 6 — System Data, caches, logs, Xcode artifacts, and app leftovers — without running a dozen Terminal commands, download Crumb. Its one-click Clean handles system and user caches, logs, temp files, and purgeable space. The Visualize treemap shows exactly where your gigabytes went. And the Uninstall tab removes apps along with every leftover file they leave behind.
For the developer-specific items (Xcode DerivedData, simulator runtimes, package manager caches) the Terminal commands above are precise and safe to run directly. Combine both approaches and most Mac users recover 20–50 GB on a first pass without removing anything they need.