Latent 只有一个承诺:没有证据,不称之为安全; 没有退路,不执行删除。
Latent 追踪的每个项目都带有三种徽章之一,标明删除它会发生什么:
还有一把锁,它不是第四个标记。带琥珀色 R 又带锁的行,是它的分类还只是一个无人验证过的主张 — 通常是系统或工具缓存。它既不是你的作品,也没有承诺一定回得来,所以在你亲手开锁之前,Latent 不会动它。标记说的是“删掉会怎样”,锁说的是“需不需要你来判断”。
所以字母和颜色回答的是两个不同的问题。字母说的是“删掉会怎样” — R 会回来,I 回不来,P 根本不会被提议。颜色说的是“由谁判断”:绿色表示 Latent 可以凭自己的证据动手,琥珀色表示这由你决定。这正是未证明的缓存仍然是 R 而不变成 I 的原因 — 断言它回不来只是往悲观方向的猜测,其根据并不比乐观方向更多。展开一个归属方时,绿色的行排在前面,然后是一条写着从这里起由你判断的分隔线,再往下是其余的行;归属方的条形图也按同样的方式划分。
没有许可证的 Latent 是一台全功能的查看器:想扫描多少次都行, 探索轮盘和环形图,追踪容量增长,阅读日志。没有任何功能会过期。 许可证解锁的只是删除文件 — 而恢复(撤销、隔离还原)无论有无许可证 都始终可用,因为这个应用绝不会做的一件事,就是拿你的文件当人质。
Latent 标签页就是那个一键操作:logo 本身就是按钮,运行时进度环 围绕着它,完成后显示释放的总量。它删除的内容要过两道关, 而不是一道:恢复必须已有证据支撑,并且该项必须属于丢了你 都不会注意到的级别 — 厂商自带清除命令的包缓存、浏览器 HTTP 缓存、 缩略图存储。任何需要你重新获取的东西(下载的模型、工具链、你安装的 插件)都不进入优化,留在“空间”里等待你有意的点按。这份白名单与 已连接 AI 助手被限定的范围刻意保持一致,因此一次点按绝不会比助手 被允许的走得更远。
优化绝不触碰未验证的行、你自己的文件或受保护路径;绝不替你开锁; 绝不卸载应用或软件包、不卸载内存中的模型、不清空废纸篓。如果部分 目标被正在运行的应用占用,优化会先问 — 弹出这些应用的勾选列表, 只有保持勾选的应用才会被礼貌地退出(应用自己的保存提示会出现); 取消勾选,它的文件就会被直接跳过。所有移动的内容都在同一份撤销清单 之下进入废纸篓,守卫在删除的那一刻重新检查。确认面板还会列出被刻意 保留的内容 — 所以你看到的数字是下限,不是吹嘘。
“可以安全删除”是挣来的,从不靠假设。Latent 使用四种证据, 从最强的开始:
| 证据 | 含义 | 例子 |
|---|---|---|
| 注册表身份 | 删除时,那件产物仍能在其注册表得到应答 — 对比的是摘要、修订版和文件名,而不只是名字。 | Ollama 模型、Hugging Face 仓库、LM Studio 模型 |
| 有记录的来源 | 工具自己的索引记录了每个条目的出处;只有当所有条目都能追溯到 仍在提供服务的公开来源时,才允许批量删除。 | npm 缓存、Gradle 模块 |
| 供应商合约 | 厂商自带清除命令 — 工具本身声明该缓存可以丢弃。Latent 仍然使用废纸篓,让你保留撤销能力。 | pip(pip cache purge)、uv(uv cache clean) |
| 实测观察 | 隔离观察工具是否真的重建了被移除的内容 — 每次观察都会成为记录在案的证据。 | 任何你解锁的项目 |
当一个存储混有可证明与不可证明的内容时,Latent 只删除已证明的 那部分,并明确告诉你保留了什么、为什么。放在下载模型旁边的 自定义微调模型,永远原地不动。
未验证项、你自己的文件和受保护项都带有一把锁。打开它是一次 明确的同意行为:该行变为可选,删除会在记录中标记为强制执行,确认面板 会以红色标出。同意有明确范围 — 重新扫描会清除所有已打开的锁。Latent 绝不替你开锁,已连接的 AI 助手则完全无法开锁。
缓存是 Latent 能拿出证明的部分;真正属于你的空间需要另一套契约。 空间里的我的文件面板呈现六类候选项,每一类都遵循同一条规则: 只列出,绝不预先勾选,优化和助手绝不触碰。
.dmg/.pkg)和被放弃的未完成下载。node_modules、Rust target、
build/dist、项目文件夹里的 virtualenv。
只在项目标记文件(package.json、Cargo.toml 等)
旁边才认领,而没有 requirements 文件的 virtualenv 保持锁定 —
包列表会随它一起消失。它们标记为 R,但重建要花时间,
所以这些绝不进入优化。少数删除会被提供一条比废纸篓更稳妥的路线 — 7 天隔离 — 但仅限 损失不透明或难以逆转的情况:受保护项和无法读取的“你的数据”存储。 其余一切(未验证缓存、你自己被列出的文件)直接进入废纸篓,那里的 恢复行已写明风险。这是建议,绝不强加。窗口期内,从“恢复”标签页 一键即可还原。到期后项目转入废纸篓 — Latent 会记录所属工具是否 重建了该路径,为原本没有证明的主张积累证据。想走直接路线?在确认 面板选“直接进废纸篓”;你说了算。
所有能回来的东西都在一张可排序的表格里,附有它被移除的日期:
绿色行 — 有记录的重新获取命令,或所属工具会自行重建的已验证存储 — 还可以 直接在恢复里清空 — 一行或全部一起,需经过明确的“无法撤销” 确认 — 因为它们的回归之路不依赖那些字节。会永远消失的行绝不会出现 这个按钮;那个决定留给 Finder。
行按阶段分组 — 隔离、废纸篓、已消失 — 最新在前,各阶段的列显示项目进入该阶段的日期;可按名称、来源或大小排序,按阶段筛选,按名称、来源或命令搜索。最后 那一组正是重点所在:记录比废纸篓活得久,所以清空废纸篓不会 让你失去任何无法主动找回的东西。命令只在狭窄且经过校验的形态下运行; 其余的会展示出来供你复制。
Latent 只把东西移进废纸篓,绝不在你不知情时清空它。它不碰 自己没放进去的文件,也不丢弃没有退路的文件。概览的废纸篓卡片显示里面 有什么,一个按钮在 Finder 中打开它。
但有两处会替你收尾。恢复标签页可以逐项清空,或一次清空所有安全项 — 这里的“安全”指该行仍带着已记录的重新获取命令,或已验证工具会重建它。而 Optimize 在一次运行之后立即提供同样的操作,且仅限那次运行。Optimize 只删除已证明安全的项目,所以它移动的每一行都能重新下载或重新生成;让你 再去 Finder 里回收空间,等于应用对自己已经作出的判断临阵退缩。按钮上写着 件数和大小,并只询问一次。
废纸篓里的其他东西 — 包括你自己在 Space 里挑的 — 都留给你在恢复标签页 或 Finder 中判断。
删除进入废纸篓,绝不直接湮灭,每次运行都会写下一份 撤销清单,精确恢复移动过的内容。空间的清理在移动任何东西之前 会跑四道守卫:所属工具没有在运行、目标内没有正在运行的二进制文件、 目标内没有文件被任何进程占用、最近 10 分钟内没有任何变动。守卫在 删除的那一刻复检,而不只是在计划阶段。应用卸载器跑的是自己的一对 守卫 — 应用必须没有在运行,目标内不得有文件被占用。
点按一个应用,即可看到其 bundle identifier 名下的每个文件 — 应用包、缓存、偏好设置、容器、启动代理。Latent 只预先勾选能确定归属 的内容;有两类行绝不预先勾选:
勾选应用自己的复选框会选中它名下的一切 — 如果其中含有你的数据, 会先问你一次,答案在本次会话内被记住。一次卸载就是一份清单: 一次撤销恢复整个卸载。如果 macOS 对该应用包要求管理员权限,Latent 会把工作交给 Finder — 你会看到标准的认证提示。
Docker 把镜像、容器、卷和构建缓存都放在一个不透明的虚拟机磁盘里,
文件层面的删除等于恢复出厂设置 — Latent 把那个磁盘列为你的数据,
绝不预先勾选。Docker 面板提供的是由 Docker 自己执行的单项移除:
一个镜像,或构建缓存。这种移除是不可逆的 — 不进废纸篓,
没有撤销 — 所以它的确认面板会用这些字原话说明,而且 Latent 在运行
命令之前就写下记录:删了什么、多大,以及能找回它的那行
docker pull 命令。正被容器使用的镜像会被拒绝,
卷绝不列出 — 卷是别人的数据库。
iOS 模拟器运行时同理,原因也相同:运行时是 Apple 签名的磁盘映像,
实时挂载并登记在 Apple 自己的注册表中,所以只有 simctl
能移除它。契约相同 — 面板写明无法撤销,记录保留
xcodebuild -downloadPlatform iOS,有模拟器已启动的
运行时会被拒绝,Xcode 自带的那个绝不提供。
卸载器的另外两个来源管理 brew 和
pip --user 安装的东西 — 那些悄悄积累多年的内容。
keg 的符号链接和 wheel 的散落文件会让“移到废纸篓”变成谎言,所以移除
运行的是厂商自己的卸载命令,撤销清单转而记录确切的重装命令。同一条
证明规则依然适用:移除任何东西之前,Latent 会检查注册表
(formulae.brew.sh / PyPI)仍在提供该名称和版本 — 无应答,不移除。
锁定的行意味着有别的包依赖它、它被固定(pin)了,或它来自第三方 tap。
解释器已消失的 Python user-site(经典的 ~/Library/Python/3.x
残留)会作为一次完整文件夹的废纸篓移动提供,带正常的撤销。
没有清理按钮,没有健康分数 — macOS 本来就会压缩并换出闲置内存,
所以“释放 RAM”多半意味着付出代价再读回来。真实存在的问题是被遗忘的
应用占着数 GB,所以应用内存卡片按实际占用列出你自己的应用,配一个
退出按钮,作用恰好就是 Cmd-Q:应用会弹出自己的保存提示,绝不强制
结束。系统进程绝不列出。这个标签页还会显示统一内存的状态,以及哪些
模型守护进程(Ollama、LM Studio、llama.cpp、ComfyUI…)把权重驻留
在内存里。每个按钮运行的都是厂商自己的命令 —
ollama stop、lms unload --all、ComfyUI 的
/free、llama.cpp 的路由器卸载 — 模型在下次使用时自然
重新加载。Latent 绝不强制结束任何进程。
Latent 内置一个 MCP 服务器,任何支持 MCP 的助手都能读取你的磁盘 全貌并提出清理建议。服务器就是应用的二进制文件本身:
/Applications/Latent.app/Contents/MacOS/Latent --mode mcpclaude mcp add latent -- /Applications/Latent.app/Contents/MacOS/Latent --mode mcpcodex mcp add latent -- /Applications/Latent.app/Contents/MacOS/Latent --mode mcpgemini mcp add latent /Applications/Latent.app/Contents/MacOS/Latent --mode mcp把下面的内容加到客户端的 MCP 服务器配置里 — 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 的数字 是有意偏小的:其中每个字节都带着证据 — 一次注册表应答、一条有记录的 来源、一份供应商合约,或一次实测到的重建。没有证据的字节照样展示; 只是交由你来决定,锁在你手里。
菜单栏 → Latent → 输入许可证…,粘贴你的密钥,完成。一个 密钥可用于多台 Mac(测试密钥最多在 2 台上激活)。扫描本来就不需要 密钥;密钥一到,删除立即解锁。没有账号,不要邮箱,无需登录任何 东西。
⌘1–⌘6 — Latent、概览、空间、应用、内存、恢复⌘7 — 跳到恢复里的隔离行⌘Z — 撤销上次清理⌘R — 重新扫描在应用内:帮助 → 发送反馈…。它会发送你的留言以及应用和 macOS 的版本;活动日志只有在你勾选对应选项时才一并发送,并会先去除 你的家目录名。绝不会在后台发送任何内容 — 只有那个按钮会发送。也可以 写信到 fattaillabs.ceo@gmail.com — 每一封我们都会读。