Storage Sweep
A native macOS app under 1 MB that finds what's eating your disk and turns cleaning up into an RPG.
Debit · what made it hard
Disk-usage tools are either ugly treemaps or "cleaners" you can't trust with your files.
Credit · what shipped
A dependency-free Swift app with a multithreaded fts(3) scanner, a rule-based cleanup advisor, and a fantasy island where your biggest folders are dragons.
Why
My disk kept filling up, and every tool that told me why was either a grey treemap or a “cleaner” that wanted to delete things without telling me what. So I built one I’d enjoy opening, and I kept the app smaller than most icons.
How it works
- Scanner. An
fts(3)walk with one thread per top-level subfolder. It counts allocated bytes (what’s actually on disk), doesn’t follow symlinks, and never crosses into other volumes. Only folders are kept in memory; files are just summed. - The map. Your folder becomes a fantasy island. Each subfolder is a territory sized by its disk use, with organic borders, rivers and a coastline. Under the hood it’s a squarified treemap run through a smooth noise warp. Terrain follows size: meadows, woods, forest, highlands, peaks.
- The ranking. The same folders as a plain leaderboard bar chart, toggleable by size or file count.
The bounty board
After every scan, a rule-based advisor (no network, no AI) lists what it recognises in three groups:
- ✅ Safe to delete. App caches, logs, Xcode DerivedData,
.next/.turbobuild caches. One button clears them all. - 🔁 Rebuilt when needed.
node_modules, Python venvs, Rusttarget, package caches. - 👀 Review first. Old installers, large files untouched for 6+ months, iPhone backups, Ollama models.
The game
Every folder is a monster ranked by size: Microbe → Gremlin → Ogre → Dragon → Titan. Slaying one moves it to the Trash, which is always recoverable, and the top bar shows how much of what you slew is still sitting in the Trash, so the game never claims space that isn’t free yet. You get 12 heroes, spells on keys 1–5, XP, 15 achievements and a daily quest.
The details I’m proudest of:
- The monsters are drawn in code and every sound is synthesized at runtime, so the app ships with no image or audio files.
- VoiceOver can reach every monster on the map, and the ranking view is a plain-list alternative.
- All idle motion respects Reduce Motion.
- The release binary is built with
-Osizeand stripped. The whole universal app is under 1 MB.
Opening it the first time
Storage Sweep is free and isn’t notarized by Apple (that costs $99 a year), so macOS blocks it on first launch. You only have to allow it once:
- Open the
.dmgand drag Storage Sweep into Applications. - Double-click it. When macOS says it can’t verify the app, click Done (not Move to Trash).
- Open System Settings → Privacy & Security, scroll to Security, and click Open Anyway next to “Storage Sweep was blocked”.
Prefer Terminal? This does the same thing in one line:
xattr -dr com.apple.quarantine "/Applications/Storage Sweep.app"
It only measures folder sizes. Nothing is uploaded, and “Slay” always asks before moving anything to the Trash.