Shodhana › Guides
Six answers, each one written because the existing ones were wrong or vague.
Every page here answers a question at the top, then explains why. Where something is genuinely unsafe to delete — and on a Mac, a few things are — it says so plainly rather than burying it. Commands are given in a form you can paste, including the flags that stop them from lying to you.
Finder, df, and du report three different numbers for one disk.
What purgeable space and APFS snapshots really are, why du both over- and
undercounts, and the order to look in.
It is not a folder — it is everything the Storage pane could not label. The eight things that land there, the command that measures each, and the two that do not grow back.
Yes. What regenerates, what the next build costs, why Swift Package Manager makes it a bad idea offline — and the folder one directory away that will cost you crash reports forever.
Safe to delete: the symbols re-copy from the device. Keep the newest two per OS, the command that trashes the rest, and the same-named folder inside Xcode.app that breaks Xcode if you touch it.
Three things share one folder and only one is a cache. Measure it by part, prune the downloads with hf cache rm and prune, and keep the login token, local fine-tunes and prepared datasets no download brings back.
Shared hash-named layers on one side, plain GGUF files on the other. The commands that remove a model cleanly, how to move the store to another disk, and why deleting the folders by hand breaks models you meant to keep.
Yes — 17 GB on the Mac this was written on, six wrapper distributions deep. The command that finds which Gradle versions your projects still pin, and the one way of deleting that corrupts the store.
An 8 GB disk image per runtime under a path you cannot rm, a folder of apps and data per device. The simctl commands that remove them, and the folders not to touch.
Safe to delete, fully rebuilt from source. Why it grows faster than the code, the command that finds every target/ on the disk, and the config that stops each project keeping its own copy.
Find every environment by its pyvenv.cfg, write the lockfile that makes it disposable, clear the installer caches behind them, and know which environments something else still points at.
Count every copy without double-counting nested ones, sort by last commit instead of size, and check the four cases where a reinstall will not reproduce what you deleted.
Why pruning images frees nothing on the host, the order to reclaim in, and the one prune flag that silently destroys database volumes.
Sixteen toolchains in one table — location, measure, clear, and what clearing costs. Plus the two things living among the caches that are not caches.
These are the same questions Shodhana answers on your actual machine — every reclaimable item attributed to the app or project that owns it, sized, dated by last use, and shown with the evidence for why it is safe to remove before anything is deleted. See how it works.