Bytesweep › Blog › Mac storage
“Your startup disk is almost full” — what to do in the first ten minutes
macOS does not warn you early. The “Your startup disk is almost full” dialog turns up when the volume has roughly 5 GB of genuinely free space left, by which point Safari is refusing to save downloads and Xcode has started failing builds for reasons that look nothing like a disk problem. The good news is that on most Macs the answer is four folders, and none of them are your documents.
By Faheen Ahmed · Published 21 September 2026 · Last updated 21 September 2026 · 4 min read · Part of How to free up space on a Mac

On this page
Do these three things before you delete anything
Work in this order. It costs about two minutes and it stops the two mistakes that turn a full disk into a lost afternoon.
- Note the real number. Open Disk Utility rather than the Finder: it shows the volume’s used and free bytes without folding in purgeable space, which is the figure that actually matters right now.
- Quit the applications that hold files open. Photos, Mail, Docker Desktop, Xcode and any virtual machine. A file that is deleted while an application still holds it open does not return its space until that process exits, which is the usual reason a cleanup “does nothing”.
- Do not empty the Trash yet. If you delete the wrong thing in the next ten minutes, the Trash is the only undo you have. Empty it at the end.
Never delete anything inside ~/Library by the folderful. That directory holds application caches you can throw away and, in the folder next to them, your mail, your keychains, your licences and your local databases. Every instruction below names a specific path for that reason.
The four that are usually eighty per cent of it
On a Mac that has been in daily use for two or three years, four things account for most of the missing space. Check all four before you start looking at photos.
Time Machine local snapshots. macOS keeps hourly snapshots of your own internal drive even when Time Machine is switched off, and they routinely hold 10 to 80 GB. They show up as purgeable rather than used, which is why the numbers never agree with each other. List them:
tmutil listlocalsnapshots /
This is the single most common answer to “my disk is full and I cannot find why”. How local snapshots work, and how to thin them safely goes through it properly.
Xcode’s build folder. If you write software, ~/Library/Developer/Xcode/DerivedData is usually the largest single directory in your home folder, and it is entirely disposable. See what DerivedData actually is.
Docker’s disk image. One file, Docker.raw, that grows with every image you pull and does not shrink when you delete one. Never delete the file itself — it contains every image, container and volume you have. Shrinking Docker.raw without losing anything covers the safe route.
Local AI models. The fastest-growing item on a developer’s Mac and invisible to every mainstream cleaner. Ollama, LM Studio and the Hugging Face cache each keep their own store, any of which can pass 100 GB. Where Ollama keeps its models is the place to start.
Check the size of each, in one command
Finder’s folder sizes are calculated lazily and often wrong on a busy disk. du is not:
du -sh ~/Library/Developer/Xcode/DerivedData \
~/Library/Containers/com.docker.docker \
~/.ollama ~/.cache/huggingface \
~/Library/Application\ Support/MobileSync/Backup \
~/Downloads 2>/dev/null | sort -h
Anything missing from that list simply is not installed. Sort the output and work from the bottom up: one 40 GB directory is worth more than forty 1 GB ones, and it carries far less risk of deleting something you wanted.
If the disk is too full to delete anything
Below about 2 GB free, macOS can fail to complete a delete, because moving a file to the Trash is a move rather than a removal and the journal needs room to record it. Two ways out:
- Delete one large file directly, skipping the Trash, with
rmin Terminal. A single Docker image or a DerivedData folder is enough to buy back working room. - Or restart. A restart clears swap, the sleep image and a good deal of temporary state, and macOS aggressively releases purgeable space when it is genuinely under pressure. It routinely returns several gigabytes on its own.
If the Mac will not boot at all, that is a different procedure — recovering a Mac that will not start because the disk is full has it.
What not to bother with
A few habits circulate that cost time and return nothing.
| Commonly suggested | What it actually returns |
|---|---|
| Clearing Safari’s cache | Usually under 1 GB, and it rebuilds within a day |
| Deleting “Other” or “System Data” | Not a folder; it cannot be deleted as a unit. See why that number never adds up |
| Reinstalling macOS | Hours of work, and it keeps your home folder — which is where the space went |
| Deleting language files from apps | A few hundred megabytes, and it breaks code signatures |
The pattern is the same each time: the large wins are a handful of developer and system caches, and the small wins are not worth the risk of deleting something that matters.
Questions
Why does the warning appear when I still have 20 GB free?
Because a good part of that 20 GB is purgeable rather than free — snapshots and cached cloud files macOS believes it can release on demand. It releases them only under real pressure, so you can sit at “20 GB available” and still be unable to save a file.
Will freeing up space make my Mac faster?
Only if you were close to full. Below roughly ten per cent free, macOS runs short of room for swap and temporary files and genuinely slows down. Above that, more free space buys you nothing at all.
Is it safe to delete everything in ~/Library/Caches?
Mostly, but not blindly, and it is rarely worth much — a few gigabytes that come straight back. Some applications keep things there that are expensive rather than impossible to rebuild, such as a mail index or a large thumbnail database.
How often will I have to do this again?
Every few months, if you do it by hand. DerivedData returns with the next build, snapshots return within the hour, and Docker regrows with every image you pull. The work itself does not get smaller; only the interval between rounds does.
See all of this on your own disk
Every path on this page is one Bytesweep already knows by name. It measures the whole disk in about ten seconds, shows what is safe and what is not before you touch it, and moves everything it removes to a restore point you can undo for seven days.