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

C 槽一變紅，現在越來越多人會請 Claude Code 或 Codex 幫忙查原因。這一步交給 Agent 很合適，它能列出上百個資料夾，認出 `AppData\Local\npm-cache` 是套件快取、`Documents\WeChat Files` 是聊天紀錄，再用白話講清楚。風險在下一步，同一個 Agent 依自己讀到的資料夾大小拼出一條 `Remove-Item -Recurse -Force` 或 `del /s /q`，產生的指令裡引號或反斜線錯一個，就可能指到別的資料夾上，而這兩條指令都不會先問你，不進資源回收筒，也不留任何記錄。

這篇講一種更穩的分工，Agent 負責讀和解釋，有預覽的清理工具負責刪，中間由你點頭。這裡用的工具是 Mole 的免費 PowerShell 版 Mole CLI for Windows，以及它的官方 Agent skill，這個 skill 會教 Claude Code、Codex、Cursor 等 Agent 怎麼正確使用 Mole。換成別的工具，只要它有 dry run，這套習慣一樣適用。

## 為什麼不該讓 Agent 用 Remove-Item 清理

讓 Agent 直接用 PowerShell 或 cmd 指令清理，會少掉四樣東西：

1. **預覽。** `Remove-Item` 一執行就生效，你核准的是一行指令，看不到它展開後的幾千個檔案。PowerShell 雖然有 `-WhatIf`，但沒有任何機制保證 Agent 會用它。
2. **退路。** 這樣刪掉的檔案不經過資源回收筒。
3. **記錄。** 下週某個軟體的設定不見了，你沒辦法知道是不是那次清理動過它。
4. **不能碰的清單。** 一個叫 `Cache` 的資料夾，裡面可能是瀏覽器設定檔的登入工作階段、遊戲存檔，或某個執行中的軟體還在寫入的資料庫。

專門做清理的工具本來就帶著這四樣，Agent 要做的就變成讀懂它的輸出，然後問你。想先了解哪些資料夾要緊，[Windows 上的快取，哪些能刪，哪些要留](/tw/windows/blog/windows-cache-cleanup)逐個資料夾講過。

## 安裝

先用 Scoop 安裝 Mole CLI for Windows，再安裝 skill：

```powershell
scoop install mole
npx skills add tw93/Mole -a claude-code codex cursor -g -y
```

安裝 skill 的指令需要 Node.js，會幫 Claude Code、Codex 和 Cursor 都裝好，用不到的 Agent 從指令裡刪掉就好。在 Claude Code 裡也可以依序執行 `/plugin marketplace add tw93/Mole` 和 `/plugin install mole@mole`，在 Codex 裡依序執行 `codex plugin marketplace add tw93/Mole` 和 `codex plugin add mole@mole`。CLI 請用 1.37.0 或更新的版本，這一版加入了 `mo analyze --json` 和 `mo uninstall --list`，正是 Agent 最需要的兩條指令，`mo --version` 可以看你目前的版本。

## skill 給 Agent 定的四條規矩

1. **先讀，再動。** Agent 先用唯讀指令回答問題，磁碟用量看 `mo analyze --json`，CPU、記憶體和磁碟看 `mo status --json`，以前清理過什麼看 `mo history --json`，裝了哪些軟體看 `mo uninstall --list`，再加上 `mo clean --dry-run`，這些都不必問你就可以執行。
2. **每次刪除前先預覽。** Agent 先帶上 `--dry-run` 跑一遍清理，再講給你聽，總共多大，最大的幾組是什麼，每一組是永久刪除、移到資源回收筒，還是之後要重新下載才能重建。
3. **打下刪除指令之前先問你。** 由 Agent 呼叫時，`mo clean` 一啟動就開始刪，中間不會再確認，所以你的同意必須在看完預覽之後、在對話裡先給出。
4. **有些步驟留給你自己。** 解除安裝軟體、選擇清單，以及任何需要系統管理員 PowerShell 的操作，都留在你自己的終端機裡做，Agent 只給你準確的指令就停下，它從不嘗試提升權限。

