升级打怪

 
🍺 Homebrew 更新周报 # 20260817 | 模型版本号开始有自己的家

上周我们刚把 agent 工具链拼成了一桌。
这一周,有人开始给这桌上的每一道菜挂名牌。

不是一个 IDE 出来了,
是一个叫 inshellisense 的东西——Microsoft 出的——给 bash、zsh、fish 同时装上 IDE 风格的补全;
不是一个模型面板又出现了,
是一份菜单栏把"DeepSeek V4 Pro"和"V4 Flash"作为两个可选项摆给你,RAM 够不够它替你算好;
不是又一只桌面宠物,
是宠物会看你的 agent 在不在干活——你不动,它也不动。


本周一句话总结

agent 工具链上周把"能不能用"的问题答完了,这一周回答的是"谁替我盯着它"——用补全、用菜单栏、用宠物。


本周新增工具速览

🧪 New Formulae

名称 中文说明
b4n Kubernetes API 的 Rust TUI(类 k9s)
bluetuith 跨平台 TUI 蓝牙管理器
cliphist Wayland 剪贴板管理器,支持多媒体
cuttlefish 从参考序列或读段构建紧凑 de Bruijn 图
fusesoc HDL 代码的包管理与构建抽象工具
inshellisense Microsoft 出品,IDE 风格的命令行自动补全,支持 600+ 工具
lld@22 LLVM 项目链接器
llvm@22 下一代编译器基础设施
rammap 可扩展、高性能的对齐与读段映射工具
svlang SystemVerilog 编译器和语言服务
vapoursynth-vszip VapourSynth 的 Zig 图像处理
xmedcon 医学图像转换工具集

🧩 New Casks

名称 中文说明
ds4-control macOS 菜单栏:本地启停 DeepSeek V4 Pro/Flash,带 RAM 可行性检查
font-nexon-kart-gothic Nexon Kart Gothic 字体
glean 工作场所搜索与 AI 助手桌面端
grok-bot xAI 出品,跨应用协作的 AI 团队
mongrel 数据库工作台:终端、容器、k8s、API 客户端集成
owlocr 设备端 OCR,处理截图、图像、PDF
petdex 桌面宠物,会反映 coding agent 活动
sina-finance 股票市场数据与财经新闻平台
subtitle-edit 字幕编辑器

值得留意的几个方向

这一节不求全,
只挑 4 个 值得停下来看的点。


inshellisense:Microsoft 来给 shell 装 IDE 补全了

inshellisense

inshellisense 这个名字有点拗口,但它背后是 Microsoft 维护了 4 年、10629 stars 的 withfig/autocomplete 生态。它做的事情一句话能讲完:给 shell 提供 IDE 风格的实时补全,支持 600+ 命令行工具——不仅 bash、zsh、fish,powershell、nushell、xonsh 都能挂上。

它的关键不是"又一个补全"——fish shell 的 autosuggestions 早就有了。关键在于三件事:

第一,它不需要你换 shell。 用法是 is init zsh >> ~/.zshrc,在你现有 zsh 上挂一个补全层,所有按键都透传给原 shell。这意味着一个二十年 zsh 老用户可以零成本试。

第二,它认得每条命令的 flag。 不是只补最近用过的路径,而是 600+ 工具的子命令、参数、合法值都在本地 spec 里。比如 docker run -<TAB> 出来的是 -d--rm-p--name 这种结构化提示,而不是 grep 过的历史命令。

第三,它的运行时是 terminal native,不是 GUI 套壳。 没有 tmux pop-up,没有外置窗口,补全就在命令行里——这是 inshellisense 区别于 warp、fig(曾经的)那种"重新发明终端"路线的根本。

它省掉的是 shell 用户最隐秘的"半记忆":kubectl 那一长串 flag、ffmpeg 的编码选项、aws s3 几十个子命令的合法组合。每次按 Tab 都是一次小型 IDE 提示,但你仍然住在自己那个二十年没换过的 shell 里。

cliphist 进的是 Wayland 剪贴板,b4n 是 k9s 的 Rust 复刻——这周 Formulae 的整体气质其实是"补全旧工具的隐藏角落"。inshellisense 是最显眼的一格,因为它补的是 shell 本身,而不是某个工具的某个方面。


ds4-control:把一个具体模型版本号塞进 macOS 菜单栏

screenshot-full-light-v4

DS4 Control 是一个菜单栏 app。看起来平淡——但它身上有几个细节值得拆开看。

第一,它不抽象"模型"这个概念。 菜单栏里不是"Local LLM"、"AI Chat"这种伞状入口,而是明确写着 V4 ProV4 Flash (0731) 两种选择——具体到发布日期、显存占用、上下文窗口。

第二,它替你算 RAM 可行性。 V4 Pro 要 512 GiB,V4 Flash q4 要 256 GiB,Flash q2 最低 96 GiB。你的 Mac 内存不够,菜单直接禁用 Start,弹一个 Metal wired limit 的具体 sudo 命令。不够就告诉你不够,不假装能跑。

第三,它把"启动 agent 编程"做成了菜单栏里一个 Launch 按钮。 不是泛泛的"Chat with AI",而是 Launch Pi / Launch Claude Code / BYOC(自带 CLI)三个具体入口,让菜单栏从"模型开关"变成"模型 + agent 入口面板"。

它背后依赖的是 dwarfstar4(antirez/ds4)——antirez 这次是单干,没走 Redis 那条企业路。DS4 Control 也没走 Ollama、LM Studio 那种"模型市场"路径,而是把"开/关/切换一个具体模型版本"这件事做成了 macOS 公民。

这与上几期 headroom(token 路由器)、lm-studio-bionic(本地 agent)是同一条曲线的不同切面:模型经济开始有专门工具来管"怎么用、怎么省、怎么换",而不是默认在终端里敲 curl。菜单栏成为模型运行时的容器——这件事一两年前是不存在的。


petdex:agent 终于有了一只宠物

7A142F50-5AC4-4AFB-8B47-31A9ADFFF94B

petdex 的描述只有一行:"Desktop pet that reflects coding agent activity." 没有第二句。

它的产品页面却透露了更多信息:宠物会看你的 coding agent 是不是在跑。agent 写代码时它在动,agent 停下来时它也停。宠物是 boba、doraemon、shinchan、tiko、lulu-capybara、usagi——一堆亚文化图标的合集,你养哪一只看你口味。

这和 headroom(token 仪表盘)、mcpsnoop(MCP 流量抓包)、kata(任务列表)看起来是同一种东西的不同形态:agent 时代的可观察性产品。但 petdex 选择了最不严肃的一种表达。

以前"agent 在干什么"这件事的答案,是看日志、看 dashboard、看终端里的进度条。这些是给开发者看的。petdex 假设你的同事、家人、你自己那个不太懂 agent 的部分,也想问"它在干活吗"——答案从屏幕角落的一只生物那里来。

它省掉的是"端详状态"这个动作。不必打开 CLI,不必等日志刷新,不必看一个代表"agent 正在思考"的旋转图标——只要瞥一眼桌面右下角。

这是这一期让我最犹豫要不要放进重点的一个:月安装 27,公式刚进,产品名读起来像"宠物大全"而不是技术工具。但它做对的事比它看起来更深——它把"agent 状态"从工程问题改写成了存在性问题(它在那儿吗)。这个改写可能比很多正经 agent 工具更重要。


b4n / bluetuith:TUI 终于开始覆盖基础设施最后一公里

b4n-demo

b4n 是 Kubernetes API 的 Rust TUI,直接说自己"heavily based on k9s"。bluetuith 是蓝牙适配器与设备的 TUI 管理器,目标替代 blueman。两者都不性感——K8s 和蓝牙在 2026 年都是"早就有 GUI"的东西。

但 TUI 重做它们这件事,和过去两年的 TUI 风潮是两件不同的事。

过去 TUI 重做,是为了脱离图形界面——lazygit 替代 Sourcetree,lf 替代 Finder,btop 替代 iStat Menus。本质是"图形不是必需的"。

这一周进来的 TUI,补的是 GUI 一直没做好的那部分:

  • b4n 解决的问题是 K8s dashboard 在多集群、namespace 嵌套、CRD 爆炸之后的可读性崩盘。kubectl + jq 仍然是最可靠的,k9s 用 TUI 形式重新组织了这套信息。
  • bluetuith 解决的问题是 macOS/Linux 蓝牙栈在 GUI 层多年没有认真做过——系统设置里的蓝牙面板是 2010 年水平的 UI。

这种 TUI 不是 GUI 的替代品,而是 GUI 没做好的基础设施的兜底。当 GraphQL IDE、Postman、Tableau 都开始有桌面应用,但 K8s 多集群管理、蓝牙文件传输、systemd unit 编辑这些角落仍然停留在 web 控制台或 CLI,说明 GUI 这一波还没真正到底。

systemd-lsp 上周就进了 Formulae,做的是 systemd unit 文件的 LSP。b4n/bluetuith 是这条线的延伸:基础设施的最后一公里,正在被一批不声不响的 TUI 工具慢慢补齐。


一点个人感受

inshellisense 是这周我会真的装的。10629 stars、Microsoft 维护、4 年沉淀——这种体量的项目进 Homebrew 通常意味着它已经解决了"装上能用、装上不冲突"的问题。我对 shell 补全的容忍度其实很高(fish 用了五年,现在用 zsh 也是手动 history search),但 600+ 工具的 spec 本地匹配确实是我自己攒不全的东西。

ds4-control 我大概率短期不会装——V4 Pro 要 512 GiB,我的 M4 Max 跑 Flash q2 都得手动抬 Metal wired limit。但它那个"RAM 不够直接禁用 Start"的诚实,比很多假装能跑的本地 LLM 工具更让我尊重。 一个工具明说"你这台机器跑不动",反而比那些跑五分钟崩一次的工具更值得用。

petdex 我会装,纯因为想看。lulu-capybara 蹲在右下角、Claude Code 写代码时它跟着摇头,这件事本身没生产力,但我猜它解决的是"agent 跑长任务时,人会陷入无意义刷新终端"这种心理动作。给一个动画看,比反复 ps aux | grep claude 健康。

