升级打怪
vi-mode: zsh & inshellisense
- Valiev/almostontop: almostontop zsh plugin
- zsh/Functions/Zle/select-bracketed at master · zsh-users/zsh
- zsh/Functions/Zle/select-quoted at master · zsh-users/zsh
- zsh/Functions/Zle/surround at master · zsh-users/zsh
- hlissner/zsh-autopair: Auto-close and delete matching delimiters in zsh
- alexpasmantier/television: A very fast, portable and hackable fuzzy finder.
- hmbldv/trmnl: Portable terminal configuration: Kitty + tmux + zsh + Starship
- Home | Zim Framework: Modular, customizable, and blazing fast Zsh framework
- Zsh Vi-more: Vi mode, but more
- What zsh plugins & shell tools do you actually use every day? : r/zsh
- microsoft/inshellisense: IDE style command line auto complete
上周我们刚把 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 这个名字有点拗口,但它背后是 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 菜单栏
DS4 Control 是一个菜单栏 app。看起来平淡——但它身上有几个细节值得拆开看。
第一,它不抽象"模型"这个概念。 菜单栏里不是"Local LLM"、"AI Chat"这种伞状入口,而是明确写着 V4 Pro 和 V4 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 终于有了一只宠物
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 是 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-bionic、koe、openwhispr 那条"本地化优先"曲线的延续。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"。
具体的东西才会留下来。
tmux恢复session,也会有痛点,不能按需,只能全部。lazy-tmux 可以解决这个问题,UI交互也蛮不错。
tmux的session可以通过rsync同步到各个设备。
- alchemmist/lazy-tmux: Lazy tmux it is a fast session manager and saver for tmux. You can save all your session and lazy restore it.
- westpoint-io/lazyrsync: 🦀 A friendly terminal UI for rsync, written in Rust. Reusable profiles, an honest dry-run diff, and live progress, even over SSH.
- rsync 用法教程
- timvw/tmux-assistant-resurrect: Persist and restore AI coding assistant sessions (Claude Code, OpenCode, Codex CLI, Pi) across tmux restarts
做个自用的、能加密的个人网盘。
前几周我们看着 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 的描述第一段比较长,但里面有三个词值得拆开看:all-in-one、self-improving、single Rust binary。
它把 TUI、CLI、daemon 三种入口塞进同一个二进制。功能列表读起来像是一个团队愿意自己用的 agent:写 landing page、做后端、管理文件、研究、调度任务和事件,还能挂上 favorite 的 channel(理解为不同 agent 之间的协作通道)。896 stars,Rust Edition 2024,基于 Ratatui。
baml、apm 是把人往外推的工程基础设施;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 的产品描述非常直接:把 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 留在本地)、flite、koe、openwhispr(把语音留在本地)是同一方向的不同切面: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 让我没法继续无视这件事了。这是连续第三周或第四周出现"本地会议录音"工具(配合 koe、openwhispr、flite 那一串)。我到现在还是没用语音类工具,但这个密度本身在告诉我:大概率某个产品已经做对了某个我没意识到的场景,只是我还不知道是哪一个。
至于 diversion——它做对的事我没法直接受益,我没有百万文件 monorepo,我也不带 agent 集群干活。但它把"agent-first"明文写进 VCS 产品描述这件事,和上周 mcp-inspector 进 1.0、arcbox 把 agent 沙箱写进产品第一句,合在一起构成了一条同样的曲线:基础设施品类(版本控制、容器、调试器)开始默认用户里有 agent 这一类。 这条曲线一旦明显到不必说出来,就意味着 agent 经济已经走完了上半场。
结语
kata 的官网描述里有一句不起眼的话——"for humans and coding agents"。前几个月 Homebrew 里陆续进来的 baml、apm、humanbound、openlore、treehouse 也都写过类似的措辞,但它们大多是"我顺便能服务 agent"。kata 是第一样东西,把"agent"放进了产品名字以外、更早的位置。
一个写 pandas 的人,在 2026 年重新做了一个 issue tracker——这个故事本身比任何公式描述都更值得记。可能在某个我们看不见的角落里,有一类工具就是这样开始的:不是因为缺一个功能,是因为有人看到一种新的工作方式没人正经服务过。
也许下期我们可以问另一个问题:这些工具里第一个真正有人留下来长期用的,会是哪一个?
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 卡槽里,形成一个楔形。(见图👇)
塑料片放在 microSD 卡的上表面(没有触点的那一面)和 DSTwo 卡的内壁之间,这个楔形物的作用就是把 microSD 卡推入DSTwo的触点。
方法二
- 清洁MicroSD卡和DSTwo主机上的触点
- 为了让MicroSD卡更好地连接到DSTwo主机,尝试从一定角度推动MicroSD卡,顶部向外推,底部向内推,这样可以使触点更对齐。(参见图片👇)
Ref
- DSTwo Plugins - GameBrew
- [Help wanted] How to access the BIOS menu of NeoDS (Neogeo for DS)? | GBAtemp.net - The Independent Video Game Community
- neoDS - Update! | GBAtemp.net - The Independent Video Game Community
- NeoDS - A Guide to Using One of the Greatest DS Emulators | GBAtemp.net - The Independent Video Game Community
- NeoDS on Supercard DSTwo | GBAtemp.net - The Independent Video Game Community
- The SuperCard DSTWO Beginner's Guide: How to Setup the DSTWO | Page 32 | GBAtemp.net - The Independent Video Game Community
- DSTWO not making proper contact with my DS Lite? | GBAtemp.net - The Independent Video Game Community
- The SuperCard DSTWO Beginner's Guide: How to Setup the DSTWO | GBAtemp.net - The Independent Video Game Community
- Adapt NeoDS to GameBoy Macro | GBAtemp.net - The Independent Video Game Community
最近几周,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 终于不必靠猜来调试
上个月我们先后看到 smithery-cli、toolhive-studio 和 mcp-inspector:安装、管理、调试,MCP 的工具链一层层补齐。mcpsnoop 接上的,是更靠近现场的一层——真实流量到底发生了什么。
它可以作为透明 shim 放在客户端和 MCP server 之间,把每一帧 JSON-RPC 复制到 hub;也可以作为 streamable HTTP 的反向代理,把 401、202、502 这些原本容易被吞掉的状态直接摆到眼前。你可以过滤、重放、导出,也可以对比两次会话之间的工具定义漂移。
这省掉的不是“敲几条命令”的成本,而是那种最磨人的判断:模型究竟有没有发起调用?是参数错了,还是 server 卡住了?工具 schema 是什么时候悄悄变的?以前这些问题通常靠日志碎片拼出来,现在有一块专门的观察面板。
MCP 从配置文件里的几行 JSON,变成了一种值得拥有网络抓包器的协议。这个变化本身,比 TUI 长什么样更重要。
openlore:给 agent 一张不会每次重画的代码地图
openlore 的描述里有两个词很准确:architectural memory 和 structural cognition。它不是再塞一段“请记住这个项目”的 prompt,而是先对仓库做静态分析,建立包含调用关系、类型、测试、架构决策和规范漂移的知识图谱。
之后 agent 可以用 orient 先找到与任务相关的函数、调用者、测试和插入点;改动前用 certify 判断公共接口是否破坏了消费者,或某个 diff 是否新打开了通往敏感边界的路径。它的热路径不依赖 LLM,查询结果也强调确定性。
这里真正被省掉的是“重新建立方向感”。一个长时间没人碰的仓库,最昂贵的往往不是写代码,而是确认自己现在站在哪儿:这个函数谁在调用,那个约束有没有测试,某个看似局部的改动会不会沿着调用图传出去。
它把“记忆”从 agent 的性格问题,改写成了代码库的结构问题。这个方向和上周的 BAML、APM 接得上:agent 工程开始把过去靠经验维持的东西,逐项变成可检查的对象。
treehouse:worktree 不再是 Git 老手的暗号
Git worktree 很好用,但它一直有一点像 Git 的隐藏机关:知道的人用得很顺,不知道的人只会复制目录、切分支,然后在某个周五下午忘记清理。
treehouse 的做法是维护一个可复用的 worktree pool。执行时它会同步远程,找到空闲且干净的 worktree,重置到最新默认分支,然后在里面启动子 shell;退出时清理残留进程、重置工作区,再把它放回池里。还可以用 lease 持久占用,不靠分支名协调,也不需要后台 daemon。
它省掉的是一整串微小但持续的管理动作:这个 worktree 谁在用、哪个已经 dirty、并行任务结束后该删哪个、build cache 能不能留下。对于 agent 并行工作尤其自然——每次拿到的是一块干净、可回收的空间,而不是让多个任务共享同一个目录然后祈祷它们别碰到彼此。
codexia 上周把 worktree 管理写进了 GUI 工作台;这周 treehouse 以更朴素的 CLI 方式把同一个问题落地。一个在做入口,一个在做底层秩序。
lm-studio-bionic:本地模型应用开始直接承认自己是 agent
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 迅速的发展,确实很恐怖
但似乎没有放缓发展的迹象。
Ref
vault 似乎被塞满了……
跑了 /github-ingest 之后,生成了一个 4.8M 的 markdown 文件,
再切回 Obsidian,触发了 indexed,然后它就奔溃了!
心里充满疑问,因为当前目录下还有一个 5.1M 的 markdown 文件,
以及一个 15M 的txt文件。
它们似乎并未造成 Obsidian 奔溃。
用 claude 分析了原因如下:
其实,我也猜到是 markdown 文件造成,但是具体是哪部分原因不清楚。
然后让 claude 解决,它给出的方案如下:
于是,马上验证1 & 2 方案,完全没用。
不甘心,让 claude 联网搜索了一圈(真费token),
Obsidian 没有排除文件不被indexed的功能,这个问题早就有人讨论:
- Ignore/exclude completely files or a folder from all obsidian indexers and parsers - Feature requests - Obsidian Forum
- Any tips for .gitignore style exclusion of vault directories? : r/ObsidianMD
但是官方一直未重视。
目前只能手动修改文件类型,规避被 Obsidian 扫描 indexed。
最后,说一句,Obsidian 是免费软件,但闭源。
前几周我们看到的是 MCP 的工具链在一块一块补齐。这一周的列表告诉我的是另一件事:agent 开发本身,开始有了自己的语言、包管理器和安全框架。
新的语言往往比新的 CLI 工具更难在 Homebrew 里露面。
这一周baml进了,旁边还有apm和humanbound。
当一个领域开始有专属语言和包管理器的时候,通常是某件事从"实验阶段"走向"工程阶段"的信号。
本周一句话总结
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 设计的"
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 的门槛降低这件事。
Codexia 是 Tauri/Rust + React 做的,同时覆盖 Codex CLI 和 Claude Code,功能更宽:任务调度、headless 模式、MCP market、agent skills market、Git worktree 管理。像一个 workstation,不只是 GUI 壳子。
两者指向的是同一个现象: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 引擎。
这周有几件事放在一起看,会比单独看更有意思。
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 生态的"调试工具"到位了
上周写 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 的笼子。这三件事不是同一件事,但它们都在说:某些方向已经走远了,走得够远才需要有人站出来说"我不走那条路"或者"走那条路要装防护"。
不是浪潮,是分叉出现了。
这一周的新增列表没有特别眩目的东西,但有一条线很清晰: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 工作台"这个方向拐
传统终端是"你打命令、它输出",这件事在 agent 出现之前一直是对的。但 agent 不"打命令" — 它是在跑,你在看,偶尔介入。这是完全不同的使用姿势。
otty 把这个区别当成了设计出发点。它不只是渲染文字更漂亮 — 它加了"并排监控多个 agent session"、"prompt 队列"、"把终端输出直接发送给 agent"这类功能。屏幕不再是一行一行的命令,而是几个 agent 同时在工作、你在旁边做决策的工作面板。
它是免费的,macOS 原生,不需要账号。现在装它的人大多数是"看一下是什么感觉",但它指向的那个方向 — 终端从"输入设备"变成"agent 监控台" — 这条线不会消失。
librefang:AI agent 的"操作系统"这个说法第一次进 Homebrew
librefang 的描述是"自托管的、面向自主 AI agent 的操作系统"。这件事怎么理解因人而异,但单纯从"这个词组进了 homebrew/core 的正式描述"这件事来说,值得记一笔。
前几年 AI agent 的配套基础设施都在 Python 包生态里转,进 Homebrew formula 的路径是:项目足够稳定、有明确的二进制分发、团队认真对待"可以被干净卸载"这件事。librefang 今天版本号是 2026.7.11,走的是日期版本,说明它在快速迭代但也在认真维护。
不一定要现在就装,但**"自主 AI agent 的运行时"开始被当成一个可以 brew install 的东西**,这件事本身是一个信号。
vicinae:Raycast 这片水里,又进来一条鱼
vicinae 是一个 macOS 应用启动器 + 命令面板。Spotlight 做过,Alfred 做过,Raycast 现在把持着,vicinae 进来了。
这条赛道看起来饱和了,但它每一两年都会有新入场者,理由也总是类似的:"更快"、"更 native"、"更懂现在的工作流"。vicinae 要求 Apple Silicon + macOS 14,这个姿态更像是"我不做兼容性,我只做最新设备上最好的体验"。
装不装是另一件事。但 Raycast 已经"产品化"得越来越重,总有人在找替代品 — vicinae 在的位置是**"如果有一天你受够了 Raycast 的商业化,它可能是下一个值得看的"**。
一点个人感受
这周让我记下来的是 otty 和 toolhive-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 这一侧靠拢。
不是浪潮,是沉降。工具开始落地了。
你不必每个都装,但能看到它们在哪儿补课,比跟着装要值钱。
这一周的新增列表里,有一类东西明显在堆 — 围着"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 找一个看得下去的姿势
不是 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(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 这一档的"小而不必送云"
这三个放一起说。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 期)】
【来自 - ChatGPT的回答】
【来自 - X上面Financial Times的评论】
早上去公司,电脑开机后,发现网络不能联通,
估计是CVR代理Timeout,需要重新手动连接一次才能用。
手动更新订阅后,想切换一下代理,改成“自动选择”。
结果发现切换不了。
然后就“强制退出”CVR,后续出现更诡异的事情。🤦
再次启动时,代理界面空白😑
不论刷新多少次订阅,代理界面依旧空白,
然后,发现本地的配置也无法更新😭
做为一个有尊严的程序员🧑💻,这点问题能难倒我?!
反复重启,并开始检查配置🧐,步骤如下:
- 点击“订阅更新”,记录时间;
- 检查配置目录,“订阅更新”时都有哪些文件修改;
- 检查clash-verge.yaml配置文件;
“订阅更新”时,上面几个文件有修改
对比clash-verge.yaml,发现配置yaml缩进不对
初步断定:clash-verge.yaml文件格式有问题,导致代理界面空白。
为了验证想法,直接修改clash-verge.yaml文件格式
但似乎没有效果,clash-verge.yaml文件会被CVR重写😓
然后去网上搜了一下这个问题,发现蛮多人遇到:
- [BUG] 复杂配置文件代理规则页面显示空白 · Issue #1915 · clash-verge-rev/clash-verge-rev
- [BUG] 日志等级在info会导致代理组一片空白 · Issue #7049 · clash-verge-rev/clash-verge-rev
- [BUG] V2.4.6 安装完重启电脑后代理页一片空白 · Issue #6444 · clash-verge-rev/clash-verge-rev
- [BUG] 2.4.1重大问题导致无法使用:代理界面空白(Mac&Win) · Issue #4579 · clash-verge-rev/clash-verge-rev
- [BUG] ACL4SSR 似乎会导致 Clash-verge 无法与内核(?)通信? · Issue #124 · clash-verge-rev/clash-verge-rev
简而言之,【Clash Verge Rev 代理界面空白】的问题,一直存在,从未被解决。
打算换个思路,刚好有一条评论引起了我的注意:
于是,进行以下几步操作 【恢复】:
- 备份
io.github.clash-verge-rev.clash-verge-rev; brew reinstall clash-verge-rev重新安装 clash-verge-rev;
- 进入 【备份设置】,点击 【查看记录】->【恢复备份】



