Burrow

文档

Burrow 能做的一切、每个工具会碰到的范围,以及它在删除任何东西之前所遵循的规则。

概览

Burrow 是一款面向 macOS 的原生桌面应用,Windows 版本基于 WinUI 3,处于测试阶段。它承担人们通常分给清理工具、卸载工具、重复文件查找、磁盘可视化和菜单栏监控的活儿,并通过 MCP 把这一切开放给编程智能体。

十四个工具共用一个窗口。每个工具都会用自己的颜色重新渲染界面,因为颜色正是它告诉你即将动到什么的方式。其中有两项在命令行里根本没有对应物:长期历史与 MCP 服务。

一切都在本机运行。扫描结果、指标与历史都留在这台机器上,MCP 服务只绑定回环地址。

安装

在 macOS 上,Homebrew 是最短的路径。它安装的是带 Developer ID 签名、经 Apple 公证并内置引擎的版本,同时保留隔离属性,好让 Gatekeeper 校验票据。

brew install --cask caezium/tap/burrow

直接下载与 Windows 预览版都在 安装页面。更新通过签名的 Sparkle 源送达应用内;用 Homebrew 安装的则以 brew upgrade.

完全磁盘访问权限

没有它,Burrow 也能执行安全扫描。授予完全磁盘访问权限后,它才能触及 macOS 平时隐藏起来的、更深处的 Application Support 与容器缓存。你随时可以在“系统设置”的“隐私 & 安全性”中授予或收回。

把空间收回来

清理

扫描十余个类别:应用缓存、系统缓存、日志、开发工具缓存、AI 工具缓存、浏览器数据、云存储客户端、设计工具、通讯应用,以及各类临时文件。

确认列表按每一项删除起来有多安全排序:可重新生成的缓存排在最前,用户可见的状态排在最后。体积统计能识别硬链接,因此被多个工具共用的文件只计一次,而不是每条路径各计一次。

深度清理

开发工作留下的渣土。因为取舍不同,所以与普通缓存分开处理。像 dist, build, target, .next, .build, DerivedData, __pycache__、 coverage 这样的构建产物在本地就能重建,无需联网。而像 node_modules, Pods、 venv 这样的依赖目录则需要重新拉取,因此会连同这份代价一并显示,并在你确认之前保持未勾选。

安装包

查找 .dmg 与 .pkg 文件——那些在应用装好很久之后仍留在“下载”里的。单个不大,但在一台用了几年的机器上,加起来常常有几十 GB。

重复文件

分阶段的内容哈希:先按大小分组,再对候选文件的开头做哈希,最后只对仍然匹配的做完整哈希。硬链接与克隆文件被视为同一个对象,因此显示的可回收数值就是你真正能拿回来的数值。

相似照片

对那些看上去几乎一样、逐字节却不同的图片做感知比对,比如连拍帧和重新导出的版本。内容哈希看不出这些,而它可以。

应用程序

应用

列出所有已安装的应用程序,可按大小、名称、最近使用或来源排序。多选卸载会连同偏好设置、Application Support 数据、容器、保存的状态与启动代理一并删除。

Homebrew 标签页会检查哪些 cask 与 formula 已经过期,并可就地更新。Burrow 按 cask 令牌而非显示名称解析,因为有十来个常用应用所使用的令牌与它自称的名字并不相同。

残留文件

反过来的一面:那些属于早已不在的应用程序的支持文件、偏好设置与启动代理。Burrow 会把每个孤立文件对应回留下它的那个应用,因此你确认的是某个有名有姓的应用的残留,而不是一串路径。

已删除应用留下的启动代理,最值得先清掉。 launchd 会不断尝试启动一个已经不存在的可执行文件,于是每次开机都在日志里添乱。

维护

优化

把例行杂活收进一次确认里:重建快速查看、修复缓存与元数据、清空 DNS,并检查登录项。

调优

一遍完成整套养护。Burrow 会挑出此刻真正适用于这台机器的维护项并从头执行到尾,而不是摆出一张大多用不上的固定清单。

看懂磁盘

分析

整卷的方块树状图,面积按真实占用的字节数计算。深入任意分支即可看到下一层的同样细分,再从右键菜单在访达中显示或移到废纸篓。

回答“什么在占我的磁盘”,树状图比排序列表更合适:占得最多的那个是最大的那块图形,而不是你得滚动去找的第一行。

如果删掉大文件之后可用空间没有增加,通常是本地的 Time Machine 快照仍然占着。参见 为什么磁盘明明没满,Mac 却说它满了.

盯住这台机器

状态

CPU、内存、GPU、磁盘、网络与电池同页展示,各配迷你走势图。进程表可按任意列排序,也能把你想一直盯着的行置顶。在 Apple 芯片上,风扇转速与芯片温度直接从 SMC 原生读取。