grok-bot 是这周让我最犹豫的。xAI 出品、153 月安装、明确写"AI teammates"——产品形态比 diversion 更激进(它直接说自己是"团队",不是工具)。但 xAI 的产品路线这两年反复换,我不愿意把工作流交给一个可能下个月改产品名的产品。等它有 1000+ 月安装、且接口稳定两个季度再说。

owlocr 是表格里我特别想单挑出来说一个的工具。设备端 OCR 已经不稀奇了,但它强调"on-device"——音频不离开设备、图像不离开设备——是上一期 lm-studio-bionickoeopenwhispr 那条"本地化优先"曲线的延续。On-device 不再是隐私爱好者的偏好,而是默认假设。


结语

这一周我盯着 ds4-control 的 README 看了一会儿——"V4 Pro" 和 "V4 Flash (0731)" 这种带具体日期的版本号,出现在一个菜单栏 app 的下拉选项里。

一两年前,一个本地 LLM 工具会把"模型选择"藏在一行配置或者 ollama pull 后面。现在它直接写进 macOS 菜单栏,RAM 够不够替你算,版本号几号替你查。模型开始有产品形态,就像编译器、数据库、容器曾经有过的那样。

inshellisense 给 shell 装 IDE,petdex 给 agent 装宠物,b4n/bluetuith 给基础设施补 TUI,ds4-control 给模型版本号一个家——这周的 Homebrew 看起来没什么惊天大事,但如果你把它们放在一张图上,会看到一个共同点:抽象层在降级,工具在变具体。 不再是"AI 助手",而是"一只蹲在那儿的宠物";不再是"本地 LLM",而是"V4 Pro / V4 Flash";不再是"shell 增强",而是"600+ 工具的本地 spec"。

具体的东西才会留下来。

 
🍺 Homebrew 更新周报 # 20260813 | Agent 终于有人给它发工单了

前几周我们看着 agent 一点点拥有自己的语言、包管理、沙箱和观察工具。

这一周,它有了第一张可以挂在墙上的任务列表。

不是又一个 agent runtime。
是一个叫 kata 的东西,由 pandas 的作者 Wes McKinney 写的 issue tracker,
明文写在产品描述里:给 agent 和"看着 agent 干活的人"用。
它把 agent 工程剩下的最后一块拼图补齐,顺手把它做成了一个本地优先的 SQLite。


本周一句话总结

Agent 工程的工具链不再是"让 agent 跑得起来"——这一周进 Homebrew 的几样东西,把"agent 的工作流该长什么样"摆上了台面。


本周新增工具速览

🧪 New Formulae

名称 中文说明
delly 结构变异发现的配对末端和分裂读段分析
dnsglobe 全球 DNS 传播检查的 TUI
evnx 全面管理 .env 文件的 CLI 工具
fluxcd Kubernetes 开源的持续交付方案
honker SQLite 消息队列扩展
httpx2 Python 的 HTTP 客户端库
kata Local-first,federated issue tracker,给人和 coding agent 共享一份任务账本
lazy-tmux 备份所有 tmux 会话,需要时再恢复
lazyrsync 用 Rust 写的 rsync 终端界面
lfk 在终端里浏览和管理 Kubernetes 集群
libyang YANG 数据建模语言库
livebook-cli Elixir 开发者的代码笔记本
modal Modal 的客户端库和 CLI
nats NATS Server 和 JetStream 的管理工具
network-doctor 网络故障排查 TUI
open-code-review AI 驱动的代码审查工具,带确定性的 pipeline 和 LLM agent
opencrabs 单个 Rust 二进制的自主、自我进化 AI agent
openkermit UNIX 和 VMS 上可脚本化的网络和串口通信
oxvg SVG 工具链(优化、压缩、lint、批处理)
pear 点对点应用运行时
systemd-lsp systemd unit 文件的语言服务器
usbtree 终端里显示实时 USB 设备树
vi-sql SQL 数据库的终端界面

🧩 New Casks

名称 中文说明
android-cli Android 应用开发的命令行接口,带 AI agent 能力
canario 终端模拟器
caskhub Homebrew casks 的原生 GUI
diversion 云原生版本控制的 CLI 和 agent
diversion-app Diversion 版本控制的桌面应用
esphome-device-builder 创建、编辑、安装 ESPHome 设备配置的桌面应用
font-jetendard JetEndard 字体
font-nexon-bazzi Nexon Bazzi 字体
font-nexon-football-gothic Nexon Football Gothic 字体
font-nexon-lv1-gothic Nexon LV1 Gothic 字体
font-nexon-lv2-gothic Nexon LV2 Gothic 字体
font-nexon-maplestory Nexon Maplestory 字体
headroom 给 Claude Code 和 Codex 减 token 用量的 macOS 菜单栏应用
kirocrew 带多 agent 支持的持久 AI 开发工作台
koreader 电子墨水设备的文档阅读器
lemonade-server 带 GPU 和 NPU 加速的本地 LLM 服务
meetingrecorder 录制会议,同步采集麦克风和系统声音
muse-code 交互式终端编程 agent
sentry-cli 与 Sentry 交互的命令行工具
space-rabbit 切换 macOS Spaces 时移除动画
switchy 在多台 Mac 之间切换 Magic Keyboard、Trackpad 和 Mouse
tauritavern 兼容 SillyTavern 的原生客户端
textream 跟读式提词器,脚本可以随朗读高亮
tickernotch 在刘海旁边或菜单栏显示行情、新闻、天气和社交计数
unity-cli Unity 的命令行接口
warp-agent-cli 命令行工作流的 agentic 开发环境
work-louder-input Work Louder 设备的键盘配置工具
zcode AI 辅助的开发环境

值得留意的几个方向

这一节不求全,
只挑 4 个 值得停下来看的点。


kata:agent 的第一张任务账本

$ kata create "修复登录竞态"     # 一次性、可幂等
$ kata list                       # 列出当前打开的 issue
$ kata show abc4                  # 用稳定短引用查看
$ kata close abc4 --done --commit a8c2f1 --message "已修复"

┌─ kata tui ─────────────────────────────────────┐
│ OPEN  ◇ abc4  修复登录竞态       agent-1   1d    │
│       ◇ e21a  补 e2e 测试       human     2h    │
│       ◇ 9bf2  重构 auth 模块    idle      3d    │
│ CLOSED ☑ 712c  旧版 GET 404     human    1w    │
└────────────────────────────────────────────────┘
  j/k 选择   Enter 详情   C close   q 退出

Wes McKinney 在 2026 年写了一个 issue tracker,这件事本身就值得停下来。

pandas、Arrow、DuckDB——他在过去十年里最关心的都是"让数据处理这件事变得可以放下来、重启而不丢上下文"。kata 是同一思路的延伸,只是落点从数据移到了任务。

它的产品描述一上来就把两件事写在一起:"给 agent 跑任务的 CLI,和给人盯进度的 TUI。" agent 通过 --json--agent 和幂等的 create/close 流动任务;人通过 kata tui 看同一个 SQLite 里的同一份账本。任务有 reason、有 message、有 commit hash、有 actor 字段——谁关的、按什么理由、贴了哪个 commit,都能回放。

默认状态存在本地 SQLite,仓库里只多一个 .kata.toml,不会因为用一个 issue tracker 把仓库弄脏。需要协作时可以用 KATA_DSN 走 Postgres 或自己起的 daemon,再加点 federation。

它省掉的是 agent 工作中最隐秘的成本:任务和决策的连续性。一个 agent session 跑了 30 分钟改了三件事,如果中间崩了,你以前得回去翻日志、git reflog、Slack 截图拼它到底改了什么。kata 把这件事做成了结构化字段——"close 时必须带 commit 和 reason"不是审查,是防御性快照。

baml 给 agent 一门语言,apm 给 agent 一个包管理器,arcbox 给 agent 一间隔离房间,openlore 给 agent 一张代码地图,treehouse 给 agent 一个独立工作区。kata 给 agent 一张可追责的任务列表。 这次的作者还是 pandas 那一档的人,所以"数据放在本地 SQLite、可以跨实例联邦、但默认不污染仓库"这套约束,看起来不像灵光一现,更像押注。


opencrabs:一个二进制里的"自我进化" agent

opencrabs-split-panes

opencrabs 的描述第一段比较长,但里面有三个词值得拆开看:all-in-one、self-improving、single Rust binary

它把 TUI、CLI、daemon 三种入口塞进同一个二进制。功能列表读起来像是一个团队愿意自己用的 agent:写 landing page、做后端、管理文件、研究、调度任务和事件,还能挂上 favorite 的 channel(理解为不同 agent 之间的协作通道)。896 stars,Rust Edition 2024,基于 Ratatui。

bamlapm 是把人往外推的工程基础设施;arcbox 给 agent 一个边界;lm-studio-bionic 让本地模型直接以 agent 形态出现。opencrabs 走在另一侧——它在试图把"打开一个 terminal,一个二进制,一个 agent 全包"这件事变成产品形态。

brew info 显示它有一个 build-error 9/30,是这一期我看到的几个较新公式里 build-error 较高的一个。如果有人装它,值得用 brew info opencrabs --json 之类先看一下当前状态。

它省掉的成本有点不同:不是省"调试"或"协调",是省"决定"。一个二进制、一种心智模型、一组固定的入口——换工具意味着重新训练,不是重新配置。对于刚开始把 agent 当日常工具、但还没准备好搭一套 baml+apm+arcbox 的人来说,这种"先全在一个里,等哪天真的需要再拆"的设计,本身就是一种产品态度。


headroom:给 Claude Code 装上一层 token 路由器

headroom-dashboard

Headroom 的产品描述非常直接:把 Claude Code 或 Codex 里的 build log、JSON blob、shell 输出、HTML 样板,压缩到一半左右再喂给模型。 模型需要原文的时候可以拉回,自带"可逆压缩"。

头号指标写在了宣传里:在噪音输入上 ~50%,在真实 agentic coding session 上 15–25%。他们有自己的 benchmark——HTML 抽取 F1 0.919,JSON 寻针测试 4/4,multi-tool agent 任务 61% 更少 token 但结论一致。

它跑在一个本地 proxy 里。Claude Code 看到的是压缩后的内容,你看到的是 dashboard:总成本、节省的 token、当日节省曲线、按项目学到的压缩模式。换句话说,它把"这一次 agent 跑的 token 是怎么花的"这件事从账单变成了仪表盘

