# AI Mac 清理工具：模型該決定什麼，不該決定什麼

> 比較 cc-cleaner、DevCleaner、AI 代理技能與 Mole 如何處理快取、舊版本、模型與工作階段記錄，並區分 AI 輔助說明和真正執行刪除所需的檢查。

Published: 2026-08-20 | Updated: 2026-10-05

「AI Mac 清理工具」可能指兩種產品，一種在清理 App 裡加入模型，幫忙判斷或解釋掃描結果，另一種處理 Claude Code、Cursor、Ollama 留下的快取和舊檔案。這篇會分別看兩種工具，先說清楚模型適合做哪些判斷，再看 AI 工具留下的空間該怎麼整理。

## 第一部分：模型到底在決定什麼

清理這件事至少有四步，一款主打 AI 的工具，宣稱的其實只是其中一步：

1. **列舉。** 走完磁碟，量出大小，`du` 做的就是這件事，裡面沒有判斷。
2. **歸屬。** 決定每條路徑屬於哪款 App 或哪條工具鏈。
3. **排序與說明。** 決定四千個候選裡哪十二個值得看一眼，並用一句話講清楚每一個是什麼。
4. **判定並刪除。** 決定哪些刪掉是安全的，然後刪掉。

第二步和第三步的界線本來就模糊，模型在那裡真的幫得上忙。第四步是另一種性質的問題，拿模型去做是選錯了工具。幾乎每一場關於 AI 清理工具的爭論，吵的其實都是廠商講的到底是哪一步。

### 模型真正派得上用場的地方

難的是判斷歸屬。假設 `~/Library/Application Support/Foo Labs` 佔了 3 GB，磁碟上卻沒有叫 Foo Labs 的 App。線索可能散在資料夾的 plist、`~/Library/HTTPStorages` 的前綴、`~/Library/Saved Application State` 下的 `.savedState` 套件，以及 `/var/db/receipts` 的安裝收據裡。廠商名 `Foo Labs` 和識別碼 `com.foolabs.editor` 不一定能直接對應，固定對照表也難以涵蓋所有 App。模型可以幫忙整理這些線索，但推測出的歸屬仍要核對。

排序也是一樣，一次掃描吐出 4000 條路徑、60 GB，那是丟給你第二個問題，不是給你結果。說明更單純，把 `~/Library/Caches/com.apple.nsurlsessiond` 翻成一句人話而已。工具把模型用在這三件事上，而且明講，那宣傳的就是一個真功能。

### 為什麼最後那道門必須是確定性的

刪不刪這個決定，需要三樣模型給不了的東西。

**確定性。** 同一顆磁碟、同一個版本，每次都給同一個答案。把溫度調成零也換不來這個，因為提示詞裡裝的是這台機器的內容，多裝一款 App，檔案清單就變了，決定要靠的那些 token 也跟著變。一條規則在這台 Mac 上成立、在同事的 Mac 上不成立，那就不是安全規則。

**事前可審。** 保護清單就是一組路徑前綴，一分鐘讀得完，換了版本還能逐行比對。權重加提示詞讀不出一份「哪些會被擋下來」的清單，所以界線在哪，要等你踩過去才知道。

**事後可查。** 確定性的規則刪錯東西，留下的是一個可以重現的 bug，路徑在這裡，放行它的那一行在這裡，現在會失敗的測試也在這裡。模型刪錯東西，留下的只有一段對話紀錄，修法是改提示詞，而這一改對其他情況有什麼影響，沒有人量過。

兩種故障也不對稱。排序排錯，代價是多滑幾下，`~/.claude/projects` 刪錯，代價是手上全部的對話紀錄。所以問題不在 AI 好不好，而在流程該從中間切開，錯了頂多多看兩眼的那一半交給機率，錯了會賠上資料的那一半交給確定性。

<figure class="blog-diagram">
  <img src="https://mole.fit/img/blog/cleaner-decision-halves.webp" width="1360" height="454" loading="lazy" alt="一條清理流程被切成兩半：列舉、歸屬、排序與說明落在機率那一側，答錯了花掉的是注意力；保護清單和刪除決定落在確定性那一側，答錯了賠掉的是資料">
  <figcaption>這條線不是畫在聰明的工具和笨的工具之間，是畫在流程裡「錯了多滑幾下」和「錯了少一個檔案」這兩半中間。</figcaption>
