Latent
繁體中文

輔助說明

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

判斷原則 #

三個安全等級 #

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

三個字母,三種意義 — 沒有別的。畫面上不存在第四種狀態。一個目錄相信會回來、但沒有人為你的檔案夾證明過的快取,不是「大概沒事」:它就是 I,琥珀色,帶鎖,直到一次實測或廠商自己的文件把它變成 R。字母說的是「刪掉會怎樣」;顏色把這句話再說一遍 — 綠色表示 Latent 可以憑自己的證據動手,琥珀色表示決定權在你,灰色表示誰也不能動。

字母標在哪裡。字母評定的是隨著一次移除一起消失的東西 — 一個快取、一個資料檔案夾、一個套件、列在 App 底下的 App 本體。你選擇移除的單位(「App」裡的一列 App)本身不帶字母;它的各個部分才帶。任何只是一種狀態的東西 — 使用中、被相依項目占住、在隔離中等待 — 都以灰色寫在字母旁邊,絕不會成為第四個字母。

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

證明階梯 #

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

證據它的意義例子
Registry 身分 在刪除當下,那個產物仍在其 registry 上有回應 — 比對的是摘要、修訂版與檔名,不只是名稱。 Ollama 模型、Hugging Face 儲存庫、LM Studio 模型
記錄在案的來源 工具自身的索引記下了每個項目的出處;只有當所有項目都能追溯到 仍在提供服務的公開來源時,才允許批次刪除。 npm 快取、Gradle 模組
廠商合約 廠商提供了自己的清除指令 — 等於工具本身宣告這個快取可以丟棄。 Latent 仍會走垃圾桶,讓你保留還原的能力。 pip(pip cache purge)、uv(uv cache clean)
廠商文件 廠商自己的文件或原始碼寫明,工具會在下次使用時重新抓取或重建它 — 只認在廠商頁面上讀到的,部落格或猜測都不算。手動重新安裝也不算。 Core ML 的已編譯模型快取(Apple)、pip 建好的 wheel、Adobe 的 媒體快取、Gradle 自己下載的 Android SDK 套件
實驗觀察 把檔案夾挪到一旁,重新啟動 App,Latent 觀察它是否回來 — 然後把 原件逐位元組放回去。隔離對任何你打開鎖頭的項目做同樣的事,歷時七天。 每一次觀察都成為記錄在案、附日期的證據。 Codex 的元件快取、LM Studio 的內建工具、Claude Desktop 的代理 執行環境;任何你打開鎖頭的項目

有些檔案夾是逐項評定,而不是整體評定:Xcode 的裝置符號,對仍與這台 Mac 配對的裝置所執行的版本是 R,其餘是 I;一個 Keras 權重檔案夾只有在其中 每個檔案都是 Keras Applications 權重時才是 R。

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

鎖定 #

每一個 I 列都帶著一把鎖。打開它是一個明確的同意動作:那一列 變得可以選取,這次刪除會在記錄中標記為強制執行,確認面板也會以紅色標示。 同意是有範圍的 — 重新掃描會關上所有已打開的鎖。Latent 絕不代你開鎖, 連接的 AI 助手則完全無法開鎖。P 列沒有鎖可開:Latent 根本不會提供它們。

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

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

各畫面的用法 #

一鍵最佳化 #

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

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

空間: 一張清單 #

「空間」是一張歸屬方清單 — Xcode、Homebrew、Hugging Face、Chrome 等等 — 每個歸屬方帶一條依所持內容著色的長條:已證明的 R 是綠色,I 是琥珀色。 展開一個歸屬方,它的列先是 R,再是 I,各自之內由大到小排列。每一列都 顯示它的字母、路徑(個人檔案夾顯示為 ~,游標懸停顯示完整路徑) 和一個在 Finder 中顯示它的 ↗。歸屬方的標題列帶著與清單頂端相同的 ☐ R 標籤 — 它只選取該歸屬方已證明的列,其他一概不選 — 以及一顆 解鎖下方 N 個已鎖定項目…按鈕,一個刻意的步驟就打開它底下的所有鎖。 歸屬方之下是你自己的檔案夾 — 文件、下載項目、照片 — 只列出,絕不預先選取。

我的檔案: 「空間」清單的底部 #

快取是 Latent 能夠證明的東西;真正屬於你的空間需要另一份契約。 在工具歸屬方之下,「空間」會在一條寫明的分隔線下列出六類屬於你自己的 候選項目,每一類都遵守同一條規則:只列出,絕不預先選取,最佳化與 AI 助手絕不觸碰。

App: 解除安裝程式 #

「App」有八個來源,各占一個標籤頁:Mac App、Homebrew、 npm -g、Python (pip)、Conda、Docker · 模擬器、 .pkg 收據與殘留項目。每一個代表可移除之物的列都像「空間」 的列一樣帶 R、I 或 P;App 那一列本身不帶 — 它是你選擇的單位,被評定的是 它底下的各個部分。左側的圓輪依大小顯示各 App,其下的底列說明它們總共占了 什麼:App 本體,然後是依字母分列、它們留下的東西。