这与上几期 lm-studio-bionic(把 agent 留在本地)、flitekoeopenwhispr(把语音留在本地)是同一方向的不同切面:Token 经济开始有专用工具来管理,而不是默默花在账单里。 以前这是一个只有大公司在乎的事;现在一个 macOS 菜单栏应用在处理它,意味着这件事的门槛降到了个人开发者的桌面。

有一个不应该忽略的细节:它的官方页面把"188 happy developers,3,086 installs,44.3B tokens saved"放在了首页。不是技术指标在前面——是社区量在前面。token 优化作为一类工具,正在用 SaaS 经典的方式扩张:先攒量,再让数据反哺产品。


diversion:当 VCS 自己写"agent"进产品定位

$ diversion checkin --message "data sync worker" --trajectory
$ diversion sync --repo megamax
$ diversion activity --since 1h

diversion 把自己定位为"现代协作平台,专为巨型仓库和大规模并行 agent 工作流"。在产品页面上,你会看到一行字:"fleets of thousands of AI agents working in parallel。"

这是一个 VCS,主动把自己写进 agent 时代产品定位,而不是被时代裹着走。

它做的事情听上去像 Perforce:超大 monorepo(上千万文件、几百 TB,单文件最大 2.4 TB——明确包括 AI 模型 checkpoint 和训练数据)。但它把"agent 友好"做成了头号差异化:1,000+ commits/分钟无降速,Partial & shallow checkout 让 laptop 也能进 5000 万文件的仓库,还有一个叫 Trajectory 的插件,负责捕获每次 AI 生成代码提交时的"为什么"。

这个叙事变化比工具本身更值得记:版本控制——一个理论上最古老、最不需要重新发明的品类——也开始在产品定位里默认 agent 是第一类公民。 上周 mcp-inspector 到了 1.0,几个产品正在不声不响地把"agent-first"写进自己的安装文档。diversion 是其中走得最显眼的,因为它选择了一个本可以只服务游戏工作室的位置,也选了把 agent 写进产品第一句。

Diversion 不是给大多数人准备的(diversion-app 的 30 天安装量只有 11),但它能把这件事放进产品页这件事本身,是一个值得记的信号。


一点个人感受

kata 是这一周让我最想认真看 repo 的一个。不是因为我马上会用——30 天安装 57,公式刚进——而是因为它落在一张我已经在用一张纸记的清单上:baml、apm、arcbox、openlore、treehouse 现在都在写"agent 该怎么工作"的某一格。kata 把"任务追踪"这一格填上了,作者是那种不会随便填的人。我想把它加上 watch,过几个月再看。

opencrabs 我短期不会装。brew info 里那个 9/30 的 build-error 在新 formula 里偏高的;896 stars 不算多,我更想等它到 0.5.x,或者看到 Rust Edition 2024 那些特性稳定下来。但我想认真看它的架构图——把 TUI、CLI、daemon 塞进一个 binary,这件事本身就是一种产品态度,和 baml 的"我重写一切"是反向的。

headroom 是这周我会认真考虑付费的那一个。我现在每月给 Claude Code / Codex 花的 token,已经到了一个我不再想用"反正不贵"糊弄自己的程度。把它装上做一个月的仪表盘,比读三篇 token optimization 文章有用。

meetingrecorder 让我没法继续无视这件事了。这是连续第三周或第四周出现"本地会议录音"工具(配合 koeopenwhisprflite 那一串)。我到现在还是没用语音类工具,但这个密度本身在告诉我:大概率某个产品已经做对了某个我没意识到的场景,只是我还不知道是哪一个。

至于 diversion——它做对的事我没法直接受益,我没有百万文件 monorepo,我也不带 agent 集群干活。但它把"agent-first"明文写进 VCS 产品描述这件事,和上周 mcp-inspector 进 1.0、arcbox 把 agent 沙箱写进产品第一句,合在一起构成了一条同样的曲线:基础设施品类(版本控制、容器、调试器)开始默认用户里有 agent 这一类。 这条曲线一旦明显到不必说出来,就意味着 agent 经济已经走完了上半场。


结语

kata 的官网描述里有一句不起眼的话——"for humans and coding agents"。前几个月 Homebrew 里陆续进来的 bamlapmhumanboundopenloretreehouse 也都写过类似的措辞,但它们大多是"我顺便能服务 agent"。kata 是第一样东西,把"agent"放进了产品名字以外、更早的位置。

一个写 pandas 的人,在 2026 年重新做了一个 issue tracker——这个故事本身比任何公式描述都更值得记。可能在某个我们看不见的角落里,有一类工具就是这样开始的:不是因为缺一个功能,是因为有人看到一种新的工作方式没人正经服务过。

也许下期我们可以问另一个问题:这些工具里第一个真正有人留下来长期用的,会是哪一个?

 
DSTwo 如何配置 NeoDS 模拟器

NeoDS 目前在 DS 能用的版本一共3个:

  • NeoDS 0.20
  • NeoDS 0.21和NeoDS 0.21b
  • EZ flash 3in1 版

模拟器游戏目录问题

NeoDS 0.20版本,游戏最多64个,只能放根目录,

NeoDS 0.21和NeoDS 0.21b,游戏支持256个,可以单独指定目录

游戏转换问题

NeoDS 模拟器运行的游戏rom,需要通过NeoDSConvert转换成.neo的文件

DSTwo 接触不良问题

方法一

裁剪一块纸板或很薄的塑料片,大小和你的 microSD 卡差不多,然后把它塞进 microSD 卡槽里,形成一个楔形。(见图👇)

B3D54495-2B76-4325-B693-03EE3F6531A9 BA55A8E8-9A00-4276-ABB3-C28E6B150E93 5A90B396-38B7-4BE0-B730-2196B5B00734 CB48BE3B-C4DA-4EE0-BA3B-E18D86EF094A

塑料片放在 microSD 卡的上表面(没有触点的那一面)和 DSTwo 卡的内壁之间,这个楔形物的作用就是把 microSD 卡推入DSTwo的触点。

ACCB32F7-936B-452C-AA82-70871635316E

方法二

  1. 清洁MicroSD卡和DSTwo主机上的触点
  2. 为了让MicroSD卡更好地连接到DSTwo主机,尝试从一定角度推动MicroSD卡,顶部向外推,底部向内推,这样可以使触点更对齐。(参见图片👇)
41FC1594-4841-4046-896A-5CD89E1552A4

Ref

 
🍺 Homebrew 更新周报 # 20260803 | 黑盒开始有了仪表盘

最近几周,agent 的工程层在加速成形;这周更像是有人开始给它装上眼睛。

不是又一个会替你写代码的工具。
是那些让你看见它在做什么、记住它为什么这么做、并且把并行工作隔离开的东西。


本周一句话总结

这一周的 Homebrew 列表,把 agent 生态从“能不能运行”往“能不能观察、复现和收拾残局”推了一步。


本周新增工具速览

🧪 New Formulae

名称 中文说明
fanficfare 下载同人小说和原创故事并制作电子书
flite 小型、快速、可移植的语音合成系统
git-pkgs-brief 检测并报告项目工具链和配置的工具
git-pkgs-forge 操作 Git forge 的 Go 库和 CLI
git-pkgs-proxy 包注册表的轻量缓存代理
lief-patchelf 基于 LIEF 的现代化 patchelf 重实现
mcpsnoop 调试 MCP 流量的透明代理和 TUI
oh-my-reddit 在终端里阅读 Reddit 线程
openlore 面向 AI coding agent 的持久架构记忆和结构认知工具
podcast-dl 下载并归档播客
seqwish 将序列比对诱导为变异图的工具
solod 可转译为普通 C 的 Go 严格子集
treehouse 管理 Git worktree 池的 CLI
tuicr 支持 Vim 按键的代码审查 TUI
tytanic Typst 项目的测试运行器
worm-scraper 抓取 Worm、Ward 和 Glow-worm 网文并制作 EPUB

🧩 New Casks

名称 中文说明
airsync Android 设备的 Continuity 工具
bettercmdtab@beta 替代 macOS 内置 Cmd-Tab 的应用切换器
cmtrace-open 查看 ConfigMgr、Intune 和 Windows 诊断日志
degr 温度与时钟屏保
font-annotationmono-nerd-font Annotation Mono Nerd Font 字体
font-googlesanscode-nerd-font Google Sans Code Nerd Font 字体
font-luciole Luciole 字体
lm-studio-bionic 面向开源模型的本地 AI agent
luna-display 将 iPad 作为无线副屏
luna-secondary 将电脑或平板作为第二块显示屏
mend 应用安全扫描 CLI
orbit 在一个窗口中隔离多个 Google 账号会话
phosphene 自定义桌面视频壁纸和锁屏动态壁纸
redot 跨平台 2D/3D 游戏引擎
spacejump 为 macOS Spaces 命名和切换的菜单栏工具
tight-studio 屏幕录制和视频编辑器
unity-hub@beta Unity 项目管理工具

值得留意的几个方向

这一节不求全,
只挑 4 个 值得停下来看的点。


mcpsnoop:MCP 终于不必靠猜来调试

mmcpsnoop TUI 演示

上个月我们先后看到 smithery-clitoolhive-studiomcp-inspector:安装、管理、调试,MCP 的工具链一层层补齐。mcpsnoop 接上的,是更靠近现场的一层——真实流量到底发生了什么

它可以作为透明 shim 放在客户端和 MCP server 之间,把每一帧 JSON-RPC 复制到 hub;也可以作为 streamable HTTP 的反向代理,把 401、202、502 这些原本容易被吞掉的状态直接摆到眼前。你可以过滤、重放、导出,也可以对比两次会话之间的工具定义漂移。

这省掉的不是“敲几条命令”的成本,而是那种最磨人的判断:模型究竟有没有发起调用?是参数错了,还是 server 卡住了?工具 schema 是什么时候悄悄变的?以前这些问题通常靠日志碎片拼出来,现在有一块专门的观察面板。

MCP 从配置文件里的几行 JSON,变成了一种值得拥有网络抓包器的协议。这个变化本身,比 TUI 长什么样更重要。


openlore:给 agent 一张不会每次重画的代码地图

openlore-demo