</figure>

### Mole 站在哪一邊

[Mole](https://mole.fit/) 不帶模型，也不跑推論，候選項目由固定規則判斷。一般清理的內建保護清單包含 `.ollama/models`、`.lmstudio/models`、`.cache/huggingface`、`.cache/torch`、`.claude/projects`、`.codex/sessions`、`.grok/sessions` 和 `Library/Caches/com.apple.e5rt.e5bundlecache` 等路徑。使用者也能編輯自己的純文字白名單，以 `cat ~/.config/mole/whitelist` 查看。免費的 [Mole CLI](https://github.com/tw93/Mole) 以 GPL-3.0 開源，與 Mac App 共用這份使用者白名單，但兩者的內建規則不應視為完全相同。

最後那一條就是整場爭論的縮影。`com.apple.e5rt.e5bundlecache` 住在 `~/Library/Caches` 底下，名字裡明明白白寫著 cache，任何一套啟發式規則都會把它歸成可丟。它裝的是 Apple Neural Engine 編譯過的模型，趁某個 App 正載著模型的時候清掉，辨識相關的呼叫會一路壞到重新開機。它會被保護，是因為有個人撞上過這次故障，然後把那一行寫了下來。

挑這類工具，先問模型參與哪一步。列舉、歸屬、排序與說明都可以作為輔助，但結果仍要核對。若廠商說「它會判斷什麼可以安全刪除」，還應查看候選清單、保護規則和執行前的檢查，不能把模型的說明當成刪除依據。

這類邊界多半不是在白板上想全的，而是有人在自己的 Mac 上撞到之後才被寫下來。寫這篇時，[Mole CLI 的 GitHub 儲存庫](https://github.com/tw93/Mole)有 145 位貢獻者，累計收到 987 個 issue，其中 984 個已經關閉，3 個仍在處理。這個關閉數只是 GitHub 的追蹤狀態，不能硬說成解決了 984 個 bug，但它留下了一條夠長的回饋路：問題從哪來，規則為什麼改，下一次遇到相同情況該怎麼擋住。

這些數字不是「所有 Mac 都測過了」的證明。macOS 和 App 都在換版本，也會悄悄改掉資料的存放方式，沒有哪一台 Mac 能替所有人的電腦做完測試。它們真正說明的是，Mole 的清理邊界一直在真實機器上被質疑、被補充，再被放進測試裡，而不是只靠一句「我們會小心」。

Mole CLI 和 Mole for Mac 不是同一套刪除程式。命令列版免費開源，適合願意讀 `--dry-run` 輸出、自己決定範圍的人；Mac App 有獨立的掃描和刪除鏈路，候選範圍只會和命令列版相同或更窄。像 `node_modules`、`Pods`、`venv` 這類需要網路和正確依賴才能重建的目錄，命令列版可以交給熟悉終端的人檢查，Mac App 則不會把它們端到一般清理列表裡。

這套規則在你看到清單之前就開始工作。系統目錄、鑰匙圈、郵件、訊息、照片、雲端硬碟內容、隱私授權、登入項目和背景工作，不會因為占得大或路徑裡帶著 Cache 就成為候選。一般清理中，Claude、Codex 等 AI 工具的對話、計畫、記憶和本地模型也一樣，Mole 只會辨識經過核驗的快取葉目錄，不把整個 App 支援目錄當成垃圾。一個目錄說不清裡面放的是什麼，預設答案就是留下。

真正的區別在最後一步。掃描時看起來安全，不代表幾分鐘後仍然安全，等你審完清單，App 可能已經啟動，建置可能剛好開始，路徑也可能被符號連結帶到別處。Mole 會在刪除前重新檢查原始路徑、受保護位置、使用者白名單和物件身分，再確認所屬 App 或建置工具沒有正在使用它。任何一項拿不準，結果都是跳過，不會為了讓「已清理」這個數字更大而繼續刪。

你仍然能看到每個選擇的後果。清單帶著路徑、歸屬和大小，拿不準的項目可以不選，也可以設成永不清理；解除安裝一般 App 時會進垃圾桶，快取預設直接刪除以釋放空間，但可以改為移入垃圾桶。最後的結果會分開記錄已清理、已移入垃圾桶、已跳過和失敗的項目，本機日誌還能回看那次操作實際做了什麼。

AI 可以幫你把目錄解釋成人話，也可以在陌生的工具鏈裡幫你找線索。Mole 做的是另一半：把這些線索變成一條不會因為一次回答、一個模糊目錄名或一台不同的 Mac 就失效的刪除規則。它不追求把碟上所有看起來能刪的東西都刪掉，目標是讓每一次刪除都說得清楚，拿不準的時候還留得住。

## 第二部分：替 AI 工具收拾殘局

另一種需求是清理 AI 工具留下的檔案。這些占用分成四類，處理規則各不相同，不能混在一起刪除：

- **工具快取與日誌。** `~/Library/Caches/claude-cli-nodejs`、Cursor 的 Electron 快取、`~/.claude` 底下的遙測與除錯資料夾。刪了會自己長回來，也沒什麼好留的。
- **對話紀錄與專案狀態。** `~/.claude/projects`、`~/.codex/sessions`、`~/.grok/sessions`。掃描結果裡最讓人意外的往往就是它，而且不可替代。
- **舊版 CLI。** agent CLI 自我更新後可能保留舊版本。舉個容量例子：假設每份約 300 MB，五份中確認只需保留一份，另外四份約占 1.2 GB；實際大小和是否仍在使用，都要在本機檢查。
- **模型權重。** `~/.ollama/models`、`~/.cache/huggingface/hub`、LM Studio 的模型資料夾。體積遙遙領先，而且歸當初下載它們的那款工具管。

挑工具之前先量一遍：

```
du -sh ~/.claude ~/.codex ~/.ollama/models ~/.cache/huggingface 2>/dev/null | sort -h
```

### Mole：先審再清，而且認得這些路徑

「清理」會先完成掃描，顯示清單，確認後才執行。候選項目列出路徑、歸屬和大小，沒有把握的項目預設不勾選。解除安裝 App 會進垃圾桶，快取預設永久刪除以釋出空間，也可以改為移入垃圾桶；清理操作寫入 `~/Library/Logs/mole/operations.log`，日誌中的 `TRASHED` 和 `DELETED` 分別代表移入垃圾桶與永久刪除，不能混為一談。

<figure class="blog-diagram">
  <img src="https://mole.fit/img/blog/mole-clean-review.webp" width="2584" height="1741" loading="lazy" alt="Mole 清理審查頁依類別列出快取與各自大小，每類都有勾選框，底部是永久清理已選 5.14 GB 的按鈕。">
  <figcaption>掃描跑完，審核畫面才出現，所以你不會在一份還沒建好的清單裡挑東西。</figcaption>
</figure>

有兩個行為是專門對著 AI 工具鏈做的。舊版 agent CLI 的資料夾會被列出來，正在用的那個版本則永遠不會成為候選，因為啟動器指到哪裡會先解析出來釘住，靠的是結構，不是猜版本號。另一個是解除安裝按歸屬走，不比名字，所以移除某家廠商的一款 App，不會順手把兄弟 App 還在用的那層共用 `Application Support` 資料夾也拉進來。

實際走一次：打開「清理」，等掃描跑完，把看起來大的群組展開，想留的取消勾選，再清理，看釋放出多少空間。掃描免費，每個付費功能還能免費用兩次，所以這 $19 值不值得，你可以先把整個審核流程驗過再決定。

### Mole CLI：想留在終端機裡的時候

這是另一個獨立的免費產品，以 GPL-3.0 開源，`brew install mole` 安裝。永遠先預覽：

```
mo clean --dry-run
mo purge --dry-run
```

`mo clean` 管快取和日誌，`mo purge` 處理舊的專案建置產物，這兩個指令都支援 `--dry-run`，可以先讀完路徑清單。它跟 Mac App 共用使用者白名單和操作日誌，但內建保護規則並非完全相同。移除預覽參數前要先分清楚，CLI 的快取清理是永久刪除，解除安裝和殘留移除才走垃圾桶，預覽不等於能夠還原。

### cc-cleaner：專門對付這個問題的開源終端機工具

[cc-cleaner](https://github.com/elexingyu/cc-cleaner) 採 MIT 授權，需要 Python 3.10 以上，`pipx install cc-cleaner` 裝得起來。它內建 22 個清理器，涵蓋 Claude Code、npm、uv、cargo、Docker、Playwright 和瀏覽器快取，還有一組 AI/ML 模型分類，裡面是 Hugging Face、PyTorch、Whisper 和 Ollama。`cc-cleaner status` 印出一張大小表，`cc-cleaner clean` 開一個可互動的挑選介面，`-n` 是空跑。

它的風險模型講得很明白，Safe 的項目預設就清，Moderate 和 Dangerous 要加 `--force`，README 把「對話紀錄、共用儲存區」放在 Moderate 這一層，其餘的看原始碼就知道。它的 Ollama 清理器把整個 `~/.ollama/models` 當一個資料夾移除，Hugging Face 清理器對 `~/.cache/huggingface/hub` 和 `datasets` 也一樣，Claude 清理器則會把 `~/.claude/projects` 底下的 `*.jsonl` 對話紀錄列出來。刪除用的是 `shutil.rmtree` 和 `Path.unlink`，所以沒有東西進得了垃圾桶。安全層是一組凍結的禁止系統路徑，加上每個目標都必須在家目錄底下，人寫出來的確定性清單本來就該長這樣。差別不在嚴謹程度，在那條線畫在哪，cc-cleaner 把模型倉庫和對話紀錄放在一個旗標後面，Mole 的一般清理直接拒絕這些目錄。

### DevCleaner：同一片地，但想要一個選單列 App

[DevCleaner](https://devcleaner.app) 是一款 macOS 14 以上的選單列工具，目前 1.9.0 版，涵蓋 23 種生態，從 Xcode DerivedData、Gradle 到 npm 和 Docker，另外對 Claude、ChatGPT、Cursor、Ollama 和 LM Studio 都有專門的掃描器。Safe 的項目預設刪除，Warning 的項目「由你決定」，Danger 的項目永遠不預先勾選，另外對憑證和工作階段檔案維持一份硬拒絕清單，動到執行中 App 的快取之前也會先警告。核心清理免費，Pro 以買斷或年度訂閱販售，實際數字看官網。它的網站沒有寫刪除是不是進垃圾桶，那正是第一次跑之前該先問清楚的事。

MacPaw 也推出了公開測試版的 CleanMyMac CLI，透過 Homebrew cask 安裝，處理的是同一批產物。它不公開原始碼，儲存庫只用來追蹤問題，官方也說明行為仍會調整，執行前應核對確認畫面列出的項目，不能只憑公開說明判斷。

### 把 agent 直接指向磁碟

最後一條路是跳過清理工具，直接讓 Claude Code 這類 agent 去清磁碟，或者搭配某個公開的清理 skill。它的長處是真的，而且這裡別的工具都沒有，agent 能對一套沒有人整理過的目錄結構做推論，不管那是上個月才發布的框架、一條私有工具鏈，還是只有你自己這樣擺的家目錄。

短處也一樣直白。那些 shell 指令是推論當下對著真實的檔案系統生成的，所以真正跑起來的那一條，跑之前沒有任何人審過。你不開口要，就沒有空跑。出事的範圍是整個家目錄，而變數展開成空字串的 `rm -rf` 是一種歷史悠久的故障。第一部分講的道理在這裡照樣成立，只是安全網被拿掉了，決定是機率性的，而且直接接在最後那道門上。

四條護欄幾乎不花成本：

- **讓它去驅動一個有預覽旗標的工具，別讓它自己拼刪除指令。** 有一個公開的 Claude Code skill 把 `mo` CLI 包了起來，`mo clean` 之前一定要先跑 `mo clean --dry-run`，把空跑的輸出完整印出來，還要你打字確認。目標由 agent 挑，刪除交給確定性的工具執行。
- **永遠不要在權限設定裡預先放行 `rm`。** 每一條刪除指令都個別批准，而且要讀那條路徑本身，不是讀它的摘要。
- **把垃圾桶設成預設。** 用 Homebrew 的 `trash`，或者 `mv` 到 `~/.Trash`，可以保留還原機會，但要確認移動成功、沒有覆寫同名項目，也不要立即清空垃圾桶。
- **限住作用範圍。** 一次只指一個資料夾，前面跑 `du -sh`，後面跑 `df -h`，這樣回收了多少是量出來的，不是估出來的。

### 模型倉庫屬於當初下載它們的那款工具

這一塊不該交給任何通用清理工具，包括上面那幾款。Ollama 和 Hugging Face 都採內容定址的儲存區，模型之間共用資料塊，所以只有所屬工具知道哪一塊還被引用著。用 `ollama ls` 和 `ollama rm <model>`，以及 `hf cache ls` 搭配 `hf cache rm model/<repo> --dry-run`。手動刪資料塊檔案為什麼會讓一個模型再也用不起來，寫在[清掉 AI 工具的殘留](https://mole.fit/tw/blog/how-to-remove-ai-tool-leftovers-mac)。

## 它們怎麼比

| 工具 | 判定是否確定性 | 是否預覽路徑 | 是否可還原 | 是否保護模型倉庫與對話紀錄 | 費用 |
|---|---|---|---|---|---|
| Mole for Mac | 固定的封鎖前綴清單加使用者白名單 | 有，每列都給路徑、所有者和大小 | 解除安裝 App 進垃圾桶；快取預設永久刪除，可改為移入垃圾桶 | 有，永遠不成為候選 | $19 買斷，兩台 Mac，持續更新 |
| Mole CLI | 內建保護規則與共用使用者白名單 | 有，`mo clean`、`mo purge` 支援 `--dry-run` | 解除安裝進垃圾桶，快取清理是永久刪除 | 有，依 CLI 的保護規則 | 免費，GPL-3.0 |
| cc-cleaner | 凍結的禁止路徑集合，且限定家目錄 | 有，`-n` 空跑加可互動的挑選介面 | 沒有，用 `shutil.rmtree` 和 `unlink` | 加 `--force` 就碰得到，不是拒絕 | 免費，MIT |
| DevCleaner | 三層風險分級加一份憑證拒絕清單 | 每個掃描器給大小，Danger 永遠不預先勾選 | 沒有寫明，執行前先問 | 模型權重被單獨列為一類 | 核心免費，Pro 買斷或年訂 |
| CleanMyMac CLI | 未公開，儲存庫只是問題追蹤 | 有，刪除前會確認 | 沒有寫明 | 沒有寫明 | 公開測試版，條款看官網 |
| 有 shell 權限的 agent | 沒有，全在推論當下決定 | 使用者要求才有 | 強制走垃圾桶才有 | 在提示詞裡講了才有 | agent 訂閱費 |
| `ollama rm`、`hf cache rm` | 儲存區內部做引用計數 | `hf cache rm --dry-run` | 沒有，但可以重新下載 | 這就是保護本身 | 免費 |

## 把邊界說清楚

Mole 不處理惡意軟體，不是備份，遇到帶驅動程式、VPN 元件或系統延伸功能的軟體也取代不了原廠的解除安裝程式。它不刪模型權重，AI 對話紀錄也只在 AI 清理與維護裡由你逐筆勾選後處理，所以那 200 GB 的問題如果整個就是一座模型庫，它會在「分析」裡把那座庫的分佈畫給你看，然後把事情交給 Ollama 或 LM Studio。一個月沒用的 Ollama 模型是例外，AI 清理與維護會把它們列出來，你勾選的交給 `ollama rm` 刪除。這是刻意畫的邊界，不是以後要補上的缺口。

## 怎麼挑

**200 GB 的建置產物加十來條工具鏈。** 體積落在快取、舊的 `node_modules`、DerivedData 和 Docker 上，跟 AI 專屬的東西沒什麼關係。先審再清跑一輪，或者 `mo clean --dry-run`，剩下那些得用自家 prune 指令的儲存區，照[清開發快取](https://mole.fit/tw/blog/how-to-clear-dev-caches-mac)處理。cc-cleaner 很適合當第二輪，風險分級先讀過再跑。

**一座很大的本機模型庫。** 權重交給對應工具管理。先用 `ollama ls`、`hf cache ls` 或 LM Studio 的 My Models 查看已安裝的模型，再用該工具的刪除功能移除確認不需要的項目，列出清單本身不會釋放空間。磁碟分佈圖適合找位置，不能取代模型庫管理。

**剛發現 Cursor 或 Claude Code 在吃磁碟。** 先分清楚快取、舊版 CLI 和對話紀錄，可重建的快取要等相關程式與建置停止後再清，舊版 CLI 也要確認沒有啟動器、執行中的程序或固定版本設定仍在使用，對話紀錄則保留下來。逐項操作的步驟在[清理 AI 程式開發工具](https://mole.fit/tw/blog/how-to-clean-up-ai-coding-tools-mac)。

## 常見問題

### 用了 AI 的 Mac 清理工具，刪起來比一般的安全嗎？

不能只憑 AI 標籤判斷。模型可能幫助說明資料夾歸屬、整理候選項目的優先順序，但本文沒有對照測試證明它比規則更準確。真正刪除前，仍需要可核對的清單、保護規則和執行時的檢查。問清楚模型參與哪一步，再看工具如何限制刪除範圍，比看標籤更有用。

### 讓 Claude Code 清 Mac 安全嗎？

它是最靈活的選項，也是邊界最鬆的。指令在推論當下生成，直接對著家目錄跑，你不開口要就沒有預覽。真要這樣做，就讓 agent 去驅動一個有空跑旗標的工具，別自己拼 `rm -rf`，權限設定裡永遠不要預先放行 `rm`，刪除送進垃圾桶，而且一次只讓它動一個資料夾。

### Mac 清理工具會刪掉 Ollama 模型或 Claude Code 的紀錄嗎？

完全看是哪一款工具，這才是該先問的問題。Mole 的一般清理在刪除那道門上封鎖 `~/.ollama/models`、`~/.lmstudio/models`、`~/.cache/huggingface`、`~/.claude/projects`、`~/.codex/sessions` 和 `~/.grok/sessions`，放多久都不會成為候選。cc-cleaner 把模型資料夾和 Claude Code 對話紀錄歸在 Moderate 風險，加上 `--force` 就會刪。工具的風險分級要在第一次跑之前讀完，不是之後。唯一刻意的例外在 Mole 的 AI 清理與維護頁，那裡可以列出超過你選定保留期的 Codex 工作階段和專案已經不在的 Claude Code 工作階段，預設不勾，要你一筆筆確認。

### 用了一年 AI 編碼工具，空間到底被什麼吃掉？

舊版 CLI、快取與對話紀錄都值得分別測量，不能只憑使用時間判斷。沿用前面的假設，每份約 300 MB，五份中四份確認不用，約有 1.2 GB 可供檢查，但刪除前仍要核對啟動器、執行中的程序與固定版本設定。`~/.claude/projects` 下的對話紀錄也可能持續增長，它是使用者資料，不應因為體積大就自動清除。

## 延伸閱讀

- [清掉 Mac 上的 Ollama 與 LM Studio 模型](https://mole.fit/tw/blog/how-to-remove-ai-tool-leftovers-mac)，講內容定址模型倉庫的機制。
- [清開發快取又不弄壞建置](https://mole.fit/tw/blog/how-to-clear-dev-caches-mac)，講套件管理器的儲存區和散落各處的 `node_modules`。
- [替 AI 編碼工具收拾](https://mole.fit/tw/blog/how-to-clean-up-ai-coding-tools-mac)，逐條路徑的操作版本。

---

Canonical HTML page: https://mole.fit/tw/blog/ai-mac-cleaner-tools
Blog index for agents: https://mole.fit/tw/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
