Mole: the open-source CleanMyMac replacement I actually use now
Mole is a single CLI binary that replaces CleanMyMac, AppCleaner, DaisyDisk, and iStat Menus. I tested it on my 256GB MacBook — here's what it found.
My 256GB MacBook was down to 12GB free. I'd been paying for CleanMyMac for years but it always felt like overkill — a 200MB app with subscriptions and upsells just to delete cache files.
Then I found Mole. A single CLI binary that claims to replace CleanMyMac, AppCleaner, DaisyDisk, and iStat Menus. Open source, MIT licensed, installs via Homebrew. I gave it a shot.
What Mole does
It's an all-in-one Mac maintenance CLI. Five core commands:
- mo clean — deep cleanup: caches, logs, browser leftovers, orphaned app data
- mo uninstall — remove apps + their hidden remnants (launch agents, preferences, etc.)
- mo analyze — visual disk explorer, find large files
- mo status — live system monitoring (CPU, GPU, memory, disk, network)
- mo purge — clean project build artifacts (node_modules, target/, .next/, etc.)
Installation
brew install mole
# Or via script
curl -fsSL https://raw.githubusercontent.com/tw93/mole/main/install.sh | bash
# Verify
mo --versionThat's it. No account, no activation key, no 200MB download. The binary is tiny.
Testing: deep clean
First thing I ran — with --dry-run to preview before actually deleting:
$ mo clean --dry-run
🔍 Scanning system caches...
~/Library/Caches/com.apple.Safari → 2.1 GB
~/Library/Caches/com.spotify.client → 1.8 GB
~/Library/Caches/Google/Chrome → 3.4 GB
/Library/Caches/com.apple.iconservices → 890 MB
🔍 Scanning logs...
~/Library/Logs → 1.2 GB
/var/log → 340 MB
🔍 Scanning browser data...
Chrome Service Worker cache → 2.8 GB
Safari blob storage → 1.1 GB
📊 Total reclaimable: 14.2 GB
Run without --dry-run to clean.14.2 GB of reclaimable space. Most of it was browser caches and Spotify's offline data that I didn't need anymore.
$ mo clean
✓ Cleaned system caches: 8.3 GB freed
✓ Cleaned logs: 1.5 GB freed
✓ Cleaned browser data: 4.4 GB freed
Total freed: 14.2 GB
Disk space: 12 GB → 26.2 GB availableTesting: project purge
This is the one that sold me. As a developer, I have dozens of old projects with node_modules, .next,target/, and venv/ folders eating disk space:
$ mo purge --dry-run
🔍 Scanning ~/Code for build artifacts...
~/Code/old-project/node_modules → 1.2 GB
~/Code/rust-experiment/target → 3.8 GB
~/Code/next-app/.next → 890 MB
~/Code/python-ml/venv → 2.1 GB
~/Code/another-project/node_modules → 780 MB
... (23 more)
📊 Total reclaimable: 18.4 GB across 28 projects
Run without --dry-run to purge.18.4 GB in build artifacts from projects I haven't touched in months. These are all regeneratable — just run npm install or cargo build again when you need them.
Testing: smart uninstall
The difference between dragging an app to Trash and using Mole:
$ mo uninstall --dry-run
Installed apps (select to remove):
> Slack.app
- ~/Library/Application Support/Slack (340 MB)
- ~/Library/Caches/com.tinyspeck.slackmacgap (120 MB)
- ~/Library/Preferences/com.tinyspeck.slackmacgap.plist
- ~/Library/LaunchAgents/com.tinyspeck.slackmacgap.plist
- ~/Library/Saved Application State/com.tinyspeck.slackmacgap.savedState
Total for Slack: 462 MB (vs 180 MB if you just trash the .app)It finds the hidden remnants that macOS leaves behind. Launch agents, preferences, saved state, caches — all the stuff that accumulates over years of installing and uninstalling apps.
Testing: live monitoring
$ mo status
┌─ System Status ──────────────────────────────────┐
│ │
│ CPU: 12% (8 cores, Apple M2) │
│ GPU: 3% (Metal, 10-core) │
│ Memory: 11.2 / 16 GB (70%) │
│ Disk: 207 / 256 GB (81%) │
│ Net: ↓ 2.3 MB/s ↑ 140 KB/s │
│ │
│ Top processes: │
│ 1. Chrome (2.1 GB) │
│ 2. Xcode (1.8 GB) │
│ 3. Docker (1.2 GB) │
│ │
└──────────────────────────────────────────────────┘Replaces iStat Menus for quick checks. Not as feature-rich, but for a quick "why is my fan spinning" check, it's enough.
What I like
- Single binary, no dependencies — installs in seconds, no background processes, no menu bar icon eating RAM
- Dry-run by default mindset — every destructive command has
--dry-runso you can preview before committing - Project purge — no other cleaner understands developer build artifacts. This alone saves me 15-20GB regularly
- Open source (MIT) — you can read exactly what it deletes. No black box
- Free— the CLI is fully free. There's a $9 GUI app if you prefer that, but the CLI has everything
What it doesn't do
- No scheduled/automatic cleaning — you run it manually
- No malware scanning (it's a cleaner, not an antivirus)
- No cloud sync or backup features
- macOS only (experimental Windows branch exists)
My workflow now
# Weekly: quick clean
mo clean
# Monthly: purge old build artifacts
mo purge
# When disk is full: find what's eating space
mo analyze
# Before selling/wiping: full cleanup
mo clean && mo purge && mo uninstallVerdict
Mole freed 32GB on my first run (clean + purge combined). It does 80% of what CleanMyMac does, in a fraction of the size, for free. The project purge feature alone makes it worth installing for any developer.
If you're a developer on macOS who's tired of paying $40/year for CleanMyMac or manually hunting down old node_modules folders — just brew install mole and run mo clean --dry-run. You'll be surprised what it finds.
Links: GitHub | GUI App ($9)
Related posts