ScrubsDownload

Guide · updated 10 November 2026

How to free up disk space on a Mac, and where it actually hides

By Parsa Nasirimehr

On most Macs the space goes to a few familiar places: photos and videos, Messages attachments, iPhone backups, old installers and the Downloads folder. On a developer's Mac it hides in tools: on the one we measured, over 200 GB sat in folders the owner never opens. Here is where to look on each, how to measure your own Mac, and the right way to clear every part.

On one developer's Mac: where the 200 GB wasGB, measured with du
Simulator runtimes 35Android emulators 27iOS debug symbols 27Simulator devices 24IDE caches 23Gradle, Docker, SDKs, builds, caches 73

On most Macs: start here

If you don't write software, the big ones are usually your own files and the places apps keep copies of them. Start with Storage settings (System Settings › General › Storage) and click ⓘ next to each category, then check these:

PhotosThe library keeps every photo and video at full size unless Photos › Settings › iCloud › Optimize Mac Storage is on. Videos are the biggest part; Recently Deleted keeps deleted ones for up to 30 days.
Messages~/Library/Messages/Attachments keeps every photo and video anyone sent you. Storage settings › Messages lists the largest; Messages can keep messages for 1 year or 30 days instead of forever.
iPhone and iPad backups~/Library/Application Support/MobileSync/Backup. A full backup is roughly the size of the phone's data, and old phones' backups stay. Delete them in Finder › your device › Manage Backups.
macOS installersAn Install macOS app in Applications is usually well over 10 GB, and one you downloaded but never ran stays until you delete it.
DownloadsInstallers for apps you've already installed, videos and documents you opened once. Sort by size and Date Last Opened in Finder.
MailMail keeps offline copies of your mail and a copy of every attachment you open, in Mail Downloads, which is safe to clear.
GarageBand and Logic soundsInstruments and loops in /Library. If you don't make music, they can go; the apps download them again.
Video projectsFinal Cut Pro and iMovie libraries keep render and proxy files next to the footage, often as large again. Delete generated files from inside the app.

If your Mac has already said its disk is full, see what to do when Mac storage is full first.

Scrubs showing a demo Mac as a treemap of colored tiles sized by space, with an iPhone backup, a macOS installer, videos and caches as the biggest tiles, above a sortable outline
A disk map shows the same places at a glance: Scrubs on a demo Mac, where the iPhone backup, a macOS installer and videos are the biggest tiles.

First: why the numbers disagree

Finder, Storage settings and Terminal often report different free space, and deleting a big file sometimes frees nothing. Five reasons, all in how macOS and APFS count:

GB and GiBStorage settings and Finder count 1 GB as 1,000,000,000 bytes; df -h counts 1 GiB as 1,073,741,824. On this Mac, df -h / said 90Gi free and Storage settings said 97 GB. Same space.
Purgeable spaceFinder's "available" includes space macOS can reclaim on its own, such as cached iCloud files and old snapshots. df shows only what is free right now. When Finder shows much more than df, the difference is purgeable.
Local snapshotsWith Time Machine on, macOS keeps local snapshots of the startup disk. A file you delete stays inside them until they expire, so deleting it frees nothing yet. tmutil listlocalsnapshots / lists them; tmutil thinlocalsnapshots / 50000000000 4 asks macOS to free up to 50 GB of them now.
ClonesDuplicating a file in Finder on APFS makes a clone that shares the original's blocks. Both show their full size, but together they take the space of one. Deleting one copy frees almost nothing; deleting the last one frees it all.
The Trash, and open filesMoving to the Trash frees nothing until it is emptied, and each drive has its own. A file an app still has open, such as a virtual machine disk or a log, frees its space only when the app closes it.

On a developer's Mac: where the space was, and how to clear each

Sorted by size on the Mac we measured. "Comes back" says what happens after you delete it, which decides whether clearing it is worth it.

