You opened this article because your Mac is nagging you: Your disk is almost full, or Xcode can't compile, or Photos won't sync, or the OS updater refuses to download. Whatever the trigger, the question you actually want answered is the same: where has all my space gone?

macOS is genuinely bad at answering that question. The Storage screen in System Settings will show you a pie chart with a slab called "System Data" that grows to 80 GB and refuses to explain itself. The Manage button lets you delete some things, but it does not tell you what is really there. So most people give up, hit "empty trash", and hope for the best.

This guide walks through the sane way to do it: use the built-in tools when they help, and reach for a visual storage map when they stop helping. By the end you will know, with numbers, exactly where the space went — and what is safe to delete.

First, be honest about how much space you have

Open the Apple menu → About This MacMore InfoStorage Settings. Wait for the calculation to finish (it can take 60 seconds on a full drive). You will see:

  • Available — the actual free space
  • Used — everything else, broken into categories
  • Purgeable — space macOS considers reclaimable when it needs to. This is real free space that shows up as "used".

Note the Available number down. That is your starting line. Every trick in this article is measured against it.

If Available is under 10% of your drive, macOS starts throttling itself: Spotlight indexing stalls, Time Machine backups pause, and some apps refuse to save. You want to get above 15% before doing anything else productive on the machine.

The categories, and what each one really is

The Storage screen lumps files into these buckets. Some of them are honest and some are not.

  • Applications — the /Applications folder. Deleting an app here really does free its bytes, minus caches it stashed elsewhere.
  • Documents — everything the OS thinks looks like a file you made or downloaded. On developer machines this includes ~/Documents, ~/Downloads, ~/Desktop, and often a large chunk of your project directories.
  • Photos — the Photos library. If you use iCloud Photos with Optimise Mac Storage, this is smaller than what you actually have; if not, it is the full library.
  • Messages — iMessage attachments accumulated over years.
  • Mail — downloaded messages and attachments.
  • Music / Podcasts / TV — obvious.
  • iCloud Drive — files synced to your Mac (again, smaller if optimised).
  • macOS — the operating system itself. ~15 GB on Sequoia. Don't touch.
  • System Data — the miscellaneous bucket. Almost all of your mystery space is here. We'll come back to it.

For most people, "Documents" and "System Data" are the two categories that grow strangely, and both are opaque in the built-in UI.

Use the built-in Recommendations first

The Storage → Recommendations panel actually is useful. It offers four things:

  1. Store in iCloud — moves older files off the disk and keeps a stub. Do not enable this if you are on a metered internet connection or if your iCloud plan is small.
  2. Optimise Storage — removes Apple TV shows and movies you have already watched. Safe.
  3. Empty Trash Automatically — removes items in Trash older than 30 days. Reasonable, but you lose the ability to restore beyond that window.
  4. Reduce Clutter — opens a Files browser sorted by size. This is the closest thing macOS gives you to a real storage tool.

The Files browser is worth ten minutes of your attention. Sort by size, look at the top 20 items, and act on anything you clearly do not need. It is limited to files (not folders) and it does not descend into packages, so you will miss things — but it is a legitimate first pass.

When the built-in tools stop being enough

Two problems appear quickly.

