# 用 Claude Code 或 Codex 安全清理 Mac 空間

> 讓 Claude Code、Codex 或 Cursor 找出佔滿 Mac 的東西，但不讓它執行 rm，先安裝 Mole skill，用 --dry-run 預覽，同意後再清理，最後查看記錄。

Published: 2026-10-21

現在越來越多人打開 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 清理工具：模型該決定什麼，不該決定什麼](https://mole.fit/tw/blog/ai-mac-cleaner-tools)。

落到實際操作上，讓 Agent 直接用 shell 指令清理，會少掉四樣東西：

1. **預覽。** `rm` 一執行就生效，你看到的是一行指令，看不到它展開後的三千個路徑。
2. **退路。** 用 `rm` 刪掉的檔案不經過垃圾桶，沒有備份的話就找不回來了。
3. **記錄。** 下週某個 App 的設定突然不見了，你沒辦法知道是不是那次清理動過它。
4. **不能碰的清單。** 一個名字像快取的資料夾，裡面可能是登入工作階段、簽署金鑰，或另一個 App 還在寫入的資料庫，Agent 未必知道。

專門做清理的工具本來就帶著這四樣，Agent 要做的就變成讀懂它的輸出，然後問你。

## 安裝

先用 Homebrew 安裝 Mole CLI，再安裝 skill：

```bash
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 檔案，大部分篇幅是規矩而不是指令，和你的檔案安全有關的是這四條：

1. **先讀，再動。** Agent 先用唯讀指令回答問題，磁碟用量看 `mo analyze --json`，記憶體和 CPU 看 `mo status --json`，以前清理過什麼看 `mo history --json`，裝了哪些 App 看 `mo uninstall --list`，再加上所有帶 `--dry-run` 的預覽，這些都不必問你就可以執行。
2. **每次刪除前先預覽。** 清理之前，Agent 先帶上 `--dry-run` 跑一遍，再把結果講給你聽，總共多大，最大的幾組是什麼，每一組是永久刪除、移到垃圾桶，還是之後要重新下載才能重建。
3. **打下刪除指令之前先問你。** 由 Agent 呼叫時，`mo clean` 一啟動就開始刪，中間不會再確認，所以同意這一步必須先在對話裡完成。「為什麼磁碟滿了」只是一個問題，不算同意，看完預覽後說「就清這些」才算。
4. **有些步驟留給你自己。** 解除安裝 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 後，如何清理殘留檔案](https://mole.fit/tw/blog/how-to-remove-leftover-files-after-uninstalling-mac-apps)。

**專案資料夾。** `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 用別的工具清理，可以在對話一開始先貼上這樣一段：

```prompt
刪除任何東西之前，先把清單給我看，說清楚哪些移到垃圾桶、哪些是永久刪除。
用工具自帶的 dry-run 或預覽模式，不要用 rm 或 find -delete，不要執行 sudo。
任何會刪除檔案的指令，都等我說可以再執行，執行完告訴我刪了什麼、略過了什麼。
```

它沒辦法讓 Agent 憑空多出保護路徑清單或操作記錄，但至少把預覽和決定權放回了該在的地方。不管用什麼工具，哪些東西應該留著，可以看[Mac 清理工具絕不可刪的內容](https://mole.fit/tw/blog/what-mac-cleaners-should-never-delete)和[Mac 哪些快取可以刪，哪些資料該保留？](https://mole.fit/tw/blog/which-mac-caches-are-safe-to-delete)，這兩篇逐個資料夾講過。

## 常見問題

### 哪些 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 空間](https://mole.fit/windows/blog/use-claude-code-to-clean-up-windows)。

## 延伸閱讀

- [AI Mac 清理工具：模型該決定什麼，不該決定什麼](https://mole.fit/tw/blog/ai-mac-cleaner-tools)，講模型在清理裡哪裡幫得上忙、哪裡幫不上。
- [如何清理 Mac 上 AI 程式開發工具留下的檔案](https://mole.fit/tw/blog/how-to-clean-up-ai-coding-tools-mac)，講 Claude Code、Codex 和 Cursor 在 Mac 上留下的快取和工作階段。
- [Mole CLI 還是 Mole for Mac](https://mole.fit/tw/blog/mole-cli-vs-mac-app)，講怎麼在命令列和 App 之間選擇。

---

Canonical HTML page: https://mole.fit/tw/blog/use-claude-code-to-clean-up-mac
Blog index for agents: https://mole.fit/tw/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