经过以上操作,【Clash Verge Rev 代理界面空白】的问题解决。
事后,再次确认了一下CVR的配置文件,发现以下问题:
clash-verge.yaml与clash-verge-check.yaml 文件中,【proxies】【proxy-groups】【rules】节点下的缩进有问题;
另外,在出现【代理界面空白】的问题时,进入 【备份设置】,点击 【查看记录】->【恢复备份】,是没有作用的。
当 CVR 重新安装后,【恢复备份】才有用。 真是有点不可思议。
新发现,【升级内核】会报错,并导致代理界面空白。
或许这才是【元凶】。
以下仅个人观点,不指引任何事物
6月25日,苹果官网macbook等产品全线涨价。理由:存储涨了。
听到这个消息的时候,我脑袋有点懵圈。
苹果什么时候响应这么快了?
是不是早就谋划好了涨价?
熟知苹果供应链的人,应该知道,苹果的供应商与其之间是有长期合约,
不可能因为市场变化,而随便修改定价
况且,苹果产品本身就是高溢价,怎么卖都不会亏
这波涨上去之后,再想降价,就根本没指望了
年初Macbook Neo,就卖的很好,原因无他,价格便宜
现在Neo也涨上去了
感觉这就是饥饿营销,可耻!
刚刚看了新闻,
“三星、海力士、美光涉嫌操纵存储价格、供应遭诉讼:三家不在乎 没竞争对手”
报道来源,
- Major Chipmakers Sued For Price-Fixing Amid 'RAMpocalypse' - Law360
- Samsung, SK hynix, and Micron sued over alleged DRAM price fixing amid record memory costs — lawsuit claims coordinated HBM shift was cover to curtail DDR3 and DDR4 production | Tom's Hardware
- Samsung, SK Hynix, Micron face antitrust class action lawsuit
- Samsung, SK Hynix, and Micron are facing an antitrust class action over memory price-fixing
- Samsung, SK Hynix and Micron Sued in New DRAM Price-Fixing Class Action Lawsuit | ThePCEnthusiast
援引外媒报道以及国内报道,苹果以及海外存储厂商涨价,是早有预谋、坑瀣一气。
AI对存储的占用导致电子产品涨价,像是一场收割
裹夹着普通消费者,去抵冲AI带来的泡沫
坚决抵制苹果这种无序涨价的行为
这一周,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 时不再"黑屏等"
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-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-cpp 和 tpack 是这周的两个新公式,
都做的是"把以前很重的依赖,降成随手一装就能用的东西"。
atoll / dockspace:刘海成了新桌面,dock 成了新画布
┌──────────────────────────────────────────────────────────────┐
│ │
│ ░░░░░░░░░░░░░░░ 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 那种"藏起来"的逻辑。
dockspace——往 Dock 里塞 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 列表像一条安静的河。
新工具是河面上的小船,镜像清理是河底的泥沙在重新分布。
工具在变轻,信任在收紧,本地化在变重。
一周只有两个新公式,也是一种信号——
也许该让旧东西先回家,新东西不用那么着急。