历史

状态页采集的每一次样本都写入本地的 SQLite 文件。你可以从五分钟一直回溯到九十天;风扇真正转起来的那些时刻,还能查看各进程的峰值表。这些内容不会上传。

端口

实时显示每个监听端口、背后的进程、可执行文件路径和所属用户。不用运行 lsof,就能知道是谁占用了 3000 端口。

网络

按网卡与按进程显示实时吞吐。和活动监视器的累计总量不同,这里是速率,因此此刻把你带宽占满的那个进程就排在最上面。

恢复联网

断网时带你一步步回到地面:依次检查网卡状态、DNS 解析、网关可达性与强制门户。

不必打开应用,整幅画面就从菜单栏落下:实时指标、占用最高的进程,以及直接跳进所需工具的入口。

智能体与 MCP

Burrow 同时也是一个 MCP 服务,因此编程智能体可以直接向机器提问,而不必从你的源码里猜。对外开放的工具共有二十六个:其中十四个只读,开箱即用;会改动你机器的那些,必须先在设置里各自明确开启,智能体才谈得上调用。

把 Claude Code 指向这个应用:

{
  "mcpServers": {
    "burrow": {
      "command": "/Applications/Burrow.app/Contents/MacOS/Burrow",
      "args": ["--mcp"]
    }
  }
}

只读工具

burrow_snapshot, burrow_history, burrow_top_processes, burrow_process_usage, burrow_info, burrow_analyze, burrow_dupes, burrow_orphans, burrow_photos, burrow_ports, burrow_net, burrow_doctor, burrow_disk_forecast、 burrow_list_apps.

需要开启的工具

burrow_clean, burrow_purge, burrow_uninstall, burrow_optimize、 burrow_installer 会改动你的机器,在你开启之前一直不可用。

HTTP API

在 127.0.0.1:9277 上提供一个回环 HTTP 接口,为那些讲 HTTP 而不讲 MCP 的工具提供同样的只读数据。它默认开启,可在设置中关闭;只绑定回环地址,另一台机器永远访问不到。

安全模型

Burrow 的设计是:一旦出错,代价是重来一次构建,而不是你的数据。以下四条规则在整个应用中都成立。

  • 先给你看,再动手删。 每个操作都会在任何东西被移动之前先列出文件与字节数。你确认,Burrow 才动手。
  • 按后果排序。 类别按删除起来有多安全排列,凡是重建确有代价的,在你亲手勾选之前都保持未选中。
  • 不设常驻后台的 root 助手。 当某项任务需要管理员权限时,由 macOS 自己的授权对话框来询问你,Burrow 只执行那一条命令,随后进程退出。不会留下任何带特权的守护进程。
  • 一份你可以读到的保护清单。 那些永远不在删除之列的路径,是靠代码强制而不是靠约定俗成,而这份代码是公开的。

签名与公证

0.11.0 及其之后的每个 macOS 版本都带 Developer ID 签名并经 Apple 公证;只有签名、公证、票据装订与 Gatekeeper 评估全部通过,标签才可能发布。归档的 0.10.5 及更早版本在这项保证之前:若被 Gatekeeper 拦下,请右键选择“打开”。

隐私与数据收集

没有文件、路径、网址或指标会离开这台机器。扫描、历史与 MCP 服务全部在本地。

Burrow 确实会发送匿名、可关闭的使用与诊断数据:崩溃与卡顿报告、启动与更新的结果,以及采样得到的、名称固定的性能区间。它从不录屏,也从不发送用户的文件或其内容。设置里一个开关即可同时停掉这两项服务,而从源码构建的版本本就不发送任何内容。

所有字段都列在 TELEMETRY.md。此外,本网站另行使用不依赖 Cookie 的分析:不建立个人画像,不存储浏览器标识,剥离网址中的查询与片段,并尊重 Do Not Track。

疑难排解

Gatekeeper 拦下了这个应用

在 0.11.0 及之后不应出现这种情况;如果出现了,多半是下载途中被改动过,请从 GitHub 重新获取。对归档版本,请右键点击应用并选择“打开”。

完全磁盘访问看着已授予,扫描却依然很浅

macOS 把这项授权绑定在应用的代码签名上。用签名不同的版本替换应用会让它失效。请先把 Burrow 从完全磁盘访问列表中移除,再重新添加。

可用空间没有增加

删除文件并不会释放本地 Time Machine 快照仍在引用的数据块。当空间吃紧时,macOS 会自动稀释这些快照。 tmutil listlocalsnapshots / 可以看到现在都有哪些。

智能体看不到需要开启的工具

清理、卸载以及其他会真正动手的工具,在你于设置中启用智能体操作之前一直是隐藏的。这是有意为之:你没有另行授权的东西,智能体不该有能力删除。