點一個 App,就能看到其 bundle identifier 擁有的每個檔案 — 本體、快取、 偏好設定、容器、啟動代理程式 — 先 R,再 I,大的在前。App 本體是一個 I 列(把 App 找回來靠重新安裝,那是你的事)。「空間」已列為儲存區的 檔案夾會摺成一列空間儲存區:,寫著各儲存區的名稱,一個勾選全部選取。 Latent 只預先勾選能夠確定歸屬的部分;有兩種列永遠不會被預先勾選:

勾選 App 自己的核取方塊會選取底下的一切 — 如果其中含有你的資料, 會先問你一個問題,答案在這次工作階段內都會記住。一次解除安裝就是一份 manifest:一次還原就能復原全部。若 macOS 對該 bundle 要求管理者權限, Latent 會把工作交給 Finder — 你會看到標準的認證提示。.pkg 收據 列出管理者所有位置裡的安裝程式殘留,在那裡不刪除任何東西:它顯示還剩下 什麼,在收據指明了解除安裝程式時執行廠商的解除安裝程式,否則就在 Finder 中顯示這些檔案,由你自己移除。殘留項目列出 App 已經不在的資料 — 全部是 I,由你來勾選。

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

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

iOS 模擬器執行環境的做法相同,理由也相同:執行環境是 Apple 簽署的 磁碟映像檔,即時掛載並登錄在 Apple 自己的清冊裡,所以只有 simctl 能移除它。同一份契約 — 面板明說無法還原, 記錄保留 xcodebuild -downloadPlatform iOS,有模擬器 開機中的執行環境會被拒絕,Xcode 隨附的那一個永遠不提供移除。這些列說的 和別處一樣是三個字母:Apple 能重新下載的執行環境是 R,Apple 標為不可刪除 的是 P,有 registry 支撐的映像檔是 R,懸空的層是 I。「使用中」是寫在字母 旁邊的灰色狀態,按鈕會一直等到模擬器或容器不在為止。

Homebrew、npm、pip 與 Conda

其中四個來源,管理的是 brew、npm -g、 pip --user 與 conda 安裝的東西 — 那些默默累積 多年的東西。keg 的符號連結和 wheel 的四散檔案,讓「移到垃圾桶」變成謊言, 所以移除會執行廠商自己的解除安裝,還原 manifest 則改為記下精確的重新安裝 指令。同一條證明規則照樣適用:移除任何東西之前,Latent 會確認 registry(formulae.brew.sh / npm / PyPI)仍提供該名稱與版本 — 沒有回應,就不移除。每一列套件都帶一個字母:管理工具能重新安裝它時是 R, 有其他套件相依於它時是 R 但被占住(會列出相依它的套件,點一下就能跳過去), 沒有人能證明或你自己釘選了它時是 I,它是管理工具自己的本體時是 P — pip 與 setuptools、node 與 npm、conda 的安裝本體、任何在你個人檔案夾之外或屬於 另一個帳號的東西。直譯器已經不在的 Python user-site (經典的 ~/Library/Python/3.x 殘留)則以整個檔案夾一次 移到垃圾桶的方式提供,附一般的還原。

記憶體 #

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

找回與復原 #

隔離 #

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

找回來: 「復原」標籤頁 #

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

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

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

垃圾桶裡的其他項目。由 Finder 而非 Latent 放進垃圾桶的東西, 會列在它自己的標題之下,唯讀,附一顆放回原處按鈕,在 Finder 記有 原位置時把它送回去。Latent 絕不清空或丟棄這些項目;它只是讓你能在自己的 記錄旁邊看到它們。

垃圾桶永遠是你的 #

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

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

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

一切皆可逆 #

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

AI 助理 (MCP) #

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

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

一行安裝 #

Latent 會把自己接入這台 Mac 上的所有助理。在終端機貼上這一行:

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

只寫入確實存在的用戶端:有自帶 CLI 的就執行它的 mcp add(Claude Code、Codex、Gemini、Grok),沒有的就編輯 JSON 設定(Cursor、Claude Desktop、VS Code、Windsurf)。直接編輯的 JSON 設定會先備份為 .bak(有自帶 CLI 的用戶端自己管理設定)。不會為你沒安裝的用戶端憑空建立設定,已經認識 Latent 的用戶端保持不變。想先看看會做什麼,加上 --dry-run。

連接用戶端 #

或者手動接入其中一個:

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

Grok CLI

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

那個 -- 很重要:它把 --mode mcp 交給 Latent,而不是讓 Grok 當成自己的旗標來讀。Grok 也能替你檢查它那一側的接線 — grok mcp doctor 會回報伺服器是否啟動、交握是否完成,以及找到了 幾個工具。

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 — 沒有連接埠、沒有常駐程式、沒有需要一直開著的 東西;用戶端會在需要時自行啟動伺服器。協定的兩個世代都有提供:現行的一代 (2026-07-28,帶 server/discover,每個請求都附版本)與舊的 交握方式,所以 2024 年以來的任何用戶端都能連上。

可以問它什麼 #

伺服器提供六個工具,而你從來不需要用名字呼叫它們 — 用自己的話問, 助手自己會挑:

