Latent 首頁

輔助說明

Latent 的承諾只有一個:沒有證據,就不說安全; 沒有回頭路,就不刪除。

三個安全等級

Latent 追蹤的每個項目都會帶著三種徽章之一,說明「刪了它會發生什麼」:

還有一把鎖,它不是第四個標記。琥珀色 R 又帶鎖的列,是它的分類還只是一個沒有人驗證過的主張 — 通常是系統或工具的快取。它既不是你的作品,也沒有保證回得來,所以在你親手開鎖之前,Latent 不會動它。標記說的是「刪掉會怎樣」,鎖說的是「需不需要你來判斷」。

所以字母和顏色回答的是兩個不同的問題。字母說的是「刪掉會怎樣」 — R 會回來,I 回不來,P 根本不會被提議。顏色說的是「由誰判斷」:綠色表示 Latent 可以憑自己的證據動手,琥珀色表示這由你決定。這正是未證明的快取仍然是 R 而不變成 I 的原因 — 斷言它回不來只是往悲觀方向的猜測,其根據並不比樂觀方向更多。展開一個歸屬方時,綠色的列排在前面,接著是一條寫著從這裡起由你判斷的分隔線,再往下是其餘的列;歸屬方的長條圖也依同樣方式劃分。

鎖就是信號。Latent 只在主張已被證明的地方自行動手;其餘的列都保持鎖定, 等你決定。開鎖是一次刻意的動作,而且只在你開鎖的那次掃描內有效 — 新的掃描意味著新的內容,所以會再問一次。

查看免費,移除才需要授權

沒有授權的 Latent 是一個火力全開的檢視器:掃描不限次數, 探索圓輪與圓環、觀察空間隨時間的變化、閱讀記錄。沒有任何東西會過期。 授權解鎖的只有「移除檔案」— 而復原(還原、隔離回復)無論有沒有授權 永遠可用,因為這個 App 絕不會做的一件事,就是拿你的檔案當人質。

一鍵最佳化

「Latent」標籤頁就是那個一鍵動作:標誌本身就是按鈕,執行時進度環 繞著它轉,完成後釋放的總量就落定在那裡。它刪除的東西要通過道 門檻,而不是一道:復原方式必須已有證據,而且該項目必須是那種 消失了你根本不會注意到的等級 — 廠商自帶清除指令的套件快取、瀏覽器 HTTP 快取、縮圖儲存區。任何需要你重新掙回來的東西(下載的模型、 工具鏈、你安裝的外掛)都不會進入最佳化,而是留在「空間」等你刻意 點選。這份允許清單刻意與連接的 AI 助手所受的限制完全相同, 所以一鍵清理絕不會比助手被允許的範圍伸得更遠。

最佳化絕不碰未驗證的列、你自己的檔案或受保護的路徑;絕不代你打開 鎖頭;絕不解除安裝 App 或套件、不卸載模型、也不清空垃圾桶。如果部分 目標被執行中的 App 占用,最佳化會先問你 — 列出擋路 App 的勾選清單, 保持勾選的才會被禮貌地要求結束(App 自己的儲存提示會出現);取消 勾選的,其檔案就直接略過。所有移動的東西都會進入垃圾桶,記在同一份 還原 manifest 之下,防護檢查會在刪除的那一刻重新執行。確認面板也會 列出刻意不碰的東西,所以你看到的數字是下限,不是吹噓。

證明階梯

「可以安全刪除」是掙來的,從不假設。Latent 使用四種證據, 由強到弱:

證據它的意義例子
Registry 身分 在刪除當下,那個產物仍在其 registry 上有回應 — 比對的是摘要、修訂版與檔名,不只是名稱。 Ollama 模型、Hugging Face 儲存庫、LM Studio 模型
記錄在案的來源 工具自身的索引記下了每個項目的出處;只有當所有項目都能追溯到 仍在提供服務的公開來源時,才允許批次刪除。 npm 快取、Gradle 模組
廠商合約 廠商提供了自己的清除指令 — 等於工具本身宣告這個快取可以丟棄。 Latent 仍會走垃圾桶,讓你保留還原的能力。 pip(pip cache purge)、uv(uv cache clean)
實驗觀察 隔離會觀察工具是否真的重建了被移除的東西 — 每一次觀察都成為記錄在案的證據。 任何你打開鎖頭的項目

當一個儲存區混有可證明與不可證明的內容時,Latent 只刪除已證明的 部分,並明確告訴你保留了什麼、為什麼。放在下載模型旁邊的自訂 微調模型,永遠原地不動。

鎖定

未驗證的項目、你自己的檔案與受保護的項目都帶著一把。打開它 是一個明確的同意動作:那一列變得可以選取,這次刪除會在記錄中標記為強制 執行,確認面板也會以紅色標示。同意是有範圍的 — 重新掃描會關上所有已 打開的鎖。Latent 絕不代你開鎖,連接的 AI 助手則完全無法開鎖。

我的檔案 — 「空間」的第二個窗格