openlore 的描述里有两个词很准确:architectural memorystructural cognition。它不是再塞一段“请记住这个项目”的 prompt,而是先对仓库做静态分析,建立包含调用关系、类型、测试、架构决策和规范漂移的知识图谱。

之后 agent 可以用 orient 先找到与任务相关的函数、调用者、测试和插入点;改动前用 certify 判断公共接口是否破坏了消费者,或某个 diff 是否新打开了通往敏感边界的路径。它的热路径不依赖 LLM,查询结果也强调确定性。

这里真正被省掉的是“重新建立方向感”。一个长时间没人碰的仓库,最昂贵的往往不是写代码,而是确认自己现在站在哪儿:这个函数谁在调用,那个约束有没有测试,某个看似局部的改动会不会沿着调用图传出去。

它把“记忆”从 agent 的性格问题,改写成了代码库的结构问题。这个方向和上周的 BAML、APM 接得上:agent 工程开始把过去靠经验维持的东西,逐项变成可检查的对象。


treehouse:worktree 不再是 Git 老手的暗号

treehouse-demo

Git worktree 很好用,但它一直有一点像 Git 的隐藏机关:知道的人用得很顺,不知道的人只会复制目录、切分支,然后在某个周五下午忘记清理。

treehouse 的做法是维护一个可复用的 worktree pool。执行时它会同步远程,找到空闲且干净的 worktree,重置到最新默认分支,然后在里面启动子 shell;退出时清理残留进程、重置工作区,再把它放回池里。还可以用 lease 持久占用,不靠分支名协调,也不需要后台 daemon。

它省掉的是一整串微小但持续的管理动作:这个 worktree 谁在用、哪个已经 dirty、并行任务结束后该删哪个、build cache 能不能留下。对于 agent 并行工作尤其自然——每次拿到的是一块干净、可回收的空间,而不是让多个任务共享同一个目录然后祈祷它们别碰到彼此。

codexia 上周把 worktree 管理写进了 GUI 工作台;这周 treehouse 以更朴素的 CLI 方式把同一个问题落地。一个在做入口,一个在做底层秩序。


lm-studio-bionic:本地模型应用开始直接承认自己是 agent

code-project work-project

LM Studio 的新 Cask 名为 lm-studio-bionic,官方定位也换了一个更直白的说法:“An Agent made for Open Models.” 它不是在桌面应用里顺便加一个 agent 模式,而是把 agent 写进产品的第一句话。

Bionic 面向开源模型,支持本地下载和运行模型,能创建、编辑文档,做自动化、编码和计算机控制;语音转写也强调本地处理,音频不离开设备。它由 LM Studio runtime 驱动,底层使用 MLX 和 llama.cpp。

这让“本地模型”不再只是一个聊天窗口的选择。真正有分量的是:当 agent 可以改文件、控制电脑、连续完成工作时,本地运行开始从隐私偏好变成架构选择——数据在哪里、模型在哪里、失败时谁能看到过程,都要重新回答。

arcbox 上期把 agent 沙箱当成产品卖点;lm-studio-bionic 则把开源模型和 agent 工作方式绑在一起。一个在说“给它一间隔离的房间”,另一个在说“这间房里的模型可以留在本地”。


一点个人感受

这周我反而不太想立刻安装所有 agent 工具。openlore 的 49 次月安装量和一次 build error 说明它还在很早的位置;但这类项目一旦把“证明自己知道什么”做稳,价值不会只停留在 coding agent 上。

flite 没有 agent 标签,却和最近连续出现的本地语音工具形成了另一条安静的线:语音合成和语音输入都在被拆成可组合的基础部件。比起一个包办一切的助手,我更信任这种可以单独替换的零件。

tuicr 也很有意思。代码审查开始拥有自己的 Vim TUI,说明审查不一定要被吸进 IDE 或网页;在终端里看 diff、移动、留下判断,仍然是一种完整的工作姿势。

至于 lm-studio-bionic,我会等它的 preview 再成熟一点。agent 能在本地跑是一回事,值得长期把工作交给它是另一回事,中间隔着的不是模型下载速度,而是可控性。


结语

mcpsnoop 的屏幕里,最值得看的不一定是某一帧 JSON-RPC,而是那些以前只能从沉默里猜出来的失败:401、超时、漂移、没有发生的调用。

这周的 Homebrew 像是在给 agent 补几种基本感官:看见流量,记住结构,拥有自己的房间。

等这些东西都不再需要特别解释时,agent 工程大概才算真正进入日常。

 
AI 发展限速

花费很大力气,去看了《资源,社会公平与算力》这一章节的内容

对比 AI 迅速的发展,确实很恐怖

但似乎没有放缓发展的迹象。

Ref

ai
 
Obsidian 索引报错

vault 似乎被塞满了……

跑了 /github-ingest 之后,生成了一个 4.8M 的 markdown 文件,

再切回 Obsidian,触发了 indexed,然后它就奔溃了!


心里充满疑问,因为当前目录下还有一个 5.1M 的 markdown 文件,

以及一个 15M 的txt文件。

它们似乎并未造成 Obsidian 奔溃。

2B36C765-F836-4896-A923-E04AC5B8071D

用 claude 分析了原因如下:

9DFACCAB-E5AC-4B5F-8C76-E40CF0CD34F0

其实,我也猜到是 markdown 文件造成,但是具体是哪部分原因不清楚。


然后让 claude 解决,它给出的方案如下:

F38BA044-BFC6-45D6-81AF-AC15CF1FA21E

于是,马上验证1 & 2 方案,完全没用。


不甘心,让 claude 联网搜索了一圈(真费token),

73510905-95A6-4394-A2A7-6CA78709AA97

Obsidian 没有排除文件不被indexed的功能,这个问题早就有人讨论:

但是官方一直未重视。


目前只能手动修改文件类型,规避被 Obsidian 扫描 indexed。

最后,说一句,Obsidian 是免费软件,但闭源。

 
🍺 Homebrew 更新周报 # 20260727 | Agent 开始长出自己的工程层

前几周我们看到的是 MCP 的工具链在一块一块补齐。这一周的列表告诉我的是另一件事:agent 开发本身,开始有了自己的语言、包管理器和安全框架。

新的语言往往比新的 CLI 工具更难在 Homebrew 里露面。
这一周 baml 进了,旁边还有 apmhumanbound
当一个领域开始有专属语言和包管理器的时候,通常是某件事从"实验阶段"走向"工程阶段"的信号。


本周一句话总结

Agent 开发不再只是"把 LLM API 包一层"——这一周进 Homebrew 的三个工具,各自对应了一种软件工程的基础设施:语言、依赖管理、安全测试。


本周新增工具速览

🧪 New Formulae

名称 中文说明
apm AI agent 配置的依赖管理器,像 npm 但管理的是 agent 的 skills/prompts/MCP 服务器
baml 专为 agent 设计的编程语言,强类型、原生 LLM 函数,可生成 Python/TypeScript SDK
deepline Deepline 数据富化和持久化任务的 CLI
fastani 快速全基因组相似度(ANI)估算工具
gita 多 Git 仓库管理工具,一次查看所有仓库状态
godns 支持多 DNS 服务商的动态 DNS 客户端
humanbound 针对 AI agent 的对抗性安全测试引擎和 CLI
kiesel 用 Zig 编写的 JavaScript 引擎
nullhub Null 生态系统的管理控制台
rumbledb 基于 Apache Spark 的 JSONiq 和 XQuery 查询引擎
wgsl-analyzer WGSL 和 WESL 着色器语言的 LSP 实现

🧩 New Casks

名称 中文说明
billy 发票管理应用
block-buzz 为人类和 AI agent 设计的协作工作台
changes Git GUI 客户端
clarc Claude Code 的原生 macOS 桌面客户端(SwiftUI,仅需 6MB)
codexia Codex CLI 和 Claude Code 的 GUI 工作台,含任务调度和 MCP 市场
dnclient-server 基于 Nebula 的点对点 VPN 守护进程
gamehub 在 macOS 运行 Windows 和 Steam 游戏的兼容层
hermes-desktop Nous Research 出品的开源桌面 AI agent
koe 零界面语音输入工具,录音即文字
moonfin Jellyfin 和 Emby 的媒体流客户端
neodisk 只读磁盘空间可视化工具
onit-sidekick AI 对话侧边栏面板
openwhispr 隐私优先的语音转文字工具,含 AI agent 集成
pastebot@2 剪贴板工作流管理,提升粘贴效率
sogouinput 搜狗输入法,支持全拼和双拼

值得留意的几个方向


baml:第一次有工具在说"TypeScript 不是给 agent 设计的"

D00E8ED4-90C2-46EE-BB6A-82C748294217

BAML 是 BoundaryML 做的一门语言,描述是"给 agent 和人类共同编写的图灵完备编程语言"。这句话需要停一下。

传统语言是为了让人写出可运行的代码而设计的——可以有 any,可以有 unchecked cast,可以有"先跑起来再说"的逃生舱口。人写代码出了问题,人可以调试、可以权衡。Agent 写的代码不一样:它会找到每一个逃生舱口,而且不会回来告诉你它用了。

BAML 的设计出发点是:让无效状态更难被表示出来。运行时类型不能有 any,错误是有类型的并且必须被穷举处理,LLM 函数、测试、测试集是内置到语言里的,而不是外挂的框架。还有一个 baml describe 命令,专门给 agent 用来结构化地理解代码库。

它还能生成 Python 和 TypeScript 的 SDK,这意味着你不必完全迁移——先在 agent 写的部分用 baml,人写的部分继续用你熟悉的语言。

目前版本 0.2.2,installAnalytics 只有 29 次,刚进 Homebrew。还很早。但"给 agent 写的语言"这件事本身,第一次以一个具体的工具的形式出现在 Homebrew 里了。


apm:npm 解决过的那个问题,现在在 agent 配置层重新出现了

APM 来自微软,它的定位是"AI agent 的依赖管理器,就像 npm 管代码依赖那样,它管 agent 的 context"。

你在一个项目里工作,用的是 Claude Code、Copilot、Cursor,每个工具有各自的配置文件,各自的 prompt、skills、MCP server 列表。当你换了机器,或者新同事加入,这些 agent 配置不会随代码一起复现——它们散在不同地方,版本不一定对齐,谁都不知道"你的 claude code 和我的 claude code 是不是同一个 claude code"。

