Mac storage analyzer and cleaner

Know what's safe to delete.

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.

Everything goes to Trash first Undo anything Nothing leaves your Mac
StorageSage window showing the disk analyzer and cleanup review sheet

Interface preview. Sizes are from a real developer MacBook, rounded.

01

Find

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.

02

Know

A catalog of known cache and build-output rules explains what each item is, whether it comes back, and what it costs to rebuild.

03

Undo

Removed items go to the Trash first. Every removal is logged, so you can restore one item or a whole cleanup.

The catalog

Every item says what happens if you delete it.

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.

Safe

The app recreates it on its own and you would not notice. Preselected in the review list.

Slack cache
~/Library/Application Support/Slack/Cache

Rebuilds

It comes back, but costs a re-download or a rebuild. Never preselected, except old build folders in projects you haven't touched.

node_modules in an idle project
restored by npm, pnpm or yarn install

Review

May contain data you created or cannot easily recreate. Never preselected — you decide item by item, and it still goes to the Trash first.

Android emulators
~/.android/avd/*.avd
300+tools and apps covered
600+path rules
130+project folder patterns
100+tools officially supported

Supported

At least one rule is 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. Never preselected as Safe.

Browse the full coverage list

Built for how you work

The tools you actually use, not a generic junk list.

Xcode DerivedData Safe

~/Library/Developer/Xcode/DerivedData

Build products and indexes. The next build is a full rebuild.

Gradle caches Rebuilds

~/.gradle/caches

Dependencies re-download, so the next Android build is slower.

Old project build folders Rebuilds

node_modules, build, target, Pods, .venv

Found next to package.json, pubspec.yaml, Cargo.toml and friends, with idle time shown.

Docker and OrbStack Safe Rebuilds Review

dangling images, build cache, unused images, orphaned volumes

Read live from Docker. Compose projects whose folder is gone are flagged as orphaned.

iOS Simulator devices Review

~/Library/Developer/CoreSimulator/Devices

Holds installed apps and their data, so you choose which to remove.

Language ecosystems Rebuilds

npm, pnpm, cargo, go, pip, uv, conda, Maven

Package caches and old toolchains, with the official clean command shown where one exists.

Safety, in detail

Cautious by default, and honest about numbers.

  • Free now vs after emptying the TrashThe review sheet shows both. Moving something to the Trash doesn't free space until you empty it, and we say so instead of inflating the total.
  • Undo historyRestore a single item or a whole cleanup. Items can also be put back from the Trash with Put Back.
  • Everything goes to the Trash firstNothing is deleted outright. Removed items sit in the Trash, so you can Put Back anything, and space is only reclaimed when you empty it.
  • Running apps are flaggedIf an app is open, its items are marked "close first" and are never preselected. Auto-clean and the command line skip them. Close Slack or Xcode before you clean their caches.
  • Nothing is auto-deleted by surpriseAuto-clean is off by default. When enabled it only touches Safe items and idle project folders, and custom rules stay out unless you opt in.

Smarter than delete

Also a command line, for scripts and for people who prefer one.

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

Duplicates without data loss

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.

Stale project detection

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.

Your own rules

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.

Largest files at a glance

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

Straight answers.

Is it safe?

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.

How is "space freed" measured?

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.

What if my app isn't covered?

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.

What does it never touch?

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.

Does it send anything anywhere?

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.

Why does it ask for Full Disk Access?

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.

Which Macs are supported?

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

Download StorageSage.

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:

Loading…
  1. Open the .dmg and drag StorageSage.app to Applications.
  2. Launch it. The build is signed with a Developer ID and notarized by Apple, so it opens without a warning.
  3. Optional: grant Full Disk Access so protected folders such as Safari and Mail caches are included.
  4. On first launch the app offers to install the storagesage command so you can use it in any terminal. You can also do this anytime from Settings.