By month nine of using Claude Code daily, I had stopped opening System Settings, General, Storage. The gray bar said 168 GB, the label said System Data, and there was no button beneath it. I closed the panel and pretended I had not looked. That is the Mac System Data anxiety. It is not a single bug. It is the slow dread of a number you cannot name.
What does the Mac System Data anxiety actually feel like?
It feels like a low-grade tab you cannot close. You open Storage to check something else, you see the gray bar, and the rest of your day has a small leak in it.
It is not the leak itself. It is the not-knowing.
In System Settings, General, Storage, Apple shows you:
- Apps, with a list of every app and its size
- Documents, with a one-click drill-down
- Photos, Mail, Messages, iCloud Drive, all with their own panels
- macOS itself, a single number for the system
- System Data, a single number for everything else
The first five categories have a UI. The sixth has a label. That asymmetry is where the anxiety lives. You can click into Apps and learn that GarageBand is 4.6 GB. You cannot click into System Data and learn anything. The number is the entire panel.
The anxiety gets worse because the bar trends upward. You do not undo your last week of work. You do not delete the projects you shipped. You write code, you talk to AI tools, you build iOS apps, and the gray segment grows by a couple gigabytes a week. Six months in, you have a 60 GB problem you did not opt into.
Why is the System Data anxiety mostly a developer problem?
Because every category macOS does not name lives in ~/Library or in dotfile directories under $HOME. Those are the parts of the disk only developers fill up.
Look at where a working dev Mac actually keeps state:
| Path | What it holds | Counted as |
|---|---|---|
~/Library/Developer/Xcode/DerivedData/ |
Build artifacts, module caches | System Data |
~/Library/Developer/CoreSimulator/Devices/ |
iOS simulator file systems | System Data |
~/Library/Developer/Xcode/iOS DeviceSupport/ |
Per-device debug symbols | System Data |
~/.claude/ plus ~/Library/Caches/claude-cli-nodejs/ |
Claude Code logs, MCP captures | System Data |
~/.codex/sessions/ plus worktrees/ |
Codex CLI rollouts and abandoned worktrees | System Data |
~/.ollama/models/ |
Local LLM model weights | System Data |
~/.cache/huggingface/{hub,datasets,transformers} |
Hugging Face triple cache | System Data |
~/Library/Containers/com.docker.docker/Data/vms/0/ |
Docker.raw VM image | System Data |
~/Library/Caches/ for every dev tool |
Mixed caches | System Data |
A non-developer Mac has none of these paths. A developer Mac has all of them, and macOS lumps them into one nameless segment. The result is that the Mac System Data anxiety is, in practice, a developer-only condition. The 4,700 monthly searches around "system data macbook storage" are mostly devs trying to find out what they put there.
The night the macOS installer said no
The anxiety changed the night I tried to install a macOS point update and it refused. The dialog said Your disk has less than 5 GB remaining, unable to install OS updates. I had a 1 TB drive. I had not installed a game in a year. Nothing felt missing from my Applications folder. The gray bar said 187 GB.
The most cited example of this exact moment is anthropics/claude-code Issue #18869, where a developer wrote:
"My Apple M1 Max with a 1TB drive failed to update macOS last night due to low diskspace, which surprised me."
"I used DaisyDisk to dig into the issue and discovered folders taking up 472GB, both related to Claude CLI."
That is the anxiety crystallized. The user did the right thing. They updated their tools. They used the AI assistant a lot. They paid for a 1 TB drive specifically so they would never see a low-disk dialog. And one Tuesday night the dialog appeared anyway, because a debug folder they had never opened was 472 GB.
That is the failure mode the System Data bar warns about and never explains.
Why doesn't macOS just name the bar?
This is the question that comes up every time someone writes about this. Why does Apple not break down System Data?
A few honest answers. Apple's storage UI was designed for consumer Macs in 2014. The categories made sense when 90 percent of Mac space was photos, music, and apps. The 10 percent residual could be called Other, then later System Data, and almost nobody would notice.
For consumer users, that is still mostly true. System Data on a non-dev Mac sits between 15 and 30 GB. The bar is small, the anxiety is small.
For developer Macs the math broke. CoreSimulator alone can pass 100 GB. AI coding tools moved fast and started writing tens of gigabytes per month. Container disk images grew unbounded. None of this triggered a UI redesign at Apple, because the consumer median did not change.
So macOS keeps showing the gray bar. The label keeps saying System Data. The breakdown still does not exist.
How do you make the Mac System Data anxiety go away?
You name the bytes. That is the whole therapy.
Here is the read-only audit that turns the gray bar into a list. Run it in a terminal. Nothing here deletes anything.
# Xcode and simulators
du -sh ~/Library/Developer/Xcode/DerivedData 2>/dev/null
du -sh ~/Library/Developer/Xcode/iOS\ DeviceSupport 2>/dev/null
du -sh ~/Library/Developer/CoreSimulator/Devices 2>/dev/null
du -sh ~/Library/Developer/Xcode/Archives 2>/dev/null
# AI coding tools
du -sh ~/.claude ~/.claude/debug 2>/dev/null
du -sh ~/Library/Caches/claude-cli-nodejs 2>/dev/null
du -sh ~/.codex ~/.codex/sessions ~/.codex/worktrees 2>/dev/null
du -sh ~/.cursor 2>/dev/null
# Local models
du -sh ~/.ollama/models 2>/dev/null
du -sh ~/.cache/huggingface/hub ~/.cache/huggingface/datasets ~/.cache/huggingface/transformers 2>/dev/null
# Containers
du -sh ~/Library/Containers/com.docker.docker/Data/vms/0 2>/dev/null
Five minutes after running that script you have the breakdown macOS will not give you. The number that was 168 GB becomes 41 GB of Docker, 38 GB of Ollama, 22 GB of Claude logs, 18 GB of DerivedData, the rest in long tail. The anxiety drops the moment the bar has names attached.
The brtkwr.com cleanup at 200 GB wrote the post-anxiety state cleanly: "Docker was the biggest culprit. The volumes were almost entirely unused, probably from old postgres/redis containers I'd stopped months ago." That sentence is the version of the bar you want to live with. You know what it is. You know what it was. You can decide.
What changes when you name the bar?
Three things, in order.
First, you stop avoiding Storage. The panel becomes a tool again, not a guilt trip. You start opening it on purpose instead of by accident.
Second, you start making decisions instead of avoiding them. The 38 GB Ollama folder is not a moral failing, it is six model weights and you can keep two. The 22 GB of Claude logs is not a virus, it is diagnostic output from a tool with no log rotation, and you can move it to Trash.
Third, the next six months of growth become legible. You watch which subfolders trend up, and you trim them on a monthly cadence instead of waiting for the next low-disk dialog.
The full mechanical playbook for that monthly pass lives in the System Data 180 GB autopsy and the 16-month AI tools footprint audit. The plain-English definition of the bar itself is in what is System Data on Mac.
What did I do once the anxiety lifted?
I wrote a script. The script became CleanMyDev. The app is the breakdown panel I wanted Apple to build, with a safe-by-default cleanup row beside every entry. It scans 110+ developer-specific paths, sizes each one, labels which are safe to delete and which are risky, and moves your approvals to Trash so you always have a real undo.
The point is not the cleanup. The point is the name. Once the gray bar has names, the anxiety stops being a slow tab and starts being a Tuesday afternoon decision.
That is worth a coffee and a bagel, which is exactly what CleanMyDev costs at our pricing. One time, $9.99, no subscription, no telemetry, no upsell. The whole point is that you stop paying rent on a problem Apple should have solved in Storage settings five years ago.
If you have been ignoring the gray bar for months, this is your sign. Open the audit. Name the bytes. The anxiety lifts faster than the disk fills.
Related reading
- How I freed 147 GB on my MacBook in 12 minutes with CleanMyDev
- The Claude Code 472 GB postmortem
- Why I built CleanMyDev: 168 GB of System Data wasn't macOS
Stop wondering what System Data is.
CleanMyDev opens the box. 110+ developer-specific cleanup targets. Move-to-Trash by default. $9.99 lifetime.