APM 用一个 apm.yml 把这些统一声明,一个 lockfile 锁定精确版本和内容哈希,apm install 之后,新机器或新成员拿到的 agent 配置和你的字节一致。还有安全扫描:每次安装自动检查隐藏 Unicode 字符,拦截未声明的 MCP 服务器。

这个问题——"怎么让 agent 的行为在不同环境里可复现"——到 2026 年中才第一次有一个专门的工具来解决,比代码依赖管理晚了将近三十年。


humanbound:当 agent 可以用工具、可以访问数据,"越界"这件事需要被认真对待了

Humanbound 是针对 AI agent 的对抗性安全测试框架。OWASP 对齐,覆盖 prompt injection、jailbreak、工具滥用、数据泄露。它还有一个叫"进化式红队"的模式:攻击会根据上一次结果自动迭代,用 score-guided 的方式找到更有效的攻击路径。

这类工具以前叫"AI 安全研究",是学术论文和红队演练里的内容。现在它进了 Homebrew 的 Formula,版本号已经是 2.7.0,可以 brew install humanbound 然后指向你的 agent endpoint 跑测试。

它的出现暗示了一件事:agent 的攻击面已经大到需要一个专门的测试框架来覆盖。一个只会回答问题的 chatbot 不需要 humanbound,一个可以调用工具、读写文件、访问外部服务的 agent 才需要。


clarc 和 codexia:Claude Code 和 Codex 同一周有了两个 GUI

这两个工具进同一期不是巧合,放在一起说更有意思。

Clarc 是 SwiftUI 做的 macOS 原生应用,只有 6MB,包着真实的 claude CLI,加了 permission UI(有 diff 的审批弹窗)、对话分叉、文件树、内嵌终端。要求 macOS 15。它的 tagline 是"终端是少数人的,Clarc 是所有人的"——做的是把 Claude Code 的门槛降低这件事。

Clarc

Codexia 是 Tauri/Rust + React 做的,同时覆盖 Codex CLI 和 Claude Code,功能更宽:任务调度、headless 模式、MCP market、agent skills market、Git worktree 管理。像一个 workstation,不只是 GUI 壳子。

Codexia

两者指向的是同一个现象:Claude Code 和 Codex CLI 已经足够被认真对待,值得有人专门去做它们的 GUI 层。这件事在六个月前不会发生,因为这两个工具自己也没到那个阶段。


一点个人感受

baml 我短期不会用——0.2.2,还早,而且我现在写 agent 的比例没高到值得迁移一门语言。但我把它的仓库加到了关注列表。这类工具到 0.x 通常进展很快,等它到 1.0 的时候会是一个值得重新看的时间点。

apm 反而是我觉得更接近可以用的那个。我已经有用多个 AI coding 工具的习惯,配置散在各处这件事确实烦——不是大问题,但每次换机器都要重新捋一遍。如果 apm.yml 能真正成为这些工具的单一配置源,我愿意试。

humanbound 让我想到的是:现在写 agent 的人,有几个人在认真想过自己的 agent 能被怎么攻击?这个问题以前只有部署到生产环境、处理真实用户数据的团队才会问。现在工具进 Homebrew 了,意味着这个问题在往更早的开发阶段移。

这周的 Casks 里有好几个语音类工具(koe、openwhispr、willow-voice 上期、hermes-desktop 也有语音功能)。这是连续第三周出现这类工具了。我现在基本不用语音输入,但这个密度让我开始想:是不是在某个使用场景里,这件事已经在悄悄变好用了?


结语

baml 是第一门专门为 agent 设计的语言,apm 是第一个管 agent 配置的包管理器。软件工程为人类建立这一套基础设施花了几十年。为 agent 建的这套,在 2026 年 7 月同一周进了 Homebrew。

时间线在压缩,但问题本身没变:你写的东西能不能在别人的机器上复现,能不能被测试,会不会在意想不到的地方越界。这些问题以前属于软件工程,现在也属于 agent 工程。


下期关注:hermes-desktop(Nous Research 出品)能做什么,kiesel(Zig 写的 JS 引擎)为什么在 2026 年还有人做新的 JS 引擎。

 
🍺 Homebrew 更新周报 # 20260720 | 有些工具在打标签,有些在分叉

这周有几件事放在一起看,会比单独看更有意思。

mcp-inspector 1.0.0 进了 formula,这是 MCP 官方的调试工具。
Logseq 在去年圣诞夜另起了一个叫 og 的仓库,本周 1.0 进了 Cask。
arcbox 在官网的产品描述里,把"给 AI agent 跑的隔离沙箱"当做头号卖点。
三件事,三种方式,都在回答同一个问题:这个生态正在往哪里分。


本周一句话总结

工具在打标签——哪些是给 agent 的,哪些是留在本地文件的,哪些是"调试用的"。


本周新增工具速览

🧪 New Formulae

名称 中文说明
qobine-tui Qobuz 流媒体的终端播放器
qobine-web Qobuz 流媒体的 Web 界面播放器
utiluti macOS 命令行工具,管理默认应用关联
ovh-ttyrec OVH 改进版 ttyrec,终端会话录制工具

🧩 New Casks

名称 中文说明
perplexity Perplexity AI 桌面客户端,含 Personal Computer agent
step-agent Smallstep 的证书管理 agent
arcbox 容器、Linux VM 和 AI agent 沙箱的运行时(Apple Silicon 专属)
vorssaint 本地优先的 AI 写作助手
logseq-og Logseq OG — Logseq 的本地文件版本,独立维护
siliconscope Apple Silicon 系统监控,含 ANE、Media Engine 和带宽追踪
juicy 菜单栏电池监控,支持自定义充电告警和健康追踪
willow-voice AI 语音听写和写作助手
markdown-preview Markdown 文件预览工具

值得留意的几个方向


mcp-inspector 1.0.0:MCP 生态的"调试工具"到位了

MCP Inspector 界面

上周写 smithery-cli 和 toolhive-studio 同时进 Homebrew,说的是"MCP server 的安装体验被认真对待了"。这周 mcp-inspector 到 1.0,是这条线的下一段。

mcp-inspector 是 MCP 协议官方出的调试工具——一个 React Web UI + Node.js 代理的组合,你本地起一个 MCP server,用它来连、测、看请求响应、检查 tool 列表、验证 prompt 模板。10k+ stars,是 MCP 生态里目前最被引用的开发工具之一。

到 1.0 这件事值得记的不是功能变化(版本 notes 就四个字"OG rocks!"),而是时间点。三周内,homebrew 里先进了安装器(smithery-cli)、管理器(toolhive-studio)、agent 专用终端(otty),现在是官方调试工具的 1.0。MCP 的开发者工具链,正在按顺序补齐。

写第一个 MCP server 的人,以前得自己 console.log 调试。现在有了一个带界面的工具。


logseq-og:Logseq 在自己家里另起了一条线

Logseq 的主线在走向数据库模式——把笔记从 Markdown 文件迁移到结构化数据库,支持更复杂的查询和同步。这件事不是秘密,但也不是所有人都愿意跟。

2025 年 12 月 25 日,logseq/og 这个仓库出现了。仓库名叫 og,描述是"Logseq og (file version)"——"og"通常是"original"的缩写。简单说:这是 Logseq 官方维护的、坚持基于本地 Markdown 文件的那条线,和主线数据库版本分开走。

本周,logseq-og 1.0.0 进了 Homebrew Cask。

这件事让我想的不是该装哪个版本。我想的是:一个产品同时维护"现代化路线"和"给不想跟的人留的入口",这是一种什么状态? Vim 和 Neovim、Python 2 和 Python 3、现在是 logseq 和 logseq-og。每次这种分叉出现,都意味着原来那条路积累了足够多不愿意走新路的人。

1.0 进 Homebrew,说明这条线有人认真对待,不是放着慢慢死的。


arcbox:把 AI agent 沙箱写进产品定位

arcbox 是 Docker Desktop 的 Apple Silicon 替代品——容器、Firecracker 微虚拟机、完全开源,macOS 15+ 专属。光是这几点,放两年前就可以写一节了。

但它的产品页头号卖点不是"比 Docker Desktop 快",是:"AI agents are powerful — and unpredictable. ArcBox Desktop runs your local agents in fully isolated Firecracker microVMs."

这是第一次我在一个容器工具的官方文档里,看到"AI agent 是危险的,所以我们给它造了一个笼子"被写成产品核心功能。不是"支持运行 AI 应用",是"我们假设你跑的 agent 会做不可预测的事,所以每个 agent session 有独立 microVM,你能看到它的每一个 syscall、网络请求和文件写入"。

这个叙事变化比工具本身有意思。agent 沙箱从"偏执用户的自选配置"变成了"负责任的工具该有的默认设计",这个转变正在发生。


utiluti:改默认应用,终于有了 CLI

# 查询当前默认浏览器
utiluti get browser

# 设置默认 PDF 阅读器
utiluti set com.apple.Preview pdf

# 列出某种文件类型的所有可用应用
utiluti list html

这个问题比看起来麻烦:macOS 的"默认应用"管理散在 LaunchServices 框架里,没有官方 CLI,要改就要去 System Settings 点,或者写十几行 Swift 调用私有 API。

utiluti 是 scriptingosx(macOS 脚本圈的老人,写过《Shell Scripting with Zsh》)写的。它把这件事包了一层,给出了可以在终端里用的命令。用途不花哨,就是**"我想在脚本里切换默认浏览器"这个具体需求,现在有工具了**。


一点个人感受

perplexity 的 cask 描述写的是"AI-powered answer engine with Personal Computer agent"——Perplexity 把 PC agent 功能放进桌面客户端,这件事今年发生,但进 Homebrew 比我想象的要快。它的 formula 名字叫 perplexity,没有加 ai 后缀,这种命名置信度很高,代表他们认为产品本身就是品牌。

willow-voice 是这周第四个或第五个进 Homebrew 的本地语音工具(上两期有 muesli、macparakeet、subtitle-studio)。每周都有,但它们不一样:muesli 做的是"会议记录",subtitle-studio 做的是"视频字幕",willow-voice 做的是"写作时的语音输入"。本地语音这个品类在分化,不是在重复——每个工具找到了不同的"这段声音不该上传"的具体场景。

