以前要把一台 Mac 清乾淨,是一套儀式。

先開 CleanMyMac 掃快取,再開 DaisyDisk 看是誰把硬碟吃光,卸載 app 得另外開 AppCleaner 才不會留殘骸,想知道機器為什麼變慢還要瞄一眼選單列上的 iStat Menus。四個視窗、四套年費,而且這幾個工具自己就愛背景常駐——CleanMyMac 光待機就吃 300MB+ 記憶體,挺諷刺的。

同樣這套動作,現在用 brew install mole 裝完一個 binary 就全包了。下面我們把「清一次 Mac」這件事,舊做法跟新做法逐項擺在一起看。


看機器狀況:選單列 vs mo status

舊做法是讓 iStat Menus 常駐在選單列,CPU、記憶體、磁碟 I/O 隨時掛在那。問題是你 99% 的時間根本沒在看它,它卻 99% 的時間都在跑。

mo status 把同樣的儀表板變成「要看才叫出來」:即時顯示 CPU、GPU、記憶體、磁碟 I/O、top processes,看完按 q 退出,平時不佔任何資源。監控本來就不該是常駐服務,是隨叫隨到的查詢。

找空間黑洞:DaisyDisk vs mo analyze

DaisyDisk 的賣點是那張漂亮的環狀圖。mo analyze 給你的是一個能用方向鍵、也能用 Vim h/j/k/l 鑽的視覺化磁碟瀏覽器,一層層往下找那種「明明是個小 app 卻佔 5GB」的東西。少了動畫,多了鍵盤流,對慣用終端機的人反而更快。

卸載與清理:一鍵全清 vs 先預覽再動手

這是兩種做法差最多的地方。

AppCleaner 卸載 app 算乾淨了,但 mo uninstall 更狠——互動選擇要砍的 app,顯示每個的大小跟最近使用時間,然後把本體、~/Library/Preferences 設定檔、launch daemon、隱藏快取一次清掉,常見一個 app 清出 12 個位置、52 個關聯檔案。

清快取則是 mo clean:快取、log、暫存、瀏覽器快取、Xcode derived data、iOS simulator 快取,對標 CleanMyMac 的核心功能。但這裡有個關鍵差異——GUI 工具往往把整個流程壓成一個按鈕,你按下去之後才知道發生了什麼。Mole 走的是 git 的路子:

1
2
3
4
mo status          # 1. 先看機器狀況
mo analyze # 2. 找空間黑洞
mo clean --dry-run # 3. 預覽要清什麼(不會真的清)
mo clean # 4. 確認沒事再實際清

--dry-run 是整套工具最重要的安全閥。你不會直接 git push --force,你會先 statusdiff、確認、再動手;清磁碟也該這樣。GUI 把這個流程簡化成一鍵,對「快」是好事,對「可控」是災難。Medium 上有人實測一次清出 25GB,5~10GB 則是常態。

剩下三個指令補齊全套:mo optimize 清 dyld cache、重建 spotlight 索引;mo touchid 設定 sudo 用指紋認證,清理不用每次打密碼;不知道從哪開始就直接打 mo 進互動選單。


開發者最有感的差異:mo purge

如果你是工程師,新舊做法的差距在這個指令上最明顯。

舊做法清編譯產物,要嘛手動 find . -name node_modules -exec rm -rf {} +,速度快但很容易連活躍專案一起砍;要嘛根本懶得清,放著 node_modules 一個專案 500MB,五個就 2.5GB。

mo purge 掃描指定路徑下所有可重新生成的構件目錄——node_modules、Rust/Java 的 target、Swift 的 .build、前端的 build/dist、Python 的 venv/.venv——然後做了一件 find + rm 不會幫你做的事:7 天內動過的專案預設取消勾選,你要主動點才會清。省下的「跑 pnpm install 等十分鐘」的痛苦,光這點就值得裝。

1
2
mo purge --paths ~/code,~/work        # 旗標指定掃描路徑
echo '~/code' >> ~/.config/mole/purge_paths # 或寫進設定檔

真正拉開距離的地方:--json

到這裡為止,新舊做法還只是「GUI 換成 CLI」。真正讓兩者不在同一個層級的,是 Mole 所有指令都支援 --json

GUI 工具的清理結果只能用眼睛看,看完就沒了。Mole 的結果可以寫進排程、寫進稽核 log、寫進 CI pipeline:

1
2
# 每週日凌晨 3 點自動清快取(crontab)
0 3 * * 0 mo clean --json >> ~/Library/Logs/mole-weekly.log

公司 IT 可以把 mo clean --dry-run --json 塞進 MDM 部署腳本,每週幫員工自動清快取、每月跑一次 mo optimize,紀錄寫到 log 裡稽核時撈出來看。你沒辦法把 CleanMyMac 的點擊動作寫進 cron——能用 CLI 的東西就 CLI 化,是個被低估的長期生產力複利。

V1.35.0 起 Mole 還能清 Claude Code、Cursor 的快取。這對每天用 AI coding 的人特別有感:context 快取、embedding 索引、聊天紀錄累積得很快,一個月就能吃掉幾 GB。


換之前要知道的幾件事

只支援 macOS。Windows 在 windows 分支但實驗性,Linux 完全沒計畫——混用 Linux 的話那邊還是得找別的工具(BleachBit 算合理選擇)。

iTerm2 相容性有問題,互動選單會亂掉、色彩會錯。iTerm2 是 macOS 開發者最常用的終端機之一,這點要特別注意;慣用的話可能得切 Ghostty、Warp、WezTerm、Alacritty、kitty 其中一個跑 Mole。

某些清理需要 sudo,建議搭 mo touchid。AI 工具快取目前只認 Claude Code、Cursor,Aider、Cline、Continue 還沒納入,要等後續版本。


這個轉變真正改變的是什麼

把舊做法跟新做法擺完一輪,你可能會把它讀成「省 89 美金」的故事。但真正值得想的是另一件事:為什麼一個年費 89 美金的 GUI 工具,核心功能可以被一個 Shell + Go binary 在 80 天內衝到 38K stars?

答案不是 Mole 多厲害,而是 CleanMyMac 賣的從來不是技術,是介面與品牌信任。當有人把同樣的清理邏輯做成可審計、可腳本化、可自動化的 CLI,付費 GUI 就會在「願意打開 terminal 的人」這個區段瞬間蒸發。Notion 對 Obsidian、Postman 對 curl + jq、Sequel Pro 對 psql、Docker Desktop 對 OrbStack,同樣的劇本都演過一遍。

換不換看你自己。但「能 CLI 化的功能會慢慢 CLI 化」這條暗線,大概會是 Mac 軟體生態未來五年的隱性主旋律。

來源:tw93/Mole on GitHubMole CLI 官方說明Open Source Bash+Go tool replacing $60+ paid Mac apps