🍺 Homebrew 更新周报 # 20260615 | 容器、信任与沙盒

这周 brew update 比平时多了几行字。

从 5.1 跳到 6.0,Homebrew 悄悄加了一个叫 tap trust 的东西。
你装了很久的那些 tap,现在需要你主动"信任"才行。
基础设施在变,而工具列表里,Agent 还在继续进场。
只是这次,有人开始为 Agent 建隔离间了。


本周一句话总结

Agent 越来越多,隔离成了新的基础设施需求。


Homebrew 6.0:tap trust 来了

这周 Homebrew 从 5.1.14 升到了 6.0.1,最显眼的变化是 tap trust 机制

以前 brew tap user/repo 之后,那个 tap 里的公式就直接能用。
现在,未经信任的 tap 会被忽略——brew 升级后会看到大量这类警告:

Warning: Skipping buo/cask-upgrade because it is not trusted.
Run `brew trust buo/cask-upgrade` to trust it.

信任单个公式、cask 或命令:

brew trust --formula user/tap/formula
brew trust --cask user/tap/cask

信任整个 tap:

brew trust user/tap

这是一个供应链安全向的变化。Homebrew 官方公式是可信的,
但第三方 tap 历来是盲区——任何人都能发布,你装了就装了。
tap trust 把这个决策显式化:你需要告诉 brew,你信任谁。

如果你有在用第三方 tap(比如 buo/cask-upgradeiina/mpv-iina),
升级后记得手动跑一遍信任命令,否则它们会静默失效。


本周新增工具速览

🧪 New Formulae

名称 中文说明
asccli App Store Connect CLI,管理应用、版本和截图
avisynthplus AviSynth 帧服务器的改进版
bttf 日期时间算术、解析与格式化的 CLI 工具
concord 终端里的 Discord TUI 客户端(Rust 写的)
container-use 给编码 Agent 提供隔离容器开发环境
container2wasm 把容器转换为 WASM
cyclonedx-cli CycloneDX SBOM 的分析与操作工具
dbx-cli DBX 数据库连接、schema 查询与安全操作 CLI
eas-cli Expo Application Services 命令行工具
fakecloud 免费开源的本地 AWS 云模拟器,用于集成测试
gnhf 用于长时间编码任务的自主 Agent 编排器
isponsorblocktv 所有 YouTube TV 客户端的 SponsorBlock
kdash 简洁快速的 Kubernetes 仪表盘
keyd Linux 的键位重映射守护进程
kubectl-explore 带模糊搜索的更好用的 kubectl explain
libcext Common Pipeline Library (CPL) 的 C 工具库
md-tui Rust 写的终端 Markdown 渲染器
merman-cli 无头 Rust 版 Mermaid.js 图表生成
mimo-code 带跨会话记忆的 AI 编码 Agent
netwatch 跨平台实时网络诊断 TUI
officecli 命令行读写和自动化 Office 文档(.docx/.xlsx/.pptx)
pdf.tocgen 自动为 PDF 生成目录的 CLI 工具集
pkgsite Go 包的本地文档服务器
poppler-qt6 基于 xpdf-3.0 的 PDF 渲染库(Qt6 版)
pup Datadog 产品的 200+ 命令统一 CLI 伴侣
pv-migrate Kubernetes 持久卷迁移与备份恢复 CLI
redli 更友好的 redis-cli 替代品,支持 TLS
safestringlib 安全字符串操作和内存例程库
speech Apple Silicon 本地语音工具包:ASR、TTS、VAD、说话人分离
splitrail CLI 编码 Agent 的实时 token 用量与成本监控
swgp-go 最小开销的 WireGuard 简易代理
syswatch 跨平台系统诊断 TUI
ttl 现代 traceroute/mtr 风格 TUI,带逐跳统计与 ASN/地理信息
vulcain 客户端驱动的快速 REST API 工具
wx-cli 微信 4.x 本地数据的 CLI,带守护进程架构
zot Go 写的轻量编码 Agent 运行框架

🧩 New Casks

名称 中文说明
ctivo 下载并转换 TiVo 录制节目
flow5 初步空气动力学和水翼设计的势流求解器
font-paperlogy 一款字体
font-yuyu 一款字体
font-yuyu-short 一款字体
r-rig-app R 安装管理器的 GUI 应用
shade AI 驱动的媒体存储与资产管理平台
terax 终端优先、AI 原生的开发者工作区

值得留意的几个方向


container-use:给 Agent 建隔离间,而不是盼它自觉

container-use

让多个编码 Agent 并行工作,一直存在一个隐患:
它们会互相踩脚——共享文件系统、共享 git 状态、某个 Agent 的操作污染了另一个的上下文。