siliconscope 监控 ANE(Apple Neural Engine)使用率,这个指标我以前看不到。以前 Activity Monitor 里没有 ANE。现在有了工具,才发现自己不知道那块芯片在什么时候、被谁用。

btcli(Bittensor CLI)这周被标记 deprecated——理由是"repo archived"。Bittensor 11.0.0 这周也进了,但 CLI 工具就这么退场了。


结语

mcp-inspector 到 1.0 的同一周,logseq 在自己家里给"不想跟"的人留了一扇门,arcbox 在卖 AI agent 的笼子。这三件事不是同一件事,但它们都在说:某些方向已经走远了,走得够远才需要有人站出来说"我不走那条路"或者"走那条路要装防护"。

不是浪潮,是分叉出现了。

 
🍺 Homebrew 更新周报 # 20260713 | MCP 的周边长出来了

这一周的新增列表没有特别眩目的东西,但有一条线很清晰:MCP 生态开始在 Homebrew 里占位了。

不是 MCP 协议本身,是围着它的那一圈 — 安装器、管理器、专用终端。
工具基础设施长出来,通常意味着这件事要进下一个阶段了。


本周一句话总结

MCP 不再只是"大厂的实验",这周 Homebrew 里同时进了两个围绕它生长的工具,安装器和管理器各一个。


本周新增工具速览

🧪 New Formulae

名称 中文说明
esbmc 基于 SMT 的有界模型检验器,支持 C/C++/Python
faker Python 版假数据生成器(姓名、地址、邮件等)
filtlong 长读 DNA 测序数据的质量过滤工具
goimapnotify 监听 IMAP IDLE 事件并触发脚本
librefang 面向自主 AI agent 的自托管操作系统
libyojimbo 面向多人游戏的安全 UDP 客户端/服务端网络库
mktxp Mikrotik RouterOS 设备的 Prometheus 导出器
msdf-atlas-gen 从字体生成多通道有符号距离场图集
netcode 基于 UDP 的多人游戏安全通信协议库
opencv@4 经典计算机视觉库的 v4 版本
perlnavigator Perl 语言服务器
rawtoaces 将相机 RAW 文件转换为 ACES 色彩空间
reliable 面向 UDP 的轻量包确认系统
salmon RNA-seq 的转录本级别定量工具
serialize 面向游戏网络的 C++ 单头文件位打包序列化
smithery-cli 从 Smithery 平台安装和列出 MCP 服务器
soar 快速现代的静态二进制包管理器
trim-galore FastQ 测序文件的质量和接头修剪工具
webfont 从 SVG 图标生成字体文件,含 TTF/WOFF/WOFF2

🧩 New Casks

名称 中文说明
chatgpt-classic OpenAI 旧版 ChatGPT 桌面客户端
itermcompanion 配对 iTerm2 与 iPhone 上的 iTerm2 Companion
otty 专为 code agent 设计的终端模拟器
proxybridge 支持按应用分流的代理客户端
raycast-glaze 通过与 AI 对话来创建桌面应用
toolhive-studio 安装、管理和运行 MCP 服务器的桌面应用
vicinae 应用启动器与命令面板

值得留意的几个方向

这一节只挑 4 个值得停下来多看两眼的点。
它们的共同主题是:MCP 的基础设施正在补齐,AI agent 的终端正在成形。


smithery-cli + toolhive-studio:同一周进,不是巧合

这两个工具同时出现在这周的新增里 — 一个 CLI,一个 GUI,目标都是一件事:替你管 MCP 服务器

smithery-cli 的定位是"从 Smithery 市场直接装 MCP server",命令行操作,背后是 Smithery 这个 MCP 工具集中列表平台。toolhive-studio 是 Stacklok 出的桌面版,用容器跑每一个 MCP server,自动帮你配好 Claude Code / Cursor / GitHub Copilot 的客户端集成,还做了 secret 隔离和最小权限设置。

以前装一个 MCP server 需要自己找 GitHub、改配置文件、手动重启客户端 — 整个过程散在好几个地方。这两个工具各自选了一个入口把这件事包起来。

真正值得记的不是某一个工具,而是这件事同时出现了两种形态:marketplace CLI 和 GUI 管理器。说明 MCP server 的"安装体验"已经成了一个被人认真对待的问题,不是配置项,是产品。


otty:终端在往"agent 工作台"这个方向拐

Otty 界面

传统终端是"你打命令、它输出",这件事在 agent 出现之前一直是对的。但 agent 不"打命令" — 它是在跑,你在看,偶尔介入。这是完全不同的使用姿势。

otty 把这个区别当成了设计出发点。它不只是渲染文字更漂亮 — 它加了"并排监控多个 agent session"、"prompt 队列"、"把终端输出直接发送给 agent"这类功能。屏幕不再是一行一行的命令,而是几个 agent 同时在工作、你在旁边做决策的工作面板。

它是免费的,macOS 原生,不需要账号。现在装它的人大多数是"看一下是什么感觉",但它指向的那个方向 — 终端从"输入设备"变成"agent 监控台" — 这条线不会消失。


librefang:AI agent 的"操作系统"这个说法第一次进 Homebrew

AF237660-98CC-4A77-BC80-05F171218FFC

librefang 的描述是"自托管的、面向自主 AI agent 的操作系统"。这件事怎么理解因人而异,但单纯从"这个词组进了 homebrew/core 的正式描述"这件事来说,值得记一笔。

前几年 AI agent 的配套基础设施都在 Python 包生态里转,进 Homebrew formula 的路径是:项目足够稳定、有明确的二进制分发、团队认真对待"可以被干净卸载"这件事。librefang 今天版本号是 2026.7.11,走的是日期版本,说明它在快速迭代但也在认真维护。

不一定要现在就装,但**"自主 AI agent 的运行时"开始被当成一个可以 brew install 的东西**,这件事本身是一个信号。


vicinae:Raycast 这片水里,又进来一条鱼

6D1E3ADD-2016-4AD3-BBDF-2F41E5F39AB1

vicinae 是一个 macOS 应用启动器 + 命令面板。Spotlight 做过,Alfred 做过,Raycast 现在把持着,vicinae 进来了。

这条赛道看起来饱和了,但它每一两年都会有新入场者,理由也总是类似的:"更快"、"更 native"、"更懂现在的工作流"。vicinae 要求 Apple Silicon + macOS 14,这个姿态更像是"我不做兼容性,我只做最新设备上最好的体验"。

装不装是另一件事。但 Raycast 已经"产品化"得越来越重,总有人在找替代品 — vicinae 在的位置是**"如果有一天你受够了 Raycast 的商业化,它可能是下一个值得看的"**。


一点个人感受

这周让我记下来的是 ottytoolhive-studio 这两个方向一起出现这件事。前者在回答"agent 出现之后终端应该是什么形状",后者在回答"MCP server 该怎么装和管"。两个都是基础设施层面的补课,不是功能堆砌。

chatgpt-classic 单独进了 Cask,名字带"classic",这种命名通常意味着**"我们已经承认旧版本是一个独立产品"**了。不知道是因为太多人回退,还是 OpenAI 自己留一条后路,总之值得注意一下。

soar 是这周新增里我最可能装的一个 — 静态二进制的包管理器,不需要 root,不依赖 libc,在受限环境里很有用。但它目前还有 3 个 build error,等一等。

游戏网络那一组(libyojimbo / netcode / reliable / serialize)同时进来,像是某个游戏基础库的配套分拆。不是主流工具,但说明 Homebrew 的覆盖面还在往专业垂直方向延伸。


结语

这一周的工具没有一个会让你"哇原来还能这样"。但 smithery-cli 和 toolhive-studio 同时进来,otty 出现在 Cask 里,librefang 用"自主 AI agent 操作系统"这个描述进了正式仓库 — 这些事放一起,你能看到 AI agent 的日常工具链在向 brew 这一侧靠拢

不是浪潮,是沉降。工具开始落地了。

你不必每个都装,但能看到它们在哪儿补课,比跟着装要值钱。

 
🍺 Homebrew 更新周报 # 20260707 | Agent 边上的那一圈

这一周的新增列表里,有一类东西明显在堆 — 围着"AI agent"和"本地 AI"长出来的小工具。

不是新模型,也不是新框架,就是补那一个动作:让 agent 跑得更顺、让语音留在本机、让供应链有眼睛。


本周一句话总结

新增列表很热闹,但真正的主题只有一个:AI 工具链开始补"周边"了 — review 工具、保活工具、本地语音、本地安全扫描,从四面围过来。


本周新增工具速览

🧪 New Formulae

名称 中文说明
adrs Rust 写的架构决策记录(ADR)工具
ai-cli 在终端里生成图片、视频、音频、文本
asar 给 SNES ROM 打补丁或重建 ROM 的汇编器
bbrew Homebrew / Flatpak / Mac App Store 的 TUI 管理器
bomctl 格式无关的 SBOM 工具,介于生成和分析之间
cve-bin-tool 扫描二进制和 SBOM 中的已知漏洞并出报告
diskwatch 跨平台磁盘诊断 TUI
epics-base 实验物理与工业控制系统基础库
esbonio 处理 Sphinx 项目的语言服务器
hunk 终端里 review 代码 diff 的工具,AI agent 友好
kotofetch 终端里显示日语格言的小工具
kubectl-klock kubectl 插件,把 watch 输出渲染得更易读
msdfgen 多通道有符号距离场生成器
prrte PMIx 参考运行时环境
rancher-machine 容器世界的机器管理
sbom-utility 校验、查询、编辑 SBOM 的工具
sdl3_sound SDL3 的抽象音频解码器
vsview 新一代 VapourSynth 预览器
zero "你拥有的"终端编程 agent

🧩 New Casks

