Safe
The app recreates it on its own and you would not notice. Preselected in the review list.
Mac storage analyzer and cleaner
See what fills your Mac, learn what each thing is, and clear only what your apps can rebuild. From Xcode and Docker to Ollama, Final Cut and Blender. Every rule is labelled, and everything goes to the Trash first.
Interface preview. Sizes are from a real developer MacBook, rounded.
A size-sorted analyzer with a treemap. Drill into any folder, sort by size, name, date or item count, and see what is really using space.
A catalog of known cache and build-output rules explains what each item is, whether it comes back, and what it costs to rebuild.
Removed items go to the Trash first. Every removal is logged, so you can restore one item or a whole cleanup.
The catalog
Most cleaners give you a total. StorageSage gives you a reason. Each rule carries one of three labels, and anything that could hold your own files is never preselected.
The app recreates it on its own and you would not notice. Preselected in the review list.
It comes back, but costs a re-download or a rebuild. Never preselected, except old build folders in projects you haven't touched.
May contain data you created or cannot easily recreate. Never preselected — you decide item by item, and it still goes to the Trash first.
At least one rule is verified on a real Mac or backed by vendor documentation.
Based on community reports. Works for many people. Confirm before relying on it.
Best effort, not yet checked against a source. Never preselected as Safe.
Built for how you work
Build products and indexes. The next build is a full rebuild.
Dependencies re-download, so the next Android build is slower.
Found next to package.json, pubspec.yaml, Cargo.toml and friends, with idle time shown.
Read live from Docker. Compose projects whose folder is gone are flagged as orphaned.
Holds installed apps and their data, so you choose which to remove.
Package caches and old toolchains, with the official clean command shown where one exists.
Re-pull with ollama pull. Hours of download, so never preselected.
Models and datasets you downloaded. Login tokens are never included.
Checkpoints you may have collected by hand, so it is a Review item.
Browser-engine caches. The large Cowork VM disk is a separate Review item.
Packages fetched by npx for MCP servers. They download again on next use.
Electron caches and language-server downloads. Conversation history and agent memory are never touched.
Rules for Claude Code, Cursor and similar agents deliberately skip transcripts, memory, settings, skills and credentials.
Render, optimized, proxy and analysis files. Regenerated from originals, which must stay.
Conformed audio and peak files, rebuilt when clips are reimported.
Render cache and optimized media. The project library is never touched.
Standard previews rebuild. Smart Previews can be your only editable copy, so they stay Review.
Caches and imported-asset folders, found next to your projects.
App caches and crash logs. Projects, stems, samples and packs are never suggested for removal.
Chat apps keep large web caches. Messages live on the server.
Web caches and downloaded on-device models. Passwords, history and cookies are never touched.
The streaming cache is separate. Offline songs are yours to keep or drop.
Often the largest single item. Listed, never preselected.
Shader cache and partial downloads rebuild. Installed games are Review.
Caches and auxiliary files. AutoRecovery files, vaults and libraries are treated as your data.
Safety, in detail
Smarter than delete
Everything in the app works from the terminal. Every destructive command is a dry run until you add --execute.
# what is big, and what could go $ storagesage scan ~ --depth 2 --top 10 $ storagesage suggest --persona developer --items # dry run first, then apply. Removed items go to the Trash $ storagesage clean --all-safe $ storagesage clean --all-safe --execute # Docker, unused images and build cache $ storagesage docker clean --all-safe # teach it about any app $ storagesage rules add --name "My App cache" \ --path "~/Library/Caches/com.example.app" --risk safe # change your mind $ storagesage history $ storagesage undo 0
Identical files are found by full hash, then replaced with APFS clones. Every path keeps working and the disk blocks are shared. Or move the extras to the Trash instead.
Old node_modules, build and target folders are matched to their project, and idle time comes from your git history and manifests. Only projects you haven't touched for months are preselected.
Point a rule at the folders any app fills, choose a label and preview exactly what it matches. Or right-click a folder in the analyzer and turn it into a rule. Rules are plain JSON you can share.
The Large Files view lists the biggest individual files on your disk, newest and largest first, so you can spot a forgotten video export or disk image and send it to the Trash in one click.
Questions
It is built to be cautious, not to be a guarantee. Every rule is labelled Safe, Rebuilds or Review. Nothing is removed without a review step, everything goes to the Trash first, every removal is logged for undo, and rules that could touch your own data are never preselected. Items rated Rebuilds cost time or bandwidth to restore. That is what the label means.
Two numbers, both shown before you confirm: what is freed immediately (Docker removals, which can't go to the Trash) and what is freed after you empty the Trash. We don't add up things that come back on their own or that still sit in the Trash.
Add a rule. In the app, right-click a folder in the analyzer and choose "Create Cleanup Rule from This", or use the rules page. From the terminal, use storagesage rules add. The preview shows exactly what it would match, and rules that point at credentials, your home folder or system folders are rejected.
SSH and GPG keys, cloud credentials, keychains, AI agent memory and history, agent settings, files that look like secrets, your home folder and personal folders as a whole, and system folders. This is enforced in code for built-in and custom rules.
No personal data. The only network request the app makes is an update check against storagesage.app: it compares your version to the latest and sends nothing about you or your files. You can turn it off in Settings. The command line tool makes no network requests, there is no analytics and there are no accounts. Everything else reads your disk and runs local tools such as git, tmutil and docker for read-only checks. This website sets no cookies and loads no third-party scripts.
macOS protects folders such as Safari, Mail and Photos data. Without access, StorageSage can't see them, so it will miss those caches. The app still works without it, and it tells you which folders it could not read.
macOS 14 (Sonoma) or later, including macOS 27. There are separate downloads for Apple Silicon (M1 and later) and Intel Macs (which top out at macOS 26); the page suggests the right one for your Mac, and you can pick either. macOS 13 and older are not supported.
Download
The app and the command line tool, built for your Mac. Free to download, signed and notarized by Apple.
Apple Silicon is M1 and later; Intel is pre-2021 Macs. Not sure? Which do I need?
SHA-256 checksum for the selected download: