You open System Settings, click Storage, wait for the bar to render, and Apple offers you four suggestions. Store in iCloud. Optimize Storage. Empty Trash Automatically. Reduce Clutter. Your MacBook has 34 GB free out of 512. The four suggestions add up to maybe 6 GB if you accept every one. The real problem, 197 GB under a gray bar labelled System Data, is not mentioned once. If you searched for "macos storage recommendations" and expected the panel to help you as a developer, this is why it never will.
What do macOS Storage Recommendations actually recommend?
The panel has been the same since macOS Sierra with only cosmetic changes. Four rows, one gray progress bar, one "Manage" button. The four suggestions are:
- Store in iCloud. Move Desktop and Documents into iCloud Drive, keep local copies only for recent files.
- Optimize Storage. Auto-delete watched Apple TV downloads and old Mail attachments.
- Empty Trash Automatically. Purge Trash after 30 days.
- Reduce Clutter. Open a size-sorted browser over Documents and Applications.
Every one of those actions is fine. None of them touches the folder that is actually full. On a fresh, standard consumer Mac the panel is a rough approximation of where the disk went. On a developer Mac it is a mirror reflecting the wrong room.
Why do the recommendations skip every developer folder?
Because Apple only labels six storage categories in the Storage bar: macOS, Applications, Documents, Photos, Mail, and Messages. Everything else is bucketed into System Data as a residual. The Manage panel inherits the same six categories. If a folder is not in one of the six, the panel cannot see it, so it will never recommend acting on it. Everything under ~/Library/Developer/, ~/Library/Caches/, ~/.claude/, ~/.codex/, ~/.ollama/, ~/.cache/huggingface/, and ~/Library/Containers/com.docker.docker/ is invisible to the panel by design.
The residual on a developer Mac is not small. In a January 2026 audit that reclaimed 200 GB from a full disk, the developer wrote:
"Docker was the biggest culprit... The volumes were almost entirely unused, probably from old postgres/redis containers I'd stopped months ago."
Docker.raw was 108 GB. Library/Application Support was 83 GB. Python virtual environments were 17 GB. Not one of those categories appears in Storage Recommendations. The Manage panel would have shrugged and offered iCloud Drive.
What does the panel say when a Mac fails a macOS update?
Failing an OS update at 5 GB free is the moment where the panel's uselessness is loudest. In Claude Code Issue #18869 a developer wrote:
"My Apple M1 Max with a 1TB drive failed to update macOS last night due to low diskspace, which surprised me."
They opened DaisyDisk and found 472 GB across ~/.claude/debug and ~/Library/Caches/claude-cli-nodejs. That is not System Data as a metaphor. That is 472 GB of literal AI tool cache files that macOS quietly filed under the gray bar. Apple's Storage Recommendations offered Reduce Clutter. Reduce Clutter opens Documents. ~/.claude/ is not in Documents. The panel had nothing to say.
How do the recommendations rank against what actually fills a dev disk?
Here is the mismatch, side by side. The left column is what Apple's Storage Recommendations panel offers. The right column is what a typical developer audit finds on the same Mac.
| macOS Storage Recommendations panel | Real top consumers on a developer Mac |
|---|---|
| Store in Documents in iCloud | ~/Library/Developer/Xcode/DerivedData/ (5 to 80 GB) |
| Optimize Storage for TV and Mail | ~/Library/Developer/CoreSimulator/ (10 to 125 GB) |
| Empty Trash Automatically | ~/Library/Containers/com.docker.docker/ (Docker.raw, 20 to 108 GB) |
| Reduce Clutter (Documents browser) | ~/.claude/debug/ + Claude CLI logs (5 to 472 GB) |
| (not in panel) | ~/.ollama/models/ (5 to 200 GB) |
| (not in panel) | ~/.cache/huggingface/{hub,datasets,transformers} (5 to 60 GB) |
| (not in panel) | Cursor .pack files under ~/Library/Application Support/Cursor/User/workspaceStorage/ (5 to 40 GB) |
| (not in panel) | ~/.codex/sessions/ and Codex worktrees (2 to 20 GB) |
| (not in panel) | iOS DeviceSupport under ~/Library/Developer/Xcode/iOS DeviceSupport/ (5 to 30 GB) |
| (not in panel) | Every node_modules/ across every repo (10 to 70 GB) |
The top four rows in the right column alone will beat every recommendation Apple can make. The panel does not know they exist.
What would a developer-honest audit look like?
A read-only pass with du on the paths Apple's panel refuses to name. Nothing here deletes. The point is to see what is really there, then decide what to move to Trash after you look at the numbers.
# Read-only audit of the folders macOS files under System Data.
# Safe to run during a build. Nothing here deletes.
du -sh ~/Library/Developer/Xcode/DerivedData 2>/dev/null
du -sh ~/Library/Developer/Xcode/Archives 2>/dev/null
du -sh ~/Library/Developer/Xcode/iOS\ DeviceSupport 2>/dev/null
du -sh ~/Library/Developer/CoreSimulator/Caches 2>/dev/null
du -sh ~/Library/Developer/CoreSimulator/Devices 2>/dev/null
du -sh ~/Library/Developer/XCTestDevices 2>/dev/null
du -sh ~/.claude 2>/dev/null
du -sh ~/.claude/debug 2>/dev/null
du -sh ~/Library/Caches/claude-cli-nodejs 2>/dev/null
du -sh ~/.codex 2>/dev/null
du -sh ~/.ollama/models 2>/dev/null
du -sh ~/.cache/huggingface 2>/dev/null
du -sh ~/Library/Application\ Support/Cursor 2>/dev/null
du -sh ~/Library/Containers/com.docker.docker/Data/vms/0 2>/dev/null
Fifteen lines. About 90 seconds. On a developer Mac with a 168 GB System Data bar, the fifteen numbers will usually account for 120 to 150 GB of the residual. The Storage Recommendations panel accounted for zero of it before you ran the audit.
For the safe reclaim order once you have the numbers, see the walkthrough in /blog/reduce-system-data-macos-safely/. For a deeper explanation of what the gray bar actually represents, see /blog/what-is-system-data-on-mac/.
Why does Apple not add developer folders to the panel?
Best guess is safety. Apple ships one Storage Recommendations panel for every Mac in the world. If Optimize Storage decided to auto-purge DerivedData, one developer somewhere would be mid-Archive at 2:59 UTC on ship day and the panel would break their build. Apple's rule for a suggestion is that it must be safe for anyone. Developer folders are not safe by default, they are conditional. Conditional does not fit a four-row consumer panel.
That safety trade is defensible. The consequence is that the panel is silent on the folders that matter, and that silence gets read as "nothing else is worth cleaning." It is.
What should a review-first cleaner do instead?
Show the receipts. For every candidate path, print size, last-modified date, owning tool, and a risk label before anything is moved. Move to Trash by default so a wrong call is a Cmd-Z, not an SSH-into-recovery. Never call rm -rf on any user path without confirmation. Never gate the audit itself behind Full Disk Access, because a read-only pass with du does not need it.
That is the model behind CleanMyDev. It runs the same fifteen du calls above, plus another 95, and shows the numbers with per-row context. It never deletes silently. It never subscribes you. It ships one price. The whole reason it exists is because the macOS Storage Recommendations panel is honest about six categories and silent about the seventh, and the seventh is where a developer disk lives.
When are the four macOS recommendations actually worth turning on?
There is a narrow band where the panel helps. If you shoot a lot of screen recordings that pile into Downloads, Empty Trash Automatically after 30 days is fine. If your Documents folder legitimately holds design files or PDFs and you use iCloud already, Store in iCloud can offload cold copies. If you are on a stock Mac with no Xcode, no Docker, no local models, and no AI tool CLI, the four suggestions are the right shape for you.
None of that describes a dev Mac in 2026. A dev Mac in 2026 has Claude Code writing debug logs on every request, Cursor writing .pack files on every workspace save, Docker holding volumes from projects the developer forgot about, and Ollama holding 40 GB of weights nobody has run in a month. The System Data bar is where all of that sits. The panel does not go there.
Get a real developer storage audit
If you are done waiting for the Storage Recommendations panel to name a developer folder, get CleanMyDev for $9.99 lifetime and see the 110 paths Apple will not print. It is Move to Trash by default. It shows receipts before it touches anything. It knows about Xcode, Claude Code, Cursor, Codex, Ollama, Hugging Face, LM Studio, Docker, Colima, and the caches every JS package manager leaves behind. No subscription, no scareware banner, no telemetry.
Related reading
- /blog/what-is-system-data-on-mac/, the plain-English definition of System Data and the developer paths that feed it.
- /blog/reduce-system-data-macos-safely/, the safe reclaim order once you know the numbers.
- /blog/system-data-keeps-growing-mac/, why the bar backfills even after you delete, and the per-tool caps that stop the growth.