ekofyi
Indie Workflow6 min read

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

bash
brew install mole

# Or via script
curl -fsSL https://raw.githubusercontent.com/tw93/mole/main/install.sh | bash

# Verify
mo --version

That'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:

bash
$ 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.

bash
$ 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 available

Testing: 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:

bash
$ 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:

bash
$ 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

bash
$ 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-run so 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

bash
# 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 uninstall

Verdict

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

Written by Eko

If you found this useful, follow @ekofyi on X for more notes like this — or get in touch if you have a problem to solve.