The short version
- Every known item carries two labels: a risk (Safe, Rebuilds, Review) and a confidence (Supported, Community, Unverified).
- The catalog is 624 path rules and 134 project-folder patterns across 317 tools, all plain JSON.
- Only verified Safe items are preselected. Anything that could hold your data is never preselected, and keys, credentials and system folders are refused outright, in code.
- Everything goes to the Trash first, with an undo journal. Most tools either just show sizes, or decide for you.
The problem with "what is big?"
A disk map is genuinely useful. Seeing that a single folder holds 40 GB is the first step. But it is only the first step, because size tells you nothing about consequence. Is that 40 GB a cache your app rebuilds in seconds, a model that takes an hour to re-download, or the only copy of a video you shot? A pure size view leaves you to guess, and guessing with delete is how people lose work.
The opposite approach, the one-button "clean my junk" tool, removes the guessing by removing you from the decision. That is fine until the day it sweeps up something you wanted. The honest middle path is to keep you in the decision but give you the facts to make it well. That is what a labelled rule is: a fact attached to a location.
Two labels on every item
Each thing StorageSage recognises carries two independent labels. Together they answer "how bad is it if this goes?" and "how sure are we this is what we think it is?"
Label one: risk
The risk label is about consequence, and there are exactly three.
Regenerated automatically; at worst the next launch is slightly slower. A browser cache, a build index. You would not notice it was gone. Preselected in the review list, but only when the app that owns it is not running.
Regenerable, but it costs time or bandwidth: a re-download or a full rebuild. A package cache, a downloaded AI model, an old project's build folder. Never preselected, except an old build folder in a project you have not touched for months.
May contain data you created or cannot easily recreate. A simulator with app data, a backup, Lightroom Smart Previews. Never preselected. You decide item by item, and it still goes to the Trash first.
Label two: confidence
The second label is about certainty, because honesty requires admitting what we have and have not verified. Internally there are four levels, which collapse to three public buckets:
| Bucket | Meaning |
|---|---|
| Supported | Verified on a real Mac, or backed by vendor documentation. |
| Community | Based on community reports. Works for many people; confirm before relying on it. |
| Unverified | Best effort, not yet checked against a source. |
The two labels are connected by a rule we enforce in code, and it is the heart of the whole safety model: an item can only be Safe if its confidence is Supported. If a rule is merely Community or Unverified, it is automatically downgraded from Safe to Rebuilds, so it can never be preselected and never auto-cleaned. We will not treat something as risk-free unless we have actually checked it.
What is in the catalog
As of the latest build, the catalog holds 624 path rules and 134 project-folder patterns, spanning 317 tools and apps. Of those tools, 126 are Supported, 83 Community, and 108 Unverified, and we label every one of them honestly rather than pretending the long tail is as certain as the core. A single rule is just structured data: a name, the paths it matches, its risk, what it regenerates from, the official command to rebuild it where one exists, which apps to quit first, and its confidence and sources. Because the rules are plain JSON, the published coverage list is generated from the very same catalog the app uses, so it cannot drift from reality.
The guardrails that are not negotiable
Labels help you make good choices. Guardrails stop bad ones from being possible at all. Regardless of any rule, built-in or custom, StorageSage refuses at deletion time to touch a hard-coded set of locations, and skips anything that falls inside them:
- SSH and GPG keys (
~/.ssh,~/.gnupg), and anything that looks like a secret (.env,credentials,.p12,id_*). - Cloud credentials (
~/.aws,~/.kube,~/.azure, gcloud), keychains, and password stores. - AI agent memory and settings (
~/.claude/projects, agent credentials and skills). - Your home folder and personal folders as a whole (Documents, Desktop, Pictures, Movies, and the rest), and system folders (
/System,/Library,/usr).
These checks are case-insensitive and resolve symlinks before deciding, so a rule cannot sneak past them by pointing at a link. And they are not advisory: a custom rule that points at any of these is rejected when you create it, with the reason shown. A custom rule that would sweep everything inside a personal folder is a hard error unless you rate it Review. Custom rules are also capped to Community confidence, which by the Safe-requires-Supported rule means they can never auto-preselect as Safe.
And a way back from everything
Even with good labels, "reproducible" and "convenient to reproduce" are different things, so nothing is deleted outright. Removed items go to the Trash first, and every removal is written to an undo journal grouped by cleanup, so you can restore a single item or roll back a whole session. StorageSage will only ever permanently purge items it put in the Trash itself, and only after a retention period, verified by file identity so it never touches something unrelated that happened to reuse a name. The one exception is Docker, which removes its own objects directly rather than through the Trash; StorageSage tells you that before it acts.
Auto-clean is off by default. When you turn it on, it only ever selects regenerable items, Safe ones, or Rebuilds items from projects idle past your threshold, never Review items, never while the owning app is running, and never custom rules unless you opt in. It is the labels doing their job without you in the room, held to the cautious end of what they allow.
So, do other tools do this?
This is the fair question, and the honest answer is: parts of it, yes; the whole of it, rarely. It helps to see the landscape as three kinds of tool.
Visualizers: they show, they do not label
DaisyDisk is the best-known. It is a polished visual scanner that draws your disk as a sunburst map and lets you drag items into a collector to delete. It is genuinely good at "what is big," and it does safeguard system folders. But it does not label whether an item is safe to delete, does not understand specific app caches by name, and deletes permanently rather than to the Trash. The free scanners, OmniDiskSweeper and GrandPerspective, are the same shape with less polish: a size list and a treemap respectively, with no risk labels and no cache awareness. All three answer "what is big?" and leave "is it safe?" entirely to you.
Junk cleaners: they classify into buckets and clean
CleanMyMac is the archetype. It sorts findings into categories, user caches, logs, language files, and offers a conservative smart selection you approve, moving items to the Trash. To be fair to it: it does let you expand a category and uncheck individual items, and it leans deliberately safe. The difference from StorageSage is the grain of the information. CleanMyMac tells you a bucket is "junk" and lets you inspect it; it does not put a per-item risk rating and a confidence level on each thing the way we do. Its default path nudges toward approving the selection wholesale. OnyX is a different animal, a free front-end for macOS's own maintenance and cache commands, organised by broad category rather than a per-app catalog, and aimed at technical users.
Developer tools: per-ecosystem catalogs, without the labels
On the developer side there are sharp, useful tools, and one is a close cousin of our approach. kondo walks your folders, recognises projects by their marker files across twenty-plus ecosystems, and offers to delete the build-artifact directories. That is a catalog of known deletable locations, which is exactly our spirit, but keyed to build artifacts only, without risk or confidence labels, and it deletes in the rm -rf sense rather than to the Trash; its own docs say to use it with care and keep a backup. npkill does the same for node_modules and, to its credit, flags the ones belonging to installed apps that would break. DevCleaner handles Xcode's DerivedData, device support and archives. docker system prune and cargo-cache are built-in, conservative, per-ecosystem garbage collectors. Each is excellent at its slice; none combines a broad catalog with dual labels and Trash-first undo.
We will not claim no other tool labels risk. A few niche apps do part of this, labelling some items by a safety level or moving to the Trash. What is genuinely uncommon, especially among the well-known tools, is the full combination: a broad catalog of known locations, both a risk and a confidence label on each, Trash-first with undo, and hard refusal of keys, credentials and system folders. That specific set is what StorageSage is built around.
Where StorageSage sits
If the visualizers are "show but don't classify" and the junk cleaners are "classify and clean for you," StorageSage is a third thing: label each item and hand you the decision. It shows you the map like a visualizer, understands your specific caches like a junk cleaner, catalogs build artifacts like the dev tools, and then does the thing none of them quite do, which is tell you, for every single item, what it is, how risky removing it is, how sure we are, and what it costs to get back, before anything moves, and with a way back if it does.
See the labels on your own disk
StorageSage maps your Mac, labels every known item Safe, Rebuilds or Review with a confidence level, explains what each one is, refuses to touch your keys and system files, and sends everything to the Trash first. Browse the full catalog, or try it.
Download for macOS Browse the coverage listSources
- StorageSage's own catalog and source: risk and confidence models, the Safe-requires-Supported cap, the safety guardrail list, custom-rule validation, Trash-first journal and auto-clean defaults. Catalog counts are from the generated coverage data (624 rules, 134 patterns, 317 tools, 126 supported).
- Competing tools, from their official sites, documentation and reputable reviews: DaisyDisk, OmniDiskSweeper, GrandPerspective, CleanMyMac (MacPaw), OnyX (Titanium Software), kondo, npkill, DevCleaner,
cargo-cache, anddocker system prune. Characterisations are drawn from those sources; where a tool's behaviour is reported rather than documented, it is described as such.