名称 中文说明
adrafinil 仅在 AI agent 工作时让 Mac 保持唤醒
aside 内置 AI 助手的网页浏览器
font-caacupe-one / font-scoutie-sans 字体
gitcomet Git 图形客户端
gnome 菜单栏 GIF 搜索与制作工具
harper-desktop 面向开发者的语法检查器
itsypad 轻量便笺 + 剪贴板管理
keeperdb 多数据库管理工具
lumide 面向 agent 的代码编辑器
mac-sai 系统清理、优化与恶意软件扫描
muesli 本地优先的听写与会议转写
onexrayse 跨平台 Xray-core 客户端
pique Quick Look 扩展,预览带语法高亮的文件
pocket-bard TTRPG 环境音与音效
slashy Gmail 邮件客户端
snapzy 菜单栏原生截图、录制、标注、编辑
sonarqube-cli 面向终端与 AI agent 的代码质量/安全
subtitle-studio 离线 AI 字幕生成
uniclipboard 跨设备剪贴板同步
valkey-admin Valkey 集群与单机管理工具
zush AI 驱动的文件重命名与整理

值得留意的几个方向

这一节只挑 4 个我觉得能停下来多看两眼的方向。
它们彼此不是一类,但都在回答同一道题:"agent 已经在这里了,我还要不要把别的东西也搬过来?"


hunk:替 agent 写的 diff 找一个看得下去的姿势

bbrew 演示

不是 hunk 自己,是它想接的那个东西 — agent 写代码越来越快,但 review 那一步还是原来那一套git diff 滚一屏、左右对照、再开 IDE 看一遍,这一套流程在 agent 一晚上能交 50 个 patch 的时候直接崩。

hunk 的回答是:把 diff 当成"待审阅的稿子"来看。它在终端里给了一份侧边栏 — 文件列表、变更数、还能挂上 agent 的"注解"(为什么改、改了哪条思路),屏幕中间是带语法高亮和主题的 diff 视图,布局可切 split / stack / auto,支持 watch 模式跟着文件变,甚至能直接 cat patch.diff | hunk 喂进去。

它在替人省的不是"看 diff"这件事,而是 "理解 agent 改了什么" 那一段心智成本 — 把 review 从"翻 diff"变成"读批注"。


bbrew:Homebrew 自己长出来了一个 TUI

bbrew 搜索界面

bbrew(Bold Brew)这件事有意思的点在于 — Homebrew 这个项目一直坚持"CLI 是最对的",但市场显然没听进去,所以社区里已经长出好几个 TUI 包装了。bbrew 是相对完整的那一档:Homebrew、Flatpak、Mac App Store 在一个界面里管,支持模糊搜索、过滤已装/过期/孤包、还能按下载量排序,顺手把 brew vulns 的扫描也接了进来(v 键),最绝的是可以一键导出选中的包到 Brewfile。

它甚至被 Bluefin/Universal Blue 收为默认 TUI(在 Linux 那一侧)。换句话说,这是个已经被某条发行线正式收编的工具,不是一个人在玩。

为什么在意它:因为它把 Homebrew 从"我每次都得想命令"变成"我滑一下就行"。这种"我替你管理命令"的中间件,后面只会越来越多。


adrafinil:在 agent 跑的时候才把 Mac 叫醒

这个名字借的是那个真实存在的"促醒药" adrafinil — 吃下去是惰性的,被代谢了才生效。工具本身借的是这个意思:Mac 默认是睡的,只有当某个 agent session 真的握着"我在跑"的句柄时,才阻止它入睡;session 结束,句柄释放,Mac 恢复正常睡眠。

caffeinate / Amphetamine 的老问题不是"保活",而是**"我忘了关"** — 笔记本在外头撑一宿、屏幕在包里烫手、合盖的逻辑被绕过。adrafinil 把"要不要保活"从用户手里拿走,交给 agent 自己声明。Claude Code、Codex、Hermes 都有 hook,合盖时还会响一声确认"我在替你 hold 住"。

它解决的不是性能问题,是生活形态问题 — 那些"agent 在后台跑、我出门 / 睡觉 / 走了"的真实场景。


muesli / subtitle-studio / harper-desktop:本地 AI 这一档的"小而不必送云"

snapzy-banner

这三个放一起说。muesli 是本地语音转写 + 会议记录,模型可以选 Parakeet / Whisper / Cohere / Qwen,装好之后完全离线,按 Right Cmd 就开始听写,把文本直接塞进当前应用。subtitle-studio 是离线 AI 字幕生成,arm64 原生。harper-desktop 是个本地语法检查器,目标用户是写代码注释和 PR 描述的人。

它们都共享一个姿态:"我的语音 / 文字 / 语法,不租给任何云"。这是 2025 年之后才慢慢显形的一类需求 — 之前大家默认"语音转写 = 走云 API = 上传音频",现在 Apple Silicon 给得起,模型小得下,于是每个细分动作都可以"本地化"。

它替人省的不是时间,是决定"这一段要不要上传" 时的那一点犹豫。


一点个人感受

cve-bin-tool / bomctl / sbom-utility 这一组工具同时进,值得记一笔 — SBOM 不再是合规文件,它开始长成"日常工具"了。前两年大家还在讨论"我们公司要不要生成 SBOM",现在 brew 仓库里就同时有三个相关的 formula,说明这事下沉到开发者桌面了。

zero 这个我装的可能性不大 — "你拥有的 terminal coding agent"这个定位,跟 Claude Code / Codex / Gemini CLI 已经重叠太多了。但它的名字起得有意思,关键词是 "you own",赌的是 "本地模型 + 自托管 agent" 这条线。

kotofetch 这种工具我大概率永远不会装,但每次看到都觉得这才是社区该有的样子 — 一个为"我喜欢在终端里看到一句日语"而存在的小工具,brew 里就是该有它。


结语

工具在变,但这次变的方向不是"哪个更快",而是"哪一块开始有人接得住"。agent 是新的中心,周边一圈正在被填上 — review、保活、本地化、安全。你不必每个都装,但看着它们按这个速度补齐,本身就是一件让人安心的事。

工具在变,节奏不必跟着变 — 挑能省掉你那一类犹豫的就好。

 
仍然还有蠢猪认为:长鑫存储落后

标题的后半句是:

存储涨价,限制了你的脑容量


【来自 - 科技爱好者周刊(第 402 期)】

87D4AC73-339F-446B-A7CC-336E1C35E434

【来自 - ChatGPT的回答】

D9F0F238-6E0C-40EE-AC72-FBCE5ADD0DCB

【来自 - X上面Financial Times的评论】

FF9B9F83-9B88-4A2D-9866-0F221A24A221 14EEFC81-34C8-40E3-A794-FC9B5255790F B08E53F5-7392-42E5-BB6C-0DC2E932D1B7 0B5D4439-5BA8-4FE6-94CD-00736E7809A3
 
Clash Verge Rev 代理界面空白

早上去公司,电脑开机后,发现网络不能联通,
估计是CVR代理Timeout,需要重新手动连接一次才能用。

手动更新订阅后,想切换一下代理,改成“自动选择”。
结果发现切换不了。

然后就“强制退出”CVR,后续出现更诡异的事情。🤦

9E9BA27A-2176-4081-9285-9C04F5D951E9

再次启动时,代理界面空白😑

DED800FD-AA3B-4C64-AE99-26DA62D30B72

不论刷新多少次订阅,代理界面依旧空白,
然后,发现本地的配置也无法更新😭

01562D8B-DE7D-4DFD-8173-5A66D8FE524D

做为一个有尊严的程序员🧑‍💻,这点问题能难倒我?!

反复重启,并开始检查配置🧐,步骤如下:

  1. 点击“订阅更新”,记录时间;
  2. 检查配置目录,“订阅更新”时都有哪些文件修改;
  3. 检查clash-verge.yaml配置文件;
2D689A57-25CE-4BD4-B274-37D616A62C88

“订阅更新”时,上面几个文件有修改

F691C2E1-2BAD-4508-9F46-D01B1BAEC4B2

对比clash-verge.yaml,发现配置yaml缩进不对

初步断定:clash-verge.yaml文件格式有问题,导致代理界面空白。


为了验证想法,直接修改clash-verge.yaml文件格式
但似乎没有效果,clash-verge.yaml文件会被CVR重写😓

然后去网上搜了一下这个问题,发现蛮多人遇到:

简而言之,【Clash Verge Rev 代理界面空白】的问题,一直存在,从未被解决。


打算换个思路,刚好有一条评论引起了我的注意:

126B44C4-60E5-47EC-9137-33A52B41B3B7

于是,进行以下几步操作 【恢复】

  1. 备份 io.github.clash-verge-rev.clash-verge-rev;
  2. brew reinstall clash-verge-rev 重新安装 clash-verge-rev;FD3E2BDB-FC9D-43A8-BE78-85AE7697D30C
  3. 进入 【备份设置】,点击 【查看记录】->【恢复备份】15F9C85D-7D91-4D32-9D5D-2AC7D9B2319E11A2083C-5801-4230-9DE6-C78EFC653EE020A8FD6E-C949-4DAE-8ECC-A8985D23113C

经过以上操作,【Clash Verge Rev 代理界面空白】的问题解决。


事后,再次确认了一下CVR的配置文件,发现以下问题:

clash-verge.yaml与clash-verge-check.yaml 文件中,【proxies】【proxy-groups】【rules】节点下的缩进有问题;

8C694385-71E9-4361-8F01-7C25A0AD1C3C 7C9B862B-3E2B-46D5-9F5A-E48ABF003C76 DD931288-A3AA-4590-B5E4-5E966276A00F

另外,在出现【代理界面空白】的问题时,进入 【备份设置】,点击 【查看记录】->【恢复备份】,是没有作用的。

当 CVR 重新安装后,【恢复备份】才有用。 真是有点不可思议。


新发现,【升级内核】会报错,并导致代理界面空白。

E15E70DB-3BEF-4902-AE01-19011E569A95 60C0DFD9-E36C-4470-9952-7EBD46FB99B1 777AC57A-45FC-488F-8C04-02AF5929784F

或许这才是【元凶】

 
根本不缺存储,苹果涨价行为逻辑完全是鬼扯

以下仅个人观点,不指引任何事物

84740C22-AEE5-48E5-A1B1-102A6421407D

6月25日,苹果官网macbook等产品全线涨价。理由:存储涨了。

听到这个消息的时候,我脑袋有点懵圈。

苹果什么时候响应这么快了?

是不是早就谋划好了涨价?


5501B425-0C9D-4735-9011-ED4DE3E07677

熟知苹果供应链的人,应该知道,苹果的供应商与其之间是有长期合约,

不可能因为市场变化,而随便修改定价

况且,苹果产品本身就是高溢价,怎么卖都不会亏


