在 Mac 上卸载 Bruno
你的 Bruno 集合就是普通的文件夹,通常放在一个 Git 仓库里,是你自己选的位置,卸载 Bruno 完全不会碰它们,它们放在你自己安排的地方,不在应用自己的数据文件夹里。这份指南说的是 Bruno 自己的应用级数据:全局设置、保存的环境变量、请求历史。它覆盖 Bruno GitHub Releases 上的官方 DMG,以及 Homebrew cask bruno;两者装的是同一个应用,bundle identifier 也一样。
退出并移除应用
从菜单退出 Bruno,再把「应用程序」里的 Bruno.app 拖进废纸篓。你的集合会原封不动留在原处;一个集合就是 Bruno 读写的普通文件夹,不是应用统一管理或拥有的东西。
Bruno 自己的数据放在哪里
| 位置 | 里面是什么 | 如何处理 |
|---|---|---|
~/Library/Application Support/bruno |
Bruno 自己的应用数据:全局偏好设置、保存的环境变量,以及不属于某个具体集合的请求 / 响应历史 | 列出但不默认勾选;如果你还依赖全局环境变量或没有另外保存的历史记录,先备份这里 |
~/Library/Preferences/com.usebruno.app.plist |
应用偏好设置 | 默认勾选,删除是安全的 |
~/Library/Saved Application State/com.usebruno.app.savedState |
保存的窗口状态 | 默认勾选,删除是安全的 |
你真正的集合(那些 Bruno 指向的 .bru 请求文件文件夹,往往纳入了 Git 版本管理)不在这张表里,因为 Bruno 从不把它们复制进自己的数据文件夹。它们放在你自己保存的地方,按你管理项目其他部分的方式备份就行,和移除应用本体无关。
检查结果
在终端运行下面的只读命令:
pgrep -il bruno
ls -d ~/Library/Application\ Support/bruno
pgrep 没有输出,说明没有 Bruno 进程还在运行。ls -d 如果 Bruno 的应用数据文件夹还在这台 Mac 上就会打印路径(如果你是为了保留其中的环境变量或历史记录而特意留下这一行,这是正常结果),删掉后会提示「No such file or directory」。这条命令跟你的集合无关,它们放在完全不同的地方。
用 Homebrew 安装时
下一次 Mole 更新会先检查 zap 清单,涉及未勾选的数据、其他应用共用的文件或无法确认的内容时不执行 --zap,已勾选的残留仍由 Mole 清理。Preview 290 尚未包含这项保护。
Mole Preview 290 移除 Homebrew 安装的 Bruno,效果和 brew uninstall --cask --zap bruno 一样。这个 cask 的 zap 清单会把 ~/Library/Application Support/bruno、偏好设置文件、保存的窗口状态一并移进废纸篓,也就是上面表格里那三项,不管你在 Mole 里留没留勾。它不会碰你的集合。想保留 Bruno 保存的环境变量或请求历史,就先备份 ~/Library/Application Support/bruno,或者跳过 zap 这一步:
brew uninstall --cask bruno
Mole 会列出什么
以下是 Mole 1.15(目前为 Preview)的处理。~/Library/Application Support/bruno 列出但不默认勾选:这个文件夹是按应用名而不是 bundle identifier 命名的,Mole 的卸载扫描器把这类文件夹当作需确认行,不会自动勾选。偏好设置文件和保存的窗口状态是按 bundle identifier com.usebruno.app 命名的,和其他应用一样默认勾选。
这次检查覆盖了什么
测试用的 Bruno 通过 Homebrew cask bruno 安装,2026 年 9 月 17 日用一个开发版 Mole 卸载。等 Mole 自己开始扫描时,Application Support/bruno 这个文件夹已经被 cask 的 zap 步骤删掉了,所以这次移除实际上靠的是 Homebrew,并没有真正验证到 Mole 对这个文件夹的需确认行为;除此之外没有发现新的残留。这次测试没有用到任何集合。