要清到哪一層 #

塞滿開發者磁碟的東西,多半不是刪了危險,而是要拿回來很費事。 這份代價你願意承擔到哪一步,除了你沒人能回答。所以助手讀到的每一行都帶著 等級,在提出任何建議之前,它應該先給你看四個總量:

走到哪一步由你說,助手把那個數字傳過去,回傳的清單會標明每一行的等級, 你可以在同意之前核對它有沒有守住你選的線。它無法自己抬高上限:無論它要什麼, 伺服器最多到 3。

什麼會離開這台 Mac #

助手看到的是路徑、大小、等級與證據標籤 — 絕不是檔案內容。 但路徑本身也是資訊:如果你的助手跑在雲端,你個人檔案夾底下各檔案夾的名稱會 傳到它那裡,就像你貼進聊天的任何檔案一樣。本機模型則把它們留在這台機器上。 Latent 自己不會把任何東西送到任何地方;它透過管線回答啟動它的那個用戶端, 答案去向何處由那個用戶端決定。

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

助手的權限嚴格小於你的:預設它只能碰已驗證的 R 項目(與一鍵最佳化相同的允許清單),再往下走只有你說了要清到哪一層才行 (見要清到哪一層)。而且有一條絕對的規則:助手不能刪除任何 它沒有出示給你、你也沒有同意的內容。哪些項目屬於一次請求由 Latent 自行 判定,把那份清單原樣交給助手,然後只照那份清單執行:只執行一次,限數分鐘 之內,其間發生變化的項目一律拒絕。沒有回應就沒有刪除。助手 永遠無法開鎖、永遠碰不到你自己的檔案、也永遠看不到檔案 內容 — 只看得到大小、路徑與證據標籤。助手不能拿的每個項目都在清單裡 寫明了原因 — 未證明、重建要花實實在在的時間、你自己的檔案、受保護 — 所以它從不需要猜,而總覽會同時給出它能動的數字,以及 App 所顯示的、 更大的已證明 R 總量。

授權與支援 #

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

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

啟用授權碼或 Beta 金鑰 #

選單列 → Latent → 輸入授權碼…,貼上你的金鑰,完成。一組金鑰 可用於多台 Mac(Beta 金鑰最多可啟用 2 台)。掃描本來就不需要金鑰; 金鑰一到,刪除功能立刻解鎖。 沒有帳號、不用電子郵件、沒有任何要登入的東西。在底層,金鑰會換成一枚由 伺服器為這台 Mac 簽署的授權權杖;App 自己驗證簽章,並在啟動時更新權杖, 所以複製一份設定檔解鎖不了第二台 Mac,而離線的 Mac 在要求再次聯繫伺服器 之前能繼續運作數週。沒有授權時,每個確認面板照樣顯示它會做什麼,只是用 取得授權…取代那顆按鈕。

換到另一台 Mac,以及退款 #

購買的金鑰最多可在 3 台 Mac 上啟用。如果你賣掉或淘汰其中一台,在那台 機器上打開 Latent → 輸入授權碼…並按釋放 — 名額立刻回到你的 金鑰上,可以在別處使用。那台 Mac 上的東西一樣不刪,你隨時可以再次啟用它。

如果一筆購買被退款或拒付,金鑰會在 App 下次啟動時停止用於刪除。 復原永遠不會停止運作。還原、隔離回復與放回原處完全在授權之外 — 退款可以拿走產品,但絕不會讓你的檔案無處可去。

確認下載確實來自我們 #

Latent 以 Developer ID 簽署並已通過 Apple 公證,公證票據已裝訂於磁碟映像上——首次開啟時 macOS 會檢查,離線亦然。若檔案在我們建置之後、抵達您的 Mac 之前遭到竄改,它根本無法開啟。

若要親自確認,將應用程式移入「應用程式」資料夾後執行:

spctl -a -vv /Applications/Latent.app
accepted
source=Notarized Developer ID
origin=Developer ID Application: FatTail Labs (BUS4S7XFQV)

團隊識別碼 BUS4S7XFQV 是我們的,無法偽造。這是本頁上的檢查碼給不了的保證——能替換下載檔的人,也能替換旁邊的檢查碼。

更新同樣要通過這道檢查。在替換任何東西之前,Latent 會驗證下載套件的簽章、核對團隊識別碼並詢問 Gatekeeper。任一項失敗都會中止更新,保留您現有的版本。

移除 Latent #

Latent 只有一個 App 套件和一個資料夾。要移除它,先結束 Latent(選單列圖示會一起消失),再把 Latent.app 拖到垃圾桶。它不安裝任何輔助程式、登入項目或核心延伸功能,也不保存密碼。

你的紀錄在 ~/.latent:還原紀錄、隔離資料夾(仍在觀察期內的項目)、排除清單和活動記錄。如果還可能重新安裝,請保留——那些是回來的路。只有徹底不用時才刪除它:仍在隔離中的項目會一起消失,所以請先在「復原」標籤頁還原或清空。

Latent 在「App」裡把自己列為 P——它絕不會從內部移除自己。

有問題嗎? #

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