
A developer Mac fills up with caches, build output, old tools and sound libraries you never open. What took the space on mine, the command that cleared each one, what I kept, and how I let an AI agent help without losing anything.
My Mac had 32 GB free on a 1 TB disk. One day later it had 402 GB free. Nothing I use was deleted.
None of it was my own files. It was caches, build output, tools I'd stopped using, and sound libraries I'd never opened. This post lists each one, the command that cleared it, and what I left alone, so I can repeat it next time and you can try it on your own Mac.
I did the cleanup with Claude Code and Mole, a free command-line cleaner for macOS. How I kept the agent from deleting the wrong thing is at the end.
| what | freed | how |
|---|---|---|
| Logic Pro and GarageBand sound libraries | ~150 GB | Finder or sudo rm (below) |
| App caches, logs and Xcode build output | 58.6 GB | mo clean |
| AI coding tools I'd stopped using, and their data | ~43 GB | moved to the Trash |
| Unused Docker images | 33.8 GB | docker image prune -a |
| Python's uv package cache | 20.9 GiB | uv cache prune |
| Two old iOS simulator runtimes | 15.3 GB | xcrun simctl runtime delete |
| Old Logi Options+ update packages | 5.2 GB | sudo rm on the old folders |
| Hugging Face models, old Node versions, leftovers from deleted apps | ~12 GB | moved to the Trash |
The free-space number doesn't add up exactly: macOS frees some space later (the Trash, Docker's disk image, deleted simulators) and counts in its own way.
mo clean (58.6 GB). One run removed 4,837 items. The big ones:
npx some-tool I'd ever run.Run mo clean --dry-run first. It lists everything it would remove without removing anything.
Docker (33.8 GB). docker system df showed 58 GB of images, more than half not used by any container. docker image prune -a removes images that no container uses, running or stopped. Docker's disk file doesn't shrink straight away; restarting Docker Desktop releases the space.
uv cache (20.9 GiB). uv keeps every Python package it has ever downloaded. uv cache prune removes the ones no environment uses; it went from 26 GB to 3.1 GB. Mole's preview said it would clean this, but the real run skipped it, so check afterwards.
iOS simulators (15.3 GB). I had four iOS runtimes and kept the newest two: xcrun simctl runtime list shows them, xcrun simctl runtime delete <id> removes one. Then xcrun simctl delete unavailable removes the simulator devices that used the deleted ones.
AI coding tools (~43 GB). I'd tried a lot of them. The apps were gone, but their data wasn't:
They live in hidden folders in your home folder (~/.cursor, ~/.kiro, ~/.lmstudio, …) and in ~/Library/Application Support. Uninstalling the app doesn't remove them. Check your shell config too: Kiro, LM Studio, Antigravity, Windsurf and Amazon Q had each added lines to ~/.zshrc, and Amazon Q's ran on every new terminal.
The biggest item wasn't developer tooling. Logic Pro and GarageBand had about 150 GB of sounds, in two places:
~/Music/Logic Pro Library.bundle: 69 GB/Library/Application Support/Logic: 61 GB of older sample folders, the location Logic used before/Library/Audio/Apple Loops: 7.7 GB/Library/Application Support/GarageBand: 6.7 GBAll of it is Apple's free content, and both apps download it again from Sound Library when you need it. macOS counts it as "System Data", which is why that number in System Settings looked so big.
If you remove the old Logic folder, keep Channel Strip Settings and Plug-In Settings: those can hold your own presets. Leave third-party instrument folders next to it alone.
node_modules across old projects (27.9 GB). mo purge --dry-run found it; I haven't decided yet. It's the next easy win.An agent that can delete files can delete the wrong ones. These rules kept it safe:
mo clean --dry-run, mo purge --dry-run, docker system df, du -sh. Nothing was removed before I'd seen the list and said yes.sudo. For /Library it gave me the exact command and I ran it in my own terminal..zshrc, .zprofile and .bashrc, it saved a copy of each.~/Downloads, and that folder had gone. Mole's log had no record of removing anything there.mo clean --dry-run, read it, then mo clean.docker system df, then docker image prune -a, then restart Docker Desktop.uv cache prune.xcrun simctl runtime list, delete the old runtimes, then xcrun simctl delete unavailable.mo purge --dry-run for node_modules and build folders in old projects.~ for hidden folders of tools you've uninstalled, and in ~/.zshrc for their lines.When to Build a Skill and When to Build an MCP Server
I shipped both for the same Vue design system, a month apart, and kept both. A skill carries judgement and goes stale; an MCP server carries facts and stays fresh. Here is how the choice actually breaks down.
What is the Array Reduce Method in JavaScript?
Learn how the Array reduce method works in JavaScript with practical examples for summing values, flattening arrays, and more.