快取是 Latent 能夠證明的東西;真正屬於你的空間需要另一份契約。 「空間」裡的我的檔案窗格會列出六類候選項目,每一類都遵守 同一條規則:只列出,絕不預先選取,最佳化與 AI 助手絕不觸碰

隔離

少數刪除會被提供一條比垃圾桶更安全的路 — 7 天隔離 — 但僅限 損失不透明或難以逆轉的情況:受保護的項目與無法讀取的「你的資料」 儲存區。其他一切(未驗證的快取、你自己列出的檔案)直接進垃圾桶, 「復原」的列上已寫明風險。這是建議,絕不強加。隔離期間,在「復原」標籤頁一鍵 即可回復。期滿後項目移往垃圾桶 — Latent 會記錄所屬工具是否重建了 該路徑,為原本沒有證據的主張累積證據。想走直接路線?在確認面板選 「直接進垃圾桶」;你的決定優先。

找回來 — 「復原」標籤頁

所有能回來的東西都住在同一張可排序的表格裡,附上 移除日期:

綠色的列 — 有記錄在案的重新下載指令,或所屬工具會自行重建的已驗證儲存區 — 也可以 直接在「復原」裡清空 — 一列或全部一次清,背後有一道 明確的「無法還原」確認 — 因為它們的回頭路不隨位元組消失。 一去不回的列永遠不會有那顆按鈕;那個決定 留給 Finder。

列依階段分組 — 隔離、垃圾桶、已消失 — 最新在前,各階段欄位顯示項目進入該階段的日期;可依名稱、來源或大小排序,依階段篩選,依名稱、來源或指令搜尋。最後 那一組正是重點:記錄比垃圾桶活得久,所以清空 垃圾桶不會讓你失去任何無法刻意找回的東西。指令 只在狹窄且經過驗證的形態下執行;其餘的會顯示出來, 由你自行拷貝。

垃圾桶永遠是你的

Latent 只把東西移垃圾桶,絕不在你不知情時清空它。它不碰 自己沒放進去的檔案,也不丟棄沒有退路的檔案。總覽的垃圾桶卡片顯示裡面 有什麼,一顆按鈕在 Finder 中打開它。

但有兩處會替你收尾。復原標籤頁可逐項清空,或一次清空所有安全項 — 這裡的「安全」指該列仍帶著已記錄的重新取得指令,或已驗證工具會重建它。而 Optimize 在一次執行之後立刻提供同樣的動作,且僅限那次執行。Optimize 只刪除已證明安全的項目,所以它移動的每一列都能重新下載或重新產生;要你 再去 Finder 裡回收空間,等於 App 對自己已經作出的判斷臨陣退縮。按鈕上寫著 件數與大小,而且只問一次。

垃圾桶裡的其他東西 — 包括你自己在 Space 挑的 — 都留給你在復原標籤頁 或 Finder 中判斷。

一切皆可逆

刪除的東西進垃圾桶,絕不直接湮滅,而且每次執行都會寫下一份 還原 manifest,精確復原移動過的一切。「空間」的清理在移動任何東西 之前會先跑四道防護:所屬工具沒有在執行、目標裡沒有執行中的二進位檔、 裡面沒有任何檔案被任何程序占用、過去 10 分鐘內沒有任何變動。防護會在 刪除的那一刻重新檢查,不是只在規劃時。App 解除安裝程式跑的是自己的 一對防護 — 該 App 不得在執行中,目標裡也不得有被占用的檔案。

App — 解除安裝程式

點一個 App,就能看到其 bundle identifier 擁有的每個檔案 — 本體、快取、 偏好設定、容器、啟動代理程式。Latent 只預先勾選能夠確定歸屬的部分; 有兩種列永遠不會被預先勾選:

勾選 App 自己的核取方塊會選取底下的一切 — 如果其中含有你的資料, 會先問你一個問題,答案在這次工作階段內都會記住。一次解除安裝就是一份 manifest:一次還原就能復原全部。若 macOS 對該 bundle 要求管理者權限, Latent 會把工作交給 Finder — 你會看到標準的認證提示。

Docker 與模擬器執行環境 — 這裡沒有東西會進垃圾桶

Docker 把映像檔、容器、卷宗與建置快取放在同一個不透明的 VM 磁碟裡, 檔案層級的刪除等同全部重設 — Latent 把那顆磁碟列為你的資料,絕不 預先選取。Docker 窗格提供的,是 Docker 自身對單一項目的移除: 一個映像檔,或建置快取。那種移除是無法還原的 — 不經過垃圾桶, 也沒有還原 — 所以它的確認面板會用這幾個字明說,而且 Latent 會在 執行指令之前先寫下記錄:移除了什麼、多大、以及把它拿回來的 那一行 docker pull。容器使用中的映像檔會被拒絕, 卷宗永遠不列出 — 卷宗是某個人的 資料庫。

iOS 模擬器執行環境的做法相同,理由也相同:執行環境是 Apple 簽署的 磁碟映像檔,即時掛載並登錄在 Apple 自己的清冊裡,所以只有 simctl 能移除它。同一份契約 — 面板明說無法還原, 記錄保留 xcodebuild -downloadPlatform iOS,有模擬器 開機中的執行環境會被拒絕,Xcode 隨附的那一個永遠不提供移除。