这波涨上去之后,再想降价,就根本没指望了

年初Macbook Neo,就卖的很好,原因无他,价格便宜

现在Neo也涨上去了

感觉这就是饥饿营销,可耻!


677D1B69-0614-4C54-9C8D-848191E1C8DF

刚刚看了新闻,

“三星、海力士、美光涉嫌操纵存储价格、供应遭诉讼:三家不在乎 没竞争对手”

报道来源,

援引外媒报道以及国内报道,苹果以及海外存储厂商涨价,是早有预谋、坑瀣一气。


AI对存储的占用导致电子产品涨价,像是一场收割

裹夹着普通消费者,去抵冲AI带来的泡沫

坚决抵制苹果这种无序涨价的行为

 
🍺 Homebrew 更新周报 # 20260629 | 镜像清理、刘海与两位新工具

这一周,commit 标题里出现最多的词是 mirror。

新公式只来了两位——tpack 和 slint-cpp。
Cask 一边有 openhuman、dockspace、atoll 这种"刘海 + 桌面"的新面孔,
也有 geolibre、libifd-cyberjack 这样的"小而专"。
但在引擎盖下,Homebrew 在做一件安静的事:
它在把十年前留着的镜像源一个一个关掉。
工具越来越轻,基础设施越来越紧。


本周一句话总结

新工具少,但都在认真解释"我为什么存在"。


本周新增工具速览

🧪 New Formulae

名称 中文说明
tpack tmux 的插件管理器,tpm 的现代替代,带 TUI
slint-cpp Slint UI 工具包的 C++ 头文件和库

🧩 New Casks

名称 中文说明
libifd-cyberjack REINER SCT cyberJack 智能卡读卡器的 macOS 驱动
openhuman 带本地记忆和集成的个人 AI 助手(macOS / Linux)
dockspace 给 Dock 添加小组件(widget)
geolibre 开源 GIS 桌面平台
atoll 在 MacBook 刘海上跑 Dynamic Island 风格的工具
font-hibur-mono 来自埃塞俄比亚的等宽字体 Hibur Mono
font-geomini Geomini 字体
font-iosevka 全系 Iosevka 主家族及其 ss01–ss18、aile、etoile、slab、curly 等变体统一升到 34.7.0

值得留意的几个方向


tpack:tpm 的现代替身,登录 tmux 时不再"黑屏等"

tpack TUI 主界面

tpm(tmux-plugin-manager)是 tmux 圈的隐形基础设施——每个用 tmux 的人大概都 set -g @plugin '…' 过几次。
但它的痛点大家都熟悉:

  • 装插件要 prefix + I,记不住快捷键
  • 启动时静默 git clone,网络不好就是几秒黑屏
  • 想知道"我现在到底装了什么"得翻 ~/.tmux/plugins/

tpack 的解法是把它做成一个 Go 写的二进制,带 TUI 界面。
完全兼容 tpm 的配置和插件——你 ~/.tmux.conf 里那行 set -g @plugin '…' 不用动,
但启动时多了进度条、多了可见列表、多了更新提示。

配方里有句自嘲的注脚:Full Documentation - Mostly AI-generated
工具好用就行,文档是不是 AI 写的,已经不是重点。

它接入了 brew,意味着"你装 tmux,插件管理器就有了"这件事,
离"开箱即用"近了一步。


slint-cpp:C++ 写 UI 终于不用和 Qt 谈十年恋爱

slint-logo

slint-cpp 1.17.0 进了 core,这意味着 Rust 写的 Slint 工具包,
现在原生支持 C++ 头文件和库。
不需要走 Qt 的 moc,不需要等 CMake 找包,
#include <slint.h> 直接就能用。

Slint 的设计思路一直是"为嵌入式、为工具、为跨平台 UI 写 DSL"——
.slint 文件声明 UI,C++/Rust 写逻辑,分工清楚。
1.17.0 这次的 feature:

  • Skia + OpenGL 后端在 macOS / Linux 上稳定
  • C++ 共享库 + 头文件可以直接 link
  • 构建优化(LTO、Codegen units)进了公式默认值

Qt 的问题是"为我的简单工具引入一个 200MB 的框架",
Slint 的方向是"我的应用主二进制 + 几个 MB 的运行时"。
在 Apple Silicon 上尤其明显——brew install slint-cpp 之后,
一个 hello world 的窗口程序可以瘦到 5MB 以内。

slint-cpptpack 是这周的两个新公式,
都做的是"把以前很重的依赖,降成随手一装就能用的东西"。


atoll / dockspace:刘海成了新桌面,dock 成了新画布

atoll-demo
┌──────────────────────────────────────────────────────────────┐
│                                                              │
│  ░░░░░░░░░░░░░░░ NOTCH ░░░░░░░░░░░░░░░░░                     │
│  ░  ⏱ 10:32  |  🎵 Now Playing  |  ⏰ 14:00  ░               │
│  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░                    │
│                                                              │
│              Your normal macOS desktop                       │
│                                                              │
│  ┌────┐  ┌────┐  ┌────┐  ┌────┐  ┌────┐                     │
│  │📅  │  │🎵  │  │💬  │  │⏰  │  │🌤  │ ← Dockspace widgets   │
│  └────┘  └────┘  └────┘  └────┘  └────┘                     │
│   Dock not replaced — augmented                              │
└──────────────────────────────────────────────────────────────┘

两个工具,一周内同时进 cask,都在做同一件事:
把 macOS 默认"留白"的位置,改成可编程的表面。

atoll——把 MacBook 那个被吐槽很多年的刘海,变成 iPhone 风格的 Dynamic Island。
时钟、正在播放、日程提醒,可以放进去。本地原生应用,不是 Bartender 那种"藏起来"的逻辑。

atoll 把刘海用起来

dockspace——往 Dock 里塞 widget。官方截图展示了日历、播放器、时钟、计算器等小组件,
Dock 从"应用启动器"变成"信息面板"。

dockspace-home Dockspace 把 widget 摆进 Dock

两个工具都依赖 macOS :sonoma 及以上,都借助 SwiftUI / AppKit 那种新框架的能力。
普通用户大概率用不上——但它们在试探一件事:
"操作系统留下的视觉空白,是不是可以变成有 API 的产品?"
Jellyfish、Useless Apps 一类的小工具曾经填过这个生态位,
现在这个赛道被正经工程化了。


openhuman:又一个"个人 AI 助手"进场,这次强调"local memory"

┌────────────────────────────────────────────┐
│  OpenHuman                                 │
├────────────────────────────────────────────┤
│  • Local memory (no cloud sync required)   │
│  • Integrations: Calendar / Mail / Files   │
│  • Mac + Linux (AppImage / DMG)            │
│  • 0.58.0 — first stable line              │
└────────────────────────────────────────────┘

openhuman 0.58.0 在本周进 cask。
描述是 "Personal AI assistant with local memory and integrations"——

和上周的 maestri、vibeproxy 一样,属于"私人 AI 工作台"赛道。
但 openhuman 的差异化点是"local memory"——把上下文和偏好存在本地,
不让它去云端做训练。

这和上上周的 speech(本地语音工具包),
和上上周的 mimo-code(带跨会话记忆的编码 Agent)是同一条线:
Agent 越来越私人化、越来越本地化。
openhuman 走的是"日常助理"那条路,不是"编码 Agent"。

0.58 是第一个稳定线版本,
意味着它已经过了"个人项目"的早期阶段,
正式进 brew 那个"每周可装"的位置了。


趋势观察:Mirror 清理是这周的暗线

这次没拉几个 commit message,
但本周 homebrew-core 的 commit 里,
出现频率最高的动词不是 "bump",
是 "remove mirror"。

涉及的工具包括:

  • apache-drill、sbt、erlang@27、popt、yasm、fortune、caca、libstatgrab、ffms2、libcaca、libpng、tcl-tk@8、unixodbc、nghttp2、snort、aerc、icarus-verilog、cxxtest、scrub、[email protected][email protected]、reop (deprecated)
  • 大量 mysql 时代之前的工具:proftpd、daq、oath-toolkit、s-lang、mpich、xrootd、libpq (用 readline)、vamp-plugin-sdk (改 url)

这是 2026 年中一个很具体的趋势
十年前 brew 的镜像系统是为了"避开 GitHub 限速 / 跨区域断网",
现在 GitHub Actions + ghcr + Apple Silicon 的存在让这个逻辑过时了。
镜像在变成"一个过期了的间接层"。

reop 干脆被标记 deprecated,理由是"use alternative urls"——
以前 brew 会替你维护"fallback",
现在 brew 直接告诉你"去找上游"。

这是 brew 在收紧"我替你处理了什么"这件事。
Homebrew 6.0 引入 tap trust 是上半年的标志事件,
这一周的 mirror 清理是同一逻辑的延续:
不再替你假设你信任哪个源,不再替你做 fallback 决策。


一点个人感受

新公式只有两位,反而让我对 brew 的"入口价值"重新有了感受——
每周成百上千的 PR,真正"值得为它写一段描述"的,不到十个。
这十个里又有大半是"替换某个旧工具"而不是"从无到有"。
从无到有的新工具,越来越少了;把旧工具拆掉重做的,越来越多了。

tpack 是"tpm 的现代版",
slint-cpp 是"Qt 的轻量替代",
atoll 是"刘海本来是浪费,我们来用上",
dockspace 是"dock 本来是启动器,我们来做画布"。

每个新工具都在说同一句话:"我比它好,因为我更懂 2026 年的电脑。"

openhuman 那一类本地 AI 助手的出现频率在加快。
上上周 mimo-code、上周 maestri、本周 openhuman——
私人 AI 助手的"基础设施期"正在收尾
接下来应该会看到合并潮:能撑过 1.0 的、会被留下来。
撑不过的,会变成 github.com 上那些 archive 的仓库。

我这一周最希望装的大概是 tpack——
因为我每天 prefix + I 的速度,说明我真需要它。


结语

这周 brew 的 commit 列表像一条安静的河。
新工具是河面上的小船,镜像清理是河底的泥沙在重新分布。

工具在变轻,信任在收紧,本地化在变重。
一周只有两个新公式,也是一种信号——
也许该让旧东西先回家,新东西不用那么着急。

 
Page 1 of 7
Next