skill 也禁止 Agent 自己編參數，Mole CLI for Windows 本來就沒有 `--yes` 或 `--force`，Mole 略過或保護的東西，Agent 也不能改用 `Remove-Item` 硬刪。

## 一次完整的對話是什麼樣子

假設你輸入：「C 槽快滿了，是什麼佔的？」

Agent 先執行 `mo --version`，看到第二行是 `Windows:`，就切換到 Windows 的規則，再執行 `mo analyze --json`。回傳的是使用者資料夾和各個磁碟的概覽，大小以位元組為單位，附帶一個 `scan_status`，值是 `complete`、`partial` 或 `unavailable`，舊的下載檔案、Temp、套件管理員快取這類常見的大戶還會標上 `insight: true`。想看得更細，它會接著執行 `mo analyze --json D:\`，或帶上最大那個資料夾的路徑再看一次。

接著它會把找到的東西分類：

| 找到的東西 | 交給誰 |
| --- | --- |
| 暫存檔、軟體和瀏覽器快取、日誌 | `mo clean` |
| Windows Temp、系統日誌、錯誤報告和記憶體傾印 | `mo clean --system`，由你以系統管理員身分執行 |
| 專案裡的建置產物和 `node_modules` | `mo purge`，由你來執行 |
| 不再使用的已安裝軟體 | `mo uninstall`，由你來執行 |
| 文件、照片、影片、遊戲庫、虛擬機器 | 由你決定，沒有任何 Mole 指令會刪除它們 |

如果你想清理出空間，它會先執行 `mo clean --dry-run`，每一個候選路徑都會寫進 `%USERPROFILE%\.config\mole\clean-list.txt`，所以在真正動手之前，你問一句「Chrome 儲存的密碼在不在裡面」，它可以讀這份檔案回答你。只有你說可以，它才會執行 `mo clean`。在 Windows 上 `mo clean` 不會清空資源回收筒，遊戲重播和 GPU 著色器快取預設也不動，除非你要求加上 `--game-media` 或 `--gpu-shaders`，因為遊戲下次啟動時重建著色器很慢。

## 哪些事留給你，為什麼

**需要系統管理員權限的部分。** Agent 執行的 `mo clean` 只涵蓋你這個使用者帳戶。要清系統範圍的快取，用「以系統管理員身分執行」開啟 PowerShell，先執行 `mo clean --system --dry-run`，再執行 `mo clean --system`。如果你的系統管理員帳戶是另一個 Windows 使用者，那個 shell 有自己的使用者設定檔資料夾，白名單和記錄都和你的分開。

**解除安裝軟體。** Agent 可以在 `mo uninstall --list` 裡找到這個軟體，清單會列出每個軟體的名稱、來源（登錄或 Microsoft Store）、發行者、版本和大小。解除安裝本身是一個選擇清單，所以由你先執行 `mo uninstall --dry-run`，看清每個軟體會用哪個解除安裝程式，再執行 `mo uninstall`，輸入名稱搜尋這個軟體。Mole 會執行廠商自己的解除安裝程式，它資料夾裡的東西刪不刪由它決定，之後 Mole 再把確認過的殘留安裝資料夾移到資源回收筒。有些解除安裝程式會跳出自己的 UAC 提示或精靈。解除安裝後通常會留下什麼，可以看[軟體解除安裝以後，Windows 上還會留下什麼](/tw/windows/blog/what-apps-leave-after-uninstall)。

**專案資料夾和系統檔案檢查程式。** `mo purge` 會開啟選擇清單，所以要在你的終端機裡執行。`mo optimize` 最後會問要不要執行系統檔案檢查程式，這一步要好幾分鐘，要不要執行也由你來答。

## 事後怎麼核對

真正跑完之後，Agent 會讀指令的摘要和 `mo history --json --limit 1`，告訴你刪了什麼、略過了什麼，略過的項目不會再重試。記錄保存在 `%USERPROFILE%\.config\mole\operations.log`，預覽不會寫進去，所以裡面只有真正的刪除。

幾週後想知道「Mole 是不是刪了我的檔案」，也是查這份記錄，Agent 會在 `mo history --json --limit 200` 裡找這個路徑。沒找到，表示 Mole 沒有刪除它的記錄，這不等於證明別的東西也沒刪過它。

想讓某個資料夾以後都不被清理，請 Agent 把它加入保護就好，它會在你同意後把路徑寫進 `%USERPROFILE%\.config\mole\whitelist.txt`，以帶 BOM 的 UTF-8 儲存，這樣 Windows PowerShell 5.1 才能正確讀取非英文路徑，然後再執行一次 `mo clean --dry-run` 確認。

## 用的不是 Mole 怎麼辦

這些規矩不只適用於 Mole，換成別的工具，可以在對話一開始先貼上這樣一段：

```prompt
刪除任何東西之前，先把清單給我看，說清楚哪些移到資源回收筒、哪些是永久刪除。
用工具自帶的預覽或 -WhatIf 模式，不要用 Remove-Item -Recurse -Force 或 del /s，
不要提升權限，也不要要求開系統管理員 shell。任何會刪除檔案的指令，都等我說可以再執行，
執行完告訴我刪了什麼、略過了什麼。
```

## 常見問題

### Windows 上哪些 AI Agent 能用 Mole 的 skill？

安裝指令裡寫了 Claude Code、Codex 和 Cursor，`npx skills` 也能幫其他讀取 skill 檔案的 Agent 安裝。Agent 必須能在你的電腦上使用 shell，Windows PowerShell 5.1 和 PowerShell 7 都可以。

### Agent 會不會不問我就刪檔案？

skill 要求它先預覽、等你同意，但這是給 Agent 的指令，不是一把鎖。Agent 自己對 shell 指令的核准提示要保持開啟，也不要在它的設定裡預先放行 `mo clean` 或 `Remove-Item`。解除安裝和需要系統管理員權限的清理，Agent 根本跑不了。

### 會不會清空我的資源回收筒，或刪掉遊戲存檔？

在 Windows 上 `mo clean` 不會清空資源回收筒，遊戲媒體和著色器快取也預設略過，除非你要求。遊戲存檔和遊戲庫是使用者資料，沒有任何 Mole 指令會刪除它們。不過軟體自己的解除安裝程式仍可能刪掉它資料夾裡的資料，這也是 Agent 把解除安裝交給你做的原因。

### Mole CLI for Windows 要付費嗎？

不用，它以 GPL-3.0 授權開源，skill 也在同一個存放庫裡。Mole for Windows 是另一個有視窗介面的付費應用程式，兩者的差別見[Mole CLI for Windows 與 Mole for Windows 各自能做什麼](/tw/windows/blog/mole-cli-vs-windows-app)。

### Mac 上也能這樣用嗎？

可以。skill 會讀 `mo --version`，在 Mac 上改用 macOS 的指令，那裡解除安裝的 App 會進垃圾桶，`mo clean` 預設會清空垃圾桶。這篇的 Mac 版是[用 Claude Code 或 Codex 安全清理 Mac 空間](/blog/use-claude-code-to-clean-up-mac)。

## 延伸閱讀

- [C 槽快滿了，先把內容分類再決定怎麼處理](/tw/windows/blog/windows-c-drive-full)，講空間通常去了哪裡。
- [開發工具越裝越多，npm、pip 和 Gradle 哪些檔案該留](/tw/windows/blog/windows-developer-caches)，講 npm、pip、Gradle 和其他程式開發工具塞滿的儲存位置。
- [C 槽的空間去哪了，先把大檔找出來](/tw/windows/blog/find-large-files-on-windows)，講怎麼手動做同樣的搜尋。


Canonical: https://mole.fit/tw/windows/blog/use-claude-code-to-clean-up-windows
