用 Claude Code 或 Codex 安全清理 Mac 空間
現在越來越多人打開 Claude Code 或 Codex,直接輸入一句「磁碟快滿了,幫我看看是什麼佔的」。這件事交給 Agent 其實很合適,它能一口氣讀完上百個資料夾,認出 ~/Library/Developer/Xcode/DerivedData 是建置產物、~/Library/Containers/com.tencent.xinWeChat 是聊天紀錄,再用白話講給你聽。真正有風險的是下一步,同一個 Agent 根據自己讀到的 du 結果拼出一條 rm -rf,直接在你的使用者資料夾裡執行,這條指令沒有預覽,不進垃圾桶,刪了什麼也沒有任何記錄。
這篇講一種更穩的分工,Agent 負責讀和解釋,有預覽的清理工具負責刪,中間由你點頭。這裡用的工具是 Mole 的免費命令列版 Mole CLI,以及它的官方 Agent skill,這個 skill 會教 Claude Code、Codex、Cursor 等 Agent 怎麼正確使用 Mole。換成別的工具,只要它有 dry run,下面這套習慣一樣適用。
為什麼不該讓 Agent 用 rm 刪檔案
清理裡模糊的那部分正是 Agent 擅長的,比如走過一棵很大的資料夾樹,判斷某個路徑屬於哪個 App,從四千個候選裡挑出最值得看的十二個。但「這個路徑能不能刪」是另一類問題,它要求每次都給出同樣的答案,還要有一份你能逐條核對的清單,這兩樣模型都給不了,更完整的討論在AI Mac 清理工具:模型該決定什麼,不該決定什麼。
落到實際操作上,讓 Agent 直接用 shell 指令清理,會少掉四樣東西:
- 預覽。
rm一執行就生效,你看到的是一行指令,看不到它展開後的三千個路徑。 - 退路。 用
rm刪掉的檔案不經過垃圾桶,沒有備份的話就找不回來了。 - 記錄。 下週某個 App 的設定突然不見了,你沒辦法知道是不是那次清理動過它。
- 不能碰的清單。 一個名字像快取的資料夾,裡面可能是登入工作階段、簽署金鑰,或另一個 App 還在寫入的資料庫,Agent 未必知道。
專門做清理的工具本來就帶著這四樣,Agent 要做的就變成讀懂它的輸出,然後問你。
安裝
先用 Homebrew 安裝 Mole CLI,再安裝 skill:
brew install mole
npx skills add tw93/Mole -a claude-code codex cursor -g -y
第二條指令會一次幫 Claude Code、Codex 和 Cursor 都裝好 skill,用不到的 Agent 從指令裡刪掉就好。如果習慣用 Agent 自己的外掛系統,在 Claude Code 裡依序執行 /plugin marketplace add tw93/Mole 和 /plugin install mole@mole,在 Codex 裡依序執行 codex plugin marketplace add tw93/Mole 和 codex plugin add mole@mole。之後要更新 skill,執行 npx skills update -g -y。
裝完不需要任何設定,下次你問起磁碟空間、想移除某個 App,或 Mac 為什麼變慢,Agent 會自己載入這個 skill 並照著做。
skill 給 Agent 定的四條規矩
skill 是一份不長的 Markdown 檔案,大部分篇幅是規矩而不是指令,和你的檔案安全有關的是這四條:
- 先讀,再動。 Agent 先用唯讀指令回答問題,磁碟用量看
mo analyze --json,記憶體和 CPU 看mo status --json,以前清理過什麼看mo history --json,裝了哪些 App 看mo uninstall --list,再加上所有帶--dry-run的預覽,這些都不必問你就可以執行。 - 每次刪除前先預覽。 清理之前,Agent 先帶上
--dry-run跑一遍,再把結果講給你聽,總共多大,最大的幾組是什麼,每一組是永久刪除、移到垃圾桶,還是之後要重新下載才能重建。 - 打下刪除指令之前先問你。 由 Agent 呼叫時,
mo clean一啟動就開始刪,中間不會再確認,所以同意這一步必須先在對話裡完成。「為什麼磁碟滿了」只是一個問題,不算同意,看完預覽後說「就清這些」才算。 - 有些步驟留給你自己。 解除安裝 App、在清單裡勾選,以及任何需要管理者密碼的操作,都留在你自己的終端機裡做,Agent 只給你準確的指令就停下,它不會執行
sudo,也不會向你要密碼。
還有兩條小規矩堵住了常見的繞路,Agent 只能用 skill 裡列出的指令和參數,沒辦法自己編一個 --force 出來,Mole 略過或保護的路徑,Agent 也不能改用 rm 硬刪,略過本身就是 Mole 的答案。
一次完整的對話是什麼樣子
假設你輸入:「Mac 提示磁碟快滿了,是什麼佔的?」
Agent 先執行 mo --version,確認面對的是 macOS 版,再執行 mo analyze --json。回傳的是你使用者資料夾裡佔空間大的位置,大小以位元組為單位,附帶一個 scan_status,值是 complete、partial 或 unavailable,Mole 認得出是快取的資料夾還會標上 cleanable: true 這類旗標。最大的兩三項,Agent 可能再對它們各執行一次 mo analyze --json,看看裡面是什麼。
接著它會把找到的東西分給能處理的人:
| 找到的東西 | 交給誰 |
|---|---|
| App 快取、日誌、已刪除 App 的殘留 | mo clean |
| 專案裡的建置產物和相依套件資料夾 | mo purge |
| 不再使用的已安裝 App | mo uninstall,由你來執行 |
| 「下載項目」裡的安裝程式 | mo installer,由你來執行 |
| 文件、照片、音樂、虛擬機器、iPhone 備份 | 由你決定,沒有任何 Mole 指令會刪除它們 |
最後一行和前面幾行一樣重要。好的回答會告訴你其中 40 GB 是一台 Parallels 虛擬機器,然後把決定留給你,而不是去找一條能把它刪掉的指令。
如果你想清理出空間,Agent 會先執行 mo clean --dry-run,摘要顯示在對話裡,每一個候選路徑都會寫進 ~/.config/mole/clean-list.txt,所以在真正動手之前,你問一句「我的 Slack 聊天紀錄在不在裡面」,它可以讀這份檔案回答你。它也會提醒你 mo clean 預設會清空垃圾桶,很多人是刻意把東西留在裡面的。只有你說可以,它才會執行 mo clean。
哪些事留給你,為什麼
需要管理者權限的部分。 一部分系統快取要管理者密碼才能清,由 Agent 執行時,mo clean 只清使用者層級的部分,略過系統層級的部分,並在輸出裡寫明。想兩部分一起清,Agent 會請你在自己的終端機裡執行 mo clean,Mole 會自己要求輸入密碼,一次跑完。它不會先清一半、再讓你補另一半,因為第二次執行會重新掃描,把第一次做過的事再做一遍。
解除安裝 App。 Agent 可以用 mo uninstall --list 找到這個 App,再用 mo uninstall --dry-run <name> 讓你看清楚會一起移除什麼,包括 App 本身、它的快取,以及一份「Personal data kept」清單,列出除非你另外選擇、否則都會保留的設定和資料。真正的解除安裝在沒有終端機時會拒絕執行,所以 mo uninstall <name> 由你自己來跑,移除的檔案會進垃圾桶。以前解除安裝的 App 還留著東西,可以看解除安裝 Mac App 後,如何清理殘留檔案。
專案資料夾。 mo purge --dry-run 會列出兩類東西,一類是建置產物,離線就能重新建置,另一類是 node_modules 這類相依套件資料夾,要重新下載才能還原。只想清其中幾個專案時,Agent 會把 mo purge 交給你,它的選擇清單可以讓你自己挑。
事後怎麼核對
真正跑完之後,Agent 會讀指令自己的摘要和 mo history --json --limit 1,告訴你刪了什麼、略過了什麼。略過的項目它不會重試,Mole 會刻意略過正在使用或受保護的檔案。
這份記錄還能回答一個通常一週後才冒出來的問題:「那次清理是不是刪了我的檔案?」直接這樣問 Agent 就好,它會在 mo history --json --limit 200 裡找這個路徑以及它底下的所有東西,日期更早的話再去讀完整的刪除記錄。沒找到,表示 Mole 沒有刪除它的記錄,這不等於證明沒有別的東西刪過它,Agent 也應該這樣措辭。
想讓某個資料夾以後都不被清理,請 Agent 把它加入保護就好,它會在你同意後把路徑寫進 ~/.config/mole/whitelist,再執行一次 mo clean --dry-run,確認這個路徑已經不在清單裡。
用的不是 Mole 怎麼辦
skill 是為 Mole 寫的,但裡面的規矩不是。如果你讓 Agent 用別的工具清理,可以在對話一開始先貼上這樣一段:
刪除任何東西之前,先把清單給我看,說清楚哪些移到垃圾桶、哪些是永久刪除。
用工具自帶的 dry-run 或預覽模式,不要用 rm 或 find -delete,不要執行 sudo。
任何會刪除檔案的指令,都等我說可以再執行,執行完告訴我刪了什麼、略過了什麼。
它沒辦法讓 Agent 憑空多出保護路徑清單或操作記錄,但至少把預覽和決定權放回了該在的地方。不管用什麼工具,哪些東西應該留著,可以看Mac 清理工具絕不可刪的內容和Mac 哪些快取可以刪,哪些資料該保留?,這兩篇逐個資料夾講過。
常見問題
哪些 AI Agent 能用 Mole 的 skill?
安裝指令裡寫了 Claude Code、Codex 和 Cursor,npx skills 也能幫其他讀取 skill 檔案的 Agent 安裝。Claude Code 和 Codex 也可以從各自的外掛市集安裝。Agent 必須能在你的 Mac 上使用 shell,所以只能聊天、沒有終端機的助理跑不了 Mole。
Agent 會不會不問我就刪檔案?
skill 要求它不能這樣做,會刪除的指令只能在預覽之後、你在對話裡同意之後才執行。但這是給 Agent 的指令,不是一把鎖,所以 Agent 自己對 shell 指令的核准提示要保持開啟,也不要在它的權限設定裡預先放行 rm 或 mo clean。解除安裝和需要管理者權限的步驟,Agent 根本跑不了,一定要在你的終端機裡完成。
透過 Agent 清理,會比單獨用 Mole App 或 CLI 刪得更多嗎?
不會。Agent 執行的就是你自己也能打的那些 CLI 指令,保護路徑和預覽都一樣。它多做的是閱讀和解釋,告訴你哪個資料夾屬於哪個 App,該用哪條指令處理,或者哪條都不該用。
Mole CLI 要付費嗎?
不用。Mole CLI 以 GPL-3.0 授權開源,skill 也在同一個存放庫裡。Mole for Mac 是另一個付費 App,適合比較想用滑鼠點、不想打字的人,Agent 最多只會提一次,而且只在某一步用視窗操作更合適時才提,例如挑選要解除安裝的 App。
Windows 上能這樣用嗎?
可以,搭配 Mole CLI for Windows 使用,它有自己的一套指令,資源回收筒和系統管理員步驟的規則也不一樣。skill 會讀 mo --version,自動切換到 Windows 的說明。這篇的 Windows 版是用 Claude Code 或 Codex 安全清理 Windows 空間。
延伸閱讀
- AI Mac 清理工具:模型該決定什麼,不該決定什麼,講模型在清理裡哪裡幫得上忙、哪裡幫不上。
- 如何清理 Mac 上 AI 程式開發工具留下的檔案,講 Claude Code、Codex 和 Cursor 在 Mac 上留下的快取和工作階段。
- Mole CLI 還是 Mole for Mac,講怎麼在命令列和 App 之間選擇。