Mac storage full (core problem)

12 Proven Ways to Free Up Disk Space on Mac (Ranked by GB Recovered)

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 space10–60 GBLow
Xcode DerivedData & caches5–40 GBLow
iOS Simulator runtimes5–30 GB per runtimeLow
User & system caches1–10 GBLow
Large & duplicate files1–20 GBMedium
App leftovers after uninstall1–10 GBLow
Homebrew cache0.5–5 GBLow
Trash0.1–20 GBNone
Language files0.5–3 GBMedium
Mail attachments & downloads0.5–5 GBMedium
Time Machine local snapshots1–20 GBLow
Node / pip / yarn caches0.5–10 GBLow

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:

  1. Open Finder and press Command-F.
  2. Set the first filter to File Size and choose is greater than 500 MB.
  3. Set the search scope to This Mac.
  4. 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.

  1. In Mail, open a message and right-click an attachment, then choose Remove Attachment — or use Mailbox > Erase Deleted Items.
  2. 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.

Reclaim your disk in one click

Crumb audits your whole Mac, tells you what's safe to delete, and frees the space in seconds — private, local, and Apple-notarized.

Download Crumb for macOS

Frequently asked questions

How do I check how much disk space I have left on my Mac?
Go to Apple menu > About This Mac > More Info, then click Storage. On older macOS versions (Monterey and earlier) it's Apple menu > About This Mac > Storage tab. You can also open Terminal and run 'df -h /' to see available space instantly.
Is it safe to delete the Library/Caches folder on Mac?
Yes, ~/Library/Caches is safe to delete. Apps use it to speed up repeated tasks, so they will rebuild their caches on next launch — which may be slightly slower. Never delete the cache while an app is running, and avoid clearing CloudKit caches during active iCloud sync.
Why does macOS show 'System Data' taking up so much space?
System Data is an umbrella category in macOS Storage settings that includes system caches, APFS snapshots, Time Machine local snapshots, purgeable files, and data that doesn't fit other categories. It commonly grows to 20–60 GB on machines that haven't been cleaned. Clearing caches, logs, and local snapshots typically cuts it significantly.
What is the fastest way to free up disk space on a MacBook?
The fastest single method is to clear system and user caches, logs, temp files, and purgeable space in one pass — either manually via Terminal or with a tool like Crumb. After that, check Xcode DerivedData if you're a developer, then look for large forgotten files in your Downloads folder.
Does deleting Xcode DerivedData break anything?
No. DerivedData contains compiled objects and build indexes that Xcode regenerates automatically on the next build. Deleting it is safe and commonly recommended. Your source code, project files, and settings are stored elsewhere and are not affected.