agent 跑一個下午,Mac 多出 86G:Mole 從開源命令列長成付費桌面版
Mac 清理工具 Mole 的開發者在少數派自述產品歷程,開源命令列一年累積六萬顆 star 後推出付費桌面版,並把 AI 工作流產生的編譯產物、工具舊版本與模型檔案整理成三類,而清理工具真正的設計難題,在於刪除風險怎麼分檔。
開源命令列一年累積六萬顆 star 之後,Mole 推出付費桌面版;開發者的自述同時點出 AI 工作流的磁碟成本,以及清理工具最難的設計決定。
開發者 Tw93 從自己的 Mac 裡一次清出 86G,內容全是編譯產物:Rust 專案的 target、前端的 .next 與 dist、Xcode 的 DerivedData。這臺機器幾乎全天開著 Claude Code 和 Codex 在寫程式,檔案生成的節奏跟著 agent 的輪次走,一個下午十幾輪,每一輪都要編譯一次。
10 月 8 日,Tw93 在少數派刊出長篇自述,回顧 Mac 清理工具 Mole 從開源命令列做到付費桌面應用的這一年。這份自述值得留意的地方有兩處:AI 正在改變開發機的磁碟生態,以及一款清理工具如何先在開源世界把危險的部分磨安全,再包裝成收費產品。
一年,從泳池邊的幾百行程式碼到六萬顆 star
時間回到 2025 年國慶連假。Tw93 在三亞的泳池邊寫了幾百行程式碼,做出 Mac 清理命令列工具 Mole CLI,開源放上 GitHub,原意只給自己和同事用。接下來不到一年,這個專案累積超過六萬顆 star,陸續發布五十多個版本,121 位來自各地的開發者提交過程式碼,近八百項功能建議與 bug 被處理掉。
讓他意識到實際規模的契機一點都不光鮮。README 上掛了兩張用 Vercel 加速的圖片,流量把帳單跑超,他欠了 Vercel 80 美元。付完這筆錢,他才認真考慮把桌面版做起來。
另一個推力來自海外使用者的信件。收到最多的一類郵件,內容大同小異:父母也用 Mac,妹妹也用,但他們不會開終端機,能不能做一個不用敲指令的版本。這件事他拖了大半年,理由和清理工具的風險特性直接相關:命令列版本得先跑夠久,哪些能刪、刪到什麼程度算安全,心裡有底了,才動手做桌面版,而且要做到自己敢天天用,才發布。
桌面版上線時間選在晚間十點。那一夜通知沒停過,法國、德國、各種幣種的購買通知都有,他最後為了睡覺把信箱通知關掉。之後幾個月持續補功能,用他自己的話說,等於是一批使用者先掏了錢,再陪著他把產品做完。
AI 寫程式的三類副產物
桌面版做完之後,Tw93 自己用最多的功能反而是清理,因為他的 Mac 已經被 AI 工具留下的檔案佔滿。他把這些新型態的垃圾分成三類。
第一類是編譯產物。編譯快取本來就存在,AI 改變的是量級。以前一天手寫幾百行程式碼,編譯三五次;現在讓 agent 跑一個下午,十幾輪迭代每一輪都要編譯,Rust 的 target、前端的 .next 與 dist、Xcode 的 DerivedData 增長速度全面起飛。86G 那次清理,清出來的全是這些東西。
第二類來自 AI 工具自己。Claude Code、Cursor Agent、GitHub Copilot 這些命令列工具都靠自動更新維持版本,做法是把新版本完整下載到一個新的版本目錄,一份約 250MB,舊的不刪。幾個月下來,磁碟裡會積著十幾份再也用不到的舊版本。
第三類是模型檔案。Ollama 與 LM Studio 拉下來的模型、HuggingFace 的快取,動輒數十 GB。前兩類 Mole 會清,第三類刻意不碰,理由在後文的分檔邏輯裡會看到:模型權重屬於重建代價高的一類,下載回來要花時間和頻寬,這種決定該留給使用者自己。
值得放在這裡對照的是,AI 工具鏈對資源的胃口已經大到工程團隊要專門研究怎麼省,先前介紹過的DeepSeek 壓縮 KV 快取的取捨就是推理端的例子。模型那一頭在省記憶體,開發機這一頭在囤磁碟,兩件事同時發生,帳最後都記在使用者硬碟上。
替使用者刪到哪裡,是清理工具的核心難題
面對掃出來的檔案,Mole 的處理順序是先歸類,再決定預設要不要勾選。Tw93 在自述裡提出三個檔次。
第一檔是可再生檔案:HTTP 快取、GPU 快取、編譯產物與多數日誌。相關應用已退出、路徑明確,刪掉之後系統會自行重建,代價是幾分鐘的 CPU 時間。第二檔是重建代價高的檔案:套件管理器的註冊快取、本地模型權重、iOS 的 DeviceSupport。這些東西刪了能重建,但要花網路頻寬和時間,所以不預設勾選,讓使用者自己過一眼。第三檔是不可替代的檔案:聊天記錄、郵件庫、照片圖庫、手上正在進行的專案狀態。他的立場是,這些東西根本不該放進一鍵清理的清單裡。
這個分法對應一段相當直白的產品判斷,他在自述裡寫得清楚:三檔壓成同一份「安全可刪」的清單當然省事,代價是替使用者把決定做了。清理頁面上的十類項目就照這個順序排列,可再生的排最前面,越往下越需要使用者自己看一眼。同樣是依賴目錄,待遇也不同:target、build、dist、pycache、DerivedData 刪掉之後重新編譯就回來;node_modules、Pods、venv、vendor 刪了卻必須重新連線下載,網路條件一差,代價立刻浮現。
這套思考放在裝置層次也成立,而且與手機換機週期持續拉長是同一個方向:機器用得越久,磁碟管理與日常維護的價值就越高。清理工具做的事,本質上是把這份維護工作裡「可以安全交給機器」的部分切出來,剩下的判斷仍然留在使用者手上。
先收費,再做完的上市順序
Mole 的商業結構很清楚:CLI 照舊開源免費,承諾持續更新,收費的只有桌面版。免費版本在這條路徑上承擔了測試的角色。命令列工具跑了大半年,累積的除了功能,還有「哪些刪除路徑被證明安全」的實戰紀錄。桌面版上市時,它賣的東西已經被免費版本驗過一輪。
另一個細節是上市順序。桌面版發布時功能還沒補齊,之後幾個月持續疊加,早期付費者等於參與了產品的完工過程。這種順序在訂閱制服務不算少見,放到買斷制的桌面軟體上,基礎是開源累積出來的信任。對其他獨立開發者來說,這條路的門檻也在這裡:你得先願意把核心功能免費開源,讓它在使用者機器上跑夠久,多數商業軟體的帳算不過這一關。
不過這份自述也得放對位置看。作者本人就是產品開發者,文中的成長數字與銷售情境屬於單方敘述:六萬顆 star 是 GitHub 上的公開數據,任何人都能驗證;至於發布當夜各國幣種的通知,就當開發者的第一手經歷聽。少數派在文首也標註了作者與產品的利益相關聲明,這起碼把話講在了前頭。
不裝工具,這套分檔邏輯也用得上
對一般 Mac 使用者,這篇自述最有用的部分是那套分檔方法,與手上有沒有裝任何清理工具無關。動手刪檔案之前,先問一個問題:這份東西刪掉之後,重建要付出什麼。可再生的快取可以放心清;要重新下載的,先看自己的網路條件;聊天記錄、郵件庫、照片圖庫這類不可替代的內容,本來就該離任何標榜一鍵完成的工具遠一點。
對開發者與獨立開發者,這份自述給出的訊號更實際。AI 工作流的磁碟成本已經實體化:86G 的編譯產物、250MB 一份的舊版本、數十 GB 的模型權重,都是 agent 時代的固定開銷,定期清理正在變成開發環境維護的一部分。而 Mole 走過的路徑提供了一個可參考的順序:先用開源免費版本處理最危險的信任問題,把「敢不敢刪使用者的檔案」驗證完,再把易用性包裝成收費產品。這條路走了一年,不算快,但它把清理工具最該解決的問題,放在了收費之前。