HereWhat it isComes back?Clear it with
35.1 GBSimulator runtimes /System/Library/AssetsV2/com_apple_MobileAsset_*SimulatorRuntime and /Library/Developer/CoreSimulator/CryptexOne compressed disk image per iOS or watchOS version: iOS 18.6 (8.2 GB), 27.0 (7.5 GB), 27.1 (7.3 GB), watchOS 27 (3.6 GB), and an 8.5 GB image that simctl no longer lists, likely left from a beta. Don't measure /Library/Developer/CoreSimulator/Volumes: those are the images mounted, and du there counts their uncompressed contents, 43.2 GB here.Only if you download that version againxcrun simctl runtime list -v shows each one's real size; xcrun simctl runtime delete <id> or Xcode › Settings › Components removes it
27.1 GBAndroid emulators ~/.android/avdFive virtual devices, 2.2 to 10.6 GB each. Each keeps its own disk, apps and snapshots.No; you recreate the deviceAndroid Studio › Device Manager › Delete, or avdmanager delete avd -n <name>
26.5 GBiOS DeviceSupport ~/Library/Developer/Xcode/iOS DeviceSupportDebug symbols Xcode copies from every iOS version you have run on a real device. Here: 4 versions, about 6.7 GB each.Yes, the next time a device on that version connectsDelete the folders of versions you no longer debug
23.8 GBSimulator devices ~/Library/Developer/CoreSimulator/Devices47 simulators, 29 of them for runtimes no longer installed. The largest held 8.0 GB of app data.Noxcrun simctl delete unavailable removes the orphans; Device › Erase All Content and Settings empties the rest
23.3 GBJetBrains IDEs ~/Library/Caches/JetBrains (15.4) and ~/Library/Application Support/JetBrains (7.9)Indexes and settings, one folder per IDE version. Old versions stay after an upgrade.Indexes rebuild on the next openDelete the folders of versions you no longer have, or File › Invalidate Caches
12.8 GBGradle ~/.gradleDownloaded dependencies and build caches (10.5 GB) and JDKs it fetched (1.5 GB).Yes, downloaded again on the next build./gradlew --stop, then delete ~/.gradle/caches
11.3 GBAn AI app's virtual machine ~/Library/Application Support/<app>/vm_bundlesDesktop AI apps that run tools in a sandbox keep a VM image; local-model tools keep models in ~/.ollama or ~/.cache/huggingface (1.5 GB here).Usually, the next time the feature runsThe app's own settings; ollama rm <model> for Ollama
11.0 GBDocker ~/Library/Containers/com.docker.dockerOne disk image holding every image, container and volume. It grows and doesn't shrink by itself.Images pull again when neededdocker system df to see, docker system prune -a to clear unused images (add --volumes only if you don't need their data)
10.3 GBAndroid SDK ~/Library/Android/sdkPlatforms, build tools and system images for old API levels.Only if you install them againAndroid Studio › SDK Manager
10.1 GBXcode DerivedData ~/Library/Developer/Xcode/DerivedDataBuild products and indexes, 14 projects, largest 5.8 GB. Old projects keep theirs forever.Yes, on the next buildDelete the folder, or one project's subfolder
9.0 GBApp caches ~/Library/CachesChrome 5.2 GB, Spotify 3.8 GB, and dozens of smaller ones.Yes, within daysThe app's own setting, such as Spotify's storage limit. Rarely worth it
8.3 GBPackage manager cachesnpm 2.5, SwiftPM 2.1, Yarn 1.6, Bun 1.0, Go 0.9, pnpm 0.6, Homebrew 0.4.Yes, on the next installnpm cache clean --force, yarn cache clean, bun pm cache rm, go clean -cache, pnpm store prune, brew cleanup --prune=all

Things this Mac didn't have but many do: node_modules spread across old projects, often hundreds of MB each; old Xcode archives in ~/Library/Developer/Xcode/Archives; second copies of Xcode itself in Applications; and "Install macOS …" apps left in Applications after an upgrade, over 10 GB each.

Each folder has its own page in the Mac folder guide, with more detail on what it holds and how to clear it.

Measure your own Mac

This prints the size of every folder above that exists on your Mac, largest first. It only reads; it deletes nothing. For simulator runtimes, use xcrun simctl runtime list -v instead, for the reason above.

for p in ~/.android/avd \
  ~/Library/Developer/Xcode/{"iOS DeviceSupport",DerivedData,Archives} \
  ~/Library/Developer/CoreSimulator/Devices ~/Library/Caches \
  ~/Library/Caches/JetBrains ~/.gradle ~/Library/Android/sdk \
  ~/Library/Containers/com.docker.docker ~/.ollama ~/.cache/huggingface \
  ~/.npm ~/Library/Caches/org.swift.swiftpm ~/.yarn ~/Library/pnpm \
  "$HOME/Library/Application Support/MobileSync/Backup" ~/Downloads; do
  [ -e "$p" ] && du -sh "$p" 2>/dev/null
done | sort -hr

Folders such as iPhone backups need Full Disk Access for Terminal (System Settings › Privacy & Security › Full Disk Access) or du reports them as smaller than they are. To find what this list misses, go a level at a time from your home folder: du -hd 1 ~ 2>/dev/null | sort -hr | head -20. For single big files rather than folders, see how to find large files on a Mac.

What isn't worth clearing

Move to the Trash, don't delete for good. Most of the folders above are safe to remove, but "safe" depends on what you still work on. The Trash lets you take it back. For System Data in particular, see What is System Data on a Mac.

Questions

What takes up the most space on a Mac?

On most Macs: photos and videos, Messages attachments, iPhone backups, apps and the Downloads folder. On developers' Macs: simulators, build folders and package caches.

How much free space should a Mac have?

Enough for macOS to work and update: at least 10 to 20 GB, and more before a macOS update.

Why didn't deleting a file free any space?

It may still be in the Trash, kept in a local Time Machine snapshot, or a clone sharing its space with a copy. Why the numbers disagree, above, explains each.

Do Mac cleaner apps help?

They mostly clear caches, which come back. Finding what's actually big helps more: photos, backups, installers or, on a developer's Mac, its tools.

How Scrubs helps

Scrubs maps the whole disk, so folders like the ones above show up as the biggest rectangles without knowing their paths. Its Quick Wins find old installers, Mail's attachment copies, caches and, on a developer's Mac, DerivedData, simulators and old node_modules; iPhone backups and old downloads show under Worth a look, for you to check. Everything you delete goes to the Trash first, with ⌘Z to undo. Scanning is free.

Measured on 1 November 2026 with du on one Mac running macOS 27 with Xcode, Android Studio, JetBrains IDEs and Docker installed. Your sizes will differ; the folders and commands are the same on macOS 15 and later.

About the author: Parsa Nasirimehr is a mobile app developer who builds Scrubs, a disk map for the Mac. Spotted something wrong? Write to support@getscrubs.app.