Homebrew 與 pip

解除安裝程式的另外兩個來源,管理的是 brewpip --user 安裝的東西 — 那些默默累積多年的東西。 keg 的符號連結和 wheel 的四散檔案,讓「移到垃圾桶」變成謊言,所以移除 會執行廠商自己的解除安裝,還原 manifest 則改為記下精確的重新安裝 指令。同一條證明規則照樣適用:移除任何東西之前,Latent 會確認 registry(formulae.brew.sh / PyPI)仍提供該名稱與版本 — 沒有回應,就不移除。鎖定的列代表有其他套件相依於它、它被釘選, 或它來自第三方 tap。直譯器已經不在的 Python user-site (經典的 ~/Library/Python/3.x 殘留)則以整個檔案夾一次 移到垃圾桶的方式提供,附一般的還原。

記憶體

沒有清除按鈕,沒有健康分數 — macOS 本來就會壓縮並分頁閒置的 記憶體,所以「釋放 RAM」多半意味著之後花代價把它讀回來。真實的問題是 被遺忘的 App 抱著好幾 GB,所以「App 記憶體」卡片按實際占用列出你自己 的 App,附一顆與 Cmd-Q 完全相同的結束按鈕:App 自己跳出 儲存提示,絕不強制終止任何東西。系統程序永遠不列出。 這個標籤頁也顯示統一記憶體的動態, 以及哪些模型常駐程式(Ollama、LM Studio、llama.cpp、ComfyUI……)把權重 留在記憶體裡。每顆按鈕都執行廠商自己的指令 — ollama stoplms unload --all、ComfyUI 的 /free、llama.cpp 的路由器卸載 — 模型在下次使用時自然重新載入。Latent 絕不強制終止任何東西。

AI 助手 — MCP 整合

Latent 內建一個 MCP 伺服器,任何支援 MCP 的助手都能讀取你的磁碟 全貌並提出清理建議。伺服器就是 App 執行檔本身:

/Applications/Latent.app/Contents/MacOS/Latent --mode mcp

Claude Code

claude mcp add latent -- /Applications/Latent.app/Contents/MacOS/Latent --mode mcp

Codex CLI

codex mcp add latent -- /Applications/Latent.app/Contents/MacOS/Latent --mode mcp

Gemini CLI

gemini mcp add latent /Applications/Latent.app/Contents/MacOS/Latent --mode mcp

Cursor、Claude Desktop、Windsurf、VS Code 與其他任何吃 JSON 設定的用戶端

把以下內容加進用戶端的 MCP servers 區段 — Cursor 用 ~/.cursor/mcp.json, Claude Desktop 用 claude_desktop_config.json, VS Code 用 .vscode/mcp.json(VS Code 把它放在 "servers" 底下,而不是 "mcpServers"):

{
  "mcpServers": {
    "latent": {
      "command": "/Applications/Latent.app/Contents/MacOS/Latent",
      "args": ["--mode", "mcp"]
    }
  }
}

傳輸方式是純 stdio — 沒有連接埠、沒有常駐程式、沒有需要一直開著的 東西;用戶端會在需要時自行啟動伺服器。

助手能做什麼、不能做什麼

助手的權限嚴格小於你的:它只能碰已驗證的 R 項目 — 與一鍵最佳化相同的允許清單 — 而且有一條絕對的規則:每一次 刪除都會在你的螢幕上跳出確認面板,只有人親手點一下才算核准。 沒有回應,或 Mac 前沒有人,就沒有刪除。永遠如此。助手 永遠無法開鎖、永遠碰不到你自己的檔案、也永遠看不到檔案 內容 — 只看得到大小、路徑與證據標籤。

為什麼其他清理工具敢承諾更大的數字?

因為它們把所有看起來像快取的東西都算進去。Latent 的數字 刻意比較小:裡面的每個位元組都帶著證據 — registry 的回應、記錄在案的 來源、廠商合約,或觀察到的重新產生。沒有證據的位元組仍然會顯示; 只是交由你決定,鎖頭握在你手裡。

啟用授權碼或 Beta 金鑰

選單列 → Latent → 輸入授權碼…,貼上你的金鑰,完成。一組金鑰 可用於多台 Mac(Beta 金鑰最多可啟用 2 台)。掃描本來就不需要金鑰; 金鑰一到,刪除功能立刻解鎖。 沒有帳號、不用電子郵件、沒有任何要登入的東西。

快速鍵

有問題嗎?

在 App 內:輔助說明 → 傳送意見回饋…。它會送出你的訊息,加上 App 與 macOS 版本;活動記錄只有在你勾選它的核取方塊時才會附上, 而且會先移除你的個人專屬檔案夾名稱。絕不會在背景送出任何東西 — 只有那顆按鈕會送出。也可以寫信到 fattaillabs.ceo@gmail.com — 每一封我們都會讀。