规则

真正让人担心的不是浪费空间,而是丢失工作。Devbroom 的规则正是为此而设,而且没有一条是可以关掉的设置。

扫描只读取

扫描不会改动任何一个文件。除非你在“自动维护”中把某条规则设为“自动执行”,否则没在预览中看过并确认的东西都不会被碰。

每个判定都附带理由

没有哪一项会无缘无故地被判为可清理或已锁定。每个判定的理由都显示在该项旁边,在命令行中则通过 --details 显示。

已锁定和不确定无法选中

这是一项限制,而不是偏好。需查看的项目只有通过“仍然加入”才会清理;在命令行中对应的是 --include-review,它会在终端中请求确认。

删除前再检查一次

按下“清理”时,每一项都会根据当下正在运行的进程再检查一次。扫描后判定或内容发生变化的项目不会被动,并会告诉你为什么跳过。

先进废纸篓

默认移到废纸篓,每一项都可以从“历史记录”中放回。永久删除是另一个单独的选择,需要按住按钮来确认;你所在的组织可以关闭它。移到废纸篓的空间在你清倒废纸篓之前不算已释放。

Worktree:从不 --force

  • 含有未提交更改,或含有未跟踪或已暂存文件的 worktree 为已锁定。没有 --force,git 不会删除它;Devbroom 从不使用 --force。
  • 被忽略的文件会让它成为需查看,因为 git worktree remove 会不加询问地删除它们。
  • 删除 worktree 时,分支上未推送的提交会保留;在分离的 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 上

无需账户,没有遥测;不会发送任何关于你的信息。应用会检查更新;如果你输入 Pro 许可证,它会激活一次,之后大约每月悄悄复查一次(只发送许可证密钥和你 Mac 的名称)。没有许可证时,检查更新是唯一的网络请求。从会话日志中它只取 token 数和模型名称;搜索会话时在那一刻读取日志,不保留任何索引或日志,并在摘录中隐藏看起来像机密信息的字符串。详见隐私页面。

最后更新: 2026年10月7日