Problem one: System Data is huge and undocumented. Nothing in System Settings tells you what is in it. In practice on a developer's Mac, it is some combination of these:

  • ~/Library/Developer/Xcode/DerivedData — Xcode build products. Grows without bound. Often 20–100 GB.
  • ~/Library/Developer/CoreSimulator/Devices — iOS/watchOS/tvOS simulator disk images. 5–40 GB each.
  • ~/Library/Developer/Xcode/iOS DeviceSupport — one folder per (device, iOS version) pair, kept forever.
  • ~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw — Docker Desktop's virtual disk. Often 30–100 GB even when Docker is not running.
  • ~/Library/Caches/* — every app's cache directory.
  • ~/Library/Application Support/* — including large per-app data stores (Slack, Zoom, Adobe, JetBrains).
  • APFS local snapshots that Time Machine took and has not yet cleaned up.

None of this is visible in the Storage screen. Every byte of it counts as "System Data".

Problem two: files can be everywhere. A big folder that fills your disk is not necessarily anywhere obvious. It might be a node_modules five levels deep inside a project you forgot about, or a video export that Final Cut wrote to /private/var/folders/. There is no way to find these without walking the filesystem.

The right tool for both problems is a visual storage map — a program that scans a folder (or the whole drive) and draws every folder as a container sized by the space it actually uses. This is what VolumeLens does, and it is what every other Mac storage tool has done in some form since Grand Perspective in 2005. When you see the map, the answer is obvious in seconds.

What a storage map actually shows you

Imagine your home folder as a big rectangle. Inside it, ~/Library might take 40% of the space, ~/Projects another 35%, ~/Downloads 15%, and the rest a scatter of smaller folders. A map draws exactly that: nested rectangles, each one labelled with its name and size.

You then read it the way you read a chart. The largest cell is the biggest thing. Double-click it and now that cell fills the map, revealing what is inside it. Repeat until you find a folder small enough that you recognise every item — and that is your answer.

Almost every "where is the space" question ends the same way: two or three folders that you had forgotten about, one of which you can move to the Trash right now.

The specific things that fill Macs in 2026

If you want to skip the map and check the usual suspects manually, here is the list in rough order of frequency:

  • ~/Downloads — years of installers, DMG images, and zip files nobody ever extracted. Sort by size, delete the ones you do not recognise.
  • ~/Movies — screen recordings from QuickTime, exports from iMovie or Final Cut, downloaded video files.
  • ~/Library/Developer/Xcode/DerivedData — Xcode intermediate build products. Safe to delete: Xcode will rebuild them the next time you compile.
  • ~/Library/Caches/ — application caches. Individual apps are safe to clear (they will rebuild). Do not delete the whole folder in one go without care.
  • ~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw — Docker Desktop's virtual disk. Docker's own Preferences → Resources → Advanced → Disk image size setting does not shrink the file. Use Reset to factory defaults if you can live without your current images and volumes.
  • iPhone/iPad backups in ~/Library/Application Support/MobileSync/Backup/ — each backup is 5–15 GB.
  • Large node_modules folders — one per project. Deleting node_modules is safe if you can npm install again.
  • ~/Library/Application Support/Slack, Zoom, Adobe, Google/Chrome/Default/Service Worker/CacheStorage — chat and cloud apps accumulate surprising amounts here.
  • APFS local snapshots — see below.

APFS snapshots: the invisible eaters

Time Machine takes local snapshots every hour and holds them for 24 hours (older snapshots may linger if the destination volume is missing). Snapshots occupy purgeable space, which the Storage screen counts as used until macOS decides to reclaim it. That is often the difference between "my drive is at 95%" and "my drive is at 80% and I don't know why".

List snapshots in Terminal:

tmutil listlocalsnapshots /

Delete the oldest one (macOS will re-create newer ones as needed):

sudo tmutil deletelocalsnapshots 2026-08-14-102345

Or just plug in your Time Machine drive: as soon as Time Machine finishes a real backup, it prunes the local snapshots.

The specific limitation of every Mac storage tool

Any tool that reads your disk — including the built-in Storage screen, including VolumeLens, including every third-party competitor — is bound by macOS's sandbox and permissions rules. In practice this means:

  • Without Full Disk Access, the tool cannot enumerate other users' home folders, some system directories, or protected areas like Mail and Messages databases.
  • APFS snapshots and purgeable space are not files; they can only be reported as totals, not walked.
  • iCloud Drive files that live in the cloud but not on disk are not scannable — they are placeholders.
  • Hard links appear in multiple places. Counting them naively double-counts the bytes.

A well-built storage tool tells you about these limits instead of hiding them. If a tool shows a folder as "0 bytes" when macOS refused to read it, do not trust it. If it does not distinguish between nominal file size and actual on-disk usage, its totals will not match Finder or du. VolumeLens shows both, counts hard links once, and labels folders it could not read — which is why its number for a ~/Library walk sometimes disagrees with Finder's, and why that disagreement is a feature.

A concrete 30-minute cleanup routine

If you want a script for this, run it in order.

  1. About This Mac → Storage Settings. Note the Available number.
  2. Recommendations → Reduce Clutter → Large Files. Delete anything obviously not needed.
  3. Empty the Trash (Finder → Empty Trash).
  4. Downloads folder. Sort by size. Delete installers older than 30 days.
  5. ~/Movies. Same treatment.
  6. Xcode DerivedData (if you're a developer): rm -rf ~/Library/Developer/Xcode/DerivedData/* — or, in Xcode, Xcode → Settings → Locations → Derived Data → arrow → move to Trash.
  7. iOS simulators you don't use: xcrun simctl delete unavailable clears simulators for OS versions you no longer have installed.
  8. Docker: Docker Desktop → Troubleshoot → Clean / Purge data.
  9. Snapshots: tmutil listlocalsnapshots /, delete anything older than a day.
  10. Now open a storage map and look at what remains. Whatever is filling the top of the map is the actual answer.

Steps 1–9 will typically recover 20–60 GB on a developer's Mac and 5–15 GB on a general-purpose Mac. Step 10 finds what the checklist missed — which, in our experience, is where the big win usually is.

Where VolumeLens comes in

We wrote VolumeLens because we needed step 10 to be honest, fast, and safe. The rules we hold ourselves to:

  • Nothing is uploaded. The app has no network code. You can pull the Ethernet cable and every feature works.
  • Nothing is deleted. The only action is Move to Trash, after a review sheet that lists exactly what will go. You empty the Trash yourself, in Finder, when you're ready.
  • The numbers are honest. Hard links counted once. Sparse and compressed files flagged. Folders macOS refused to read are counted, not zeroed.

It is free to scan, browse, search, and clean up. Insights — the paid tier — recognises where Mac storage typically goes (node_modules, DerivedData, Docker.raw, and the two dozen other usual suspects in this article) and explains each one.

Whichever tool you use, though: run the checklist, then open the map. Guessing is the slowest way to clean a disk.