規則

真正讓人擔心的不是浪費空間,而是遺失工作。Devbroom 的規則正是為此而設,而且沒有一條是可以關掉的設定。

掃描只會讀取

掃描不會更動任何一個檔案。除非你在「自動維護」中把某條規則設為「自動執行」,否則沒在預覽中看過並確認的東西都不會被碰。

每個判定都附帶理由

沒有任何一項會毫無理由地被判定為可清理或已鎖定。每個判定的理由都顯示在該項旁邊,在命令列中則透過 --details 顯示。

已鎖定和不確定無法選取

這是一項限制,而不是偏好。需查看的項目只有透過「仍要加入」才會清理;在命令列中對應的是 --include-review,它會在終端機中要求確認。

刪除前再檢查一次

按下「清理」時,每一項都會根據當下正在執行的程序再檢查一次。掃描後判定或內容有所變化的項目不會被動,並會告訴你為什麼略過。

先進垃圾桶

預設移到垃圾桶,每一項都可以從「歷史紀錄」放回。永久刪除是另一個獨立的選擇,需要按住按鈕來確認;你所屬的組織可以關閉它。移到垃圾桶的空間在你清空垃圾桶之前不算已釋放。

Worktree:從不 --force

  • 含有尚未 commit 的變更,或含有未追蹤或已暫存檔案的 worktree 為已鎖定。沒有 --force,git 不會移除它;Devbroom 從不使用 --force。
  • 被忽略的檔案會讓它成為需查看,因為 git worktree remove 會不經詢問就刪除它們。
  • 移除 worktree 時,分支上尚未推送的 commit 會保留;在分離的 HEAD 上則不會。因此移除前,Devbroom 會把 HEAD 儲存在 refs/devbroom/removed 下;如果無法儲存,就不移除。
  • worktree 操作只有三種:移除(remove)、清除(prune)和修復(repair)。

不碰進行中的工作

如果該資料夾或其上層資料夾有代理工作階段在執行、有程序從這裡執行,或其中有檔案被開啟佔用,這一項就是已鎖定。對於建置資料夾,上層資料夾有工作階段在執行時,會判定為需查看。

Devbroom 從不碰執行中代理工作階段的程序。只有在你同意、並再次檢查之後,它才會請代理遺留下來的程序結束;從不涉及系統程序或其他使用者的程序。

光憑名稱不夠

資料夾的名稱本身不算證據:

資料夾 判定為可清理的條件
node_modules 旁邊有 package.json
.next 旁邊有 Next.js 設定或 package.json
.turbo 旁邊有 turbo.json 或 package.json
target 裡面有 Cargo 的標記(CACHEDIR.TAG)
.venv 裡面有 pyvenv.cfg
DerivedData 裡面有 Xcode 的檔案
dist、build、vendor 旁邊有專案檔案,而且有建置腳本產生它

沒有標記時,該資料夾維持需查看。它還必須是 git 忽略的資料夾,而且裡面沒有 git 追蹤的檔案。

真實大小

透過硬連結和 APFS 複製檔與其他資料夾共用的空間(pnpm 就是這樣做的)不計入。你看到的數字就是刪除後能釋放的空間。不會跟隨符號連結,已掛載的卷宗會被略過。

依代理自己的方式

從不碰代理的資料庫和憑證。如果代理有自己的清理指令,就用那個指令來清理,或者把它告訴你。Claude Code 的歷史要嘛用 claude purge 刪除,要嘛封存:對話會先寫入 Devbroom 資料夾中的封存檔,並與原始檔案核對驗證,之後才移到垃圾桶;專案的記憶(memory/)保留在原處,封存檔可以從「歷史紀錄」重新開啟。對於 Codex 工作階段,會顯示 codex delete。其他代理的工作階段只會讀取。

一切都在你的 Mac 上

不需帳號,沒有遙測;不會傳送任何關於你的資訊。App 會檢查更新;如果你輸入 Pro 授權,它會啟用一次,之後大約每月悄悄重新檢查一次(只傳送授權金鑰和你 Mac 的名稱)。沒有授權時,檢查更新是唯一的網路請求。從工作階段日誌中它只取 token 數和模型名稱;搜尋工作階段時在當下讀取日誌,不保留任何索引或紀錄,並在摘錄中隱藏看起來像機密資訊的字串。詳情請見隱私權頁面。

最後更新: 2026年10月7日