container-use 的答案是:每个 Agent 给它一个干净的容器,跑在独立的 git branch 里。
底层是 Dagger(容器化工作流)+ git worktree,两者组合解决了隔离的两个维度:
文件系统和代码状态。

┌─────────────────────────────────────────────────────┐
│  container-use — isolated envs for coding agents    │
├──────────────┬──────────────┬───────────────────────┤
│  Agent A     │  Agent B     │  Agent C              │
│  branch-a    │  branch-b    │  branch-c             │
│  container   │  container   │  container            │
│  [running]   │  [running]   │  [idle]               │
├──────────────┴──────────────┴───────────────────────┤
│  git worktrees + Dagger containers                  │
│  Complete isolation · Full logs · Drop-in terminal  │
└─────────────────────────────────────────────────────┘

更值得关注的是它的可见性设计:
完整的命令历史和日志,你可以随时 git checkout <branch> 看结果,
出问题的容器直接丢掉重开,也可以 drop into 那个环境直接调试。

它省掉的是"Agent 在跑,但我不知道它在哪儿搞了什么"的不安全感。


concord:Discord 住进了终端

concord 终端界面

Discord 有官方客户端,但官方客户端需要 Electron,要内存,要 GPU,
在一台只挂着 SSH 的服务器上或者注意力高度集中的终端会话里,它格格不入。

concord 是 Rust + ratatui 写的 Discord TUI——
频道列表、消息历史、发送消息、@提及自动补全、自定义表情、文件上传下载、
线程、论坛频道、Kitty/iTerm2/Sixel 图片渲染、语音频道……
内存通常在 20–40 MB。

它有点令人意外的精致。不只是"能用",是真的在认真还原 Discord 体验,
包括语法高亮的代码块渲染和 vim 风格键位。

如果你日常工作都在终端里,这是一个你可能不知道自己想要的东西。


speech:Apple Silicon 的本地语音工具包,终于能用了

Apple Silicon 有 Neural Engine,有 CoreML,有原生语音框架——
但要把这些能力拼成一条完整的"语音输入 → 文字 → 说话人 → 输出语音"的管道,
一直需要自己写胶水代码。

speech 这个工具包把它打包好了:

  • ASR(自动语音识别):支持 52 种语言的 Qwen3-ASR、25 种语言的 Parakeet TDT、支持 1,672 种语言的 Omnilingual
  • TTS(文字转语音):Kokoro(82M 参数)、CosyVoice(声音克隆)、最长 90 分钟播客合成
  • VAD(语音活动检测):Silero 流式检测、Pyannote 离线
  • Diarization(说话人分离):回答"谁什么时候说话"

全部跑在本地,不需要 API key,数据不出设备。
Swift 6 写的,需要 Apple Silicon(M1–M4)。

macparakeet 和 buzz 上周出现,macOS 26 来了本地语音转写的 API 改进——
这个品类今年扎堆出现不是巧合,是 Apple Silicon 的算力终于跑到这条线上了。


wx-cli:微信数据 CLI,这个有点意思

一行描述:WeChat 4.x local data CLI with daemon architecture

微信 4.x 把消息和数据存在本地,但没有任何官方的 CLI 或 API 接口供开发者访问。
wx-cli 把这个缺口补了——可以用命令行读取本地微信数据,
守护进程架构意味着它能在后台持续运行、响应查询。

用途想象一下:备份聊天记录、搜索历史消息、把微信数据导出给其他工具处理。
不是所有人都需要,但需要的人会很需要。


一点个人感受

Homebrew 6.0 的 tap trust 我第一反应是麻烦,
但想一想,这其实是它应该做的事:
把"我信任这个来源"的决定还给用户,而不是默认全信。
装完 brew 升级之后花 2 分钟跑一遍 brew trust,值得。

container-use 和 splitrail 同时出现——
一个是给 Agent 建隔离环境,一个是监控 Agent 的 token 消耗。
加上上上周的 codeburn、上周的 gnhf,
这条"Agent 基础设施"的产品线正在快速变得完整。

speech 是那种"迟早会成为标配"的工具。
Apple Silicon 的语音能力一直在这里,只是没有统一的 CLI 接口。
现在有了,接下来就是等它被各种工具集成。

concord 让我想起 mutt——
有人坚持在终端里读邮件,有人会坚持在终端里上 Discord,
理由一样:注意力不被打断。


结语

这周的关键词是"隔离"——
Homebrew 在 tap 层面要求显式信任,
container-use 给 Agent 加了容器隔壁,
speech 让语音处理不出本地。

边界在收紧,不是因为不信任,而是因为信任需要被明确。

越来越多的东西在本地跑,这不是退步,是一种选择。