升级打怪
最近几周,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 列表像一条安静的河。
新工具是河面上的小船,镜像清理是河底的泥沙在重新分布。
工具在变轻,信任在收紧,本地化在变重。
一周只有两个新公式,也是一种信号——
也许该让旧东西先回家,新东西不用那么着急。
1. 首先安装Obsidian Wiki
推荐安装方式:
pip install obsidian-wiki
obsidian-wiki setup --vault /path/to/your/digital/brain
安装完成后,在Obsidian目录执行:
obsidian-wiki setup --project .
然后提示🔔:
Where is your Obsidian vault? (absolute path):
输入Obsidian目录的绝对路径。
2. AI Agent 初始化项目
再启动AI Agent,直接输入:“set up my wiki”
这样,就会在AI Agent里面安装一系列Skills,以及在项目根目录初始化文档。
3. Obsidian 安装插件
上面的工作完成,就可以安装推荐的社区插件:
- Dataview - 查询页面元数据、动态表格
- Graph Analysis - 增强图表视图
- Templater--手动页面模板
- Obsidian Git - 自动备份
然后在 Obsidian 中打开项目。
4. AI Agent 操作
- 运行 /wiki-status,查看可用内容和状态
- 运行 /wiki-ingest,添加第一个源文件(使用 raw/ 目录)
- 运行 /claude-history-ingest 挖掘你的对话历史
- 运行 /wiki-lint — 验证刚种子化的 vault 是否有链接/前置元数据问题
- 可选:运行 /wiki-dedup — 寻找可能的近重复页(此批为全新创建,可能无重复)
- 可选:运行 /wiki-research
— 对某项目深挖 - 配置 QMD — 启用语义搜索,QMD_WIKI_COLLECTION 当前未设置
需要我安装可选的 "停止 "钩子吗?它会在你写文件或运行shell命令的会话结束时自动执行/wiki-capture--quick--方便你捕捉发现,而无需手动操作。
除了 obsidian-wiki,本身官方还推荐配合一套 Obsidian Skills 使用。
| Skill | 推荐原因 |
|---|---|
obsidian-markdown |
让 AI 正确生成 Wikilink、Callout、Frontmatter |
obsidian-bases |
自动生成 Bases 数据库视图 |
json-canvas |
自动生成 Canvas 思维导图 |
obsidian-cli |
直接操作正在运行的 Obsidian |
defuddle |
网页转干净 Markdown,减少广告和噪声 |
Ref
- sdyckjq-lab/llm-wiki-skill: 基于 Karpathy llm-wiki 方法论的个人知识库构建 Skill,支持多平台!
- 用Obsidian打造LLM-Wiki经验分享 - 知乎
- 我用Obsidian + Codex 搭了一个会持续进化的AI知识库,保姆级教程来了 - 知乎
- nashsu/llm_wiki: LLM Wiki is a cross-platform desktop application that turns your documents into an organized, interlinked knowledge base — automatically. Instead of traditional RAG (retrieve-and-answer from scratch every time), the LLM incrementally builds and maintains a persistent wiki from your sources。
- llm-wiki
- 深度解析 LLM Wiki / Obsidian-Wiki / GBrain:Agent 时代知识的“自组织”与“自进化” - 老纪的技术唠嗑局 - 博客园
- Ar9av/obsidian-wiki: Framework for AI agents to build and maintain a digital brain through Obsidian wiki using Karpathy's LLM Wiki pattern
- InfraNodus AI Graph View - Obsidian Plugin
- noduslabs/infranodus-obsidian-plugin: Advanced graph view for Obsidian: text analysis, topic modeling, and AI with InfraNodus AI text analysis tool: https://infranodus.com
⚠️ Suggestions 提醒
大量冗余的MCP
毫无作用的Agent
以及用不上的Skills
Skills 实在太多就不一一截图。
核心优化以下几条:
- /compact 不要盲目压缩,带参数。Claude 会把冗长繁琐的聊天、报错日志、排错过程打包压缩成一段极简的结构化摘要,删掉废话,仅保留当前任务的上下文状态,瞬间释放几十 KB 的空间。
- /skills 关闭不用的skills
- /mcp 关闭不用的mcp
- /memory 编辑CLAUDE.md文件,写好当前的会话要求、运行时建议和一些特殊处理的注意事项。e.g. Suggestions 中提到Bash操作占用了大量的token,那么可以限制Bash操作或者使用子代理进行
- /clean 开启新的会话
- /btw 创建一个一次性的临时分支对话,Claude 回答完后,这个对话不会被存入主干的上下文 history 中,减少Token 消耗
最开始很喜欢Cursor的开发体验,感觉所见即所得:
- 可以非常快速的选中代码,然后扔给它解决;
- 也可以截图,然后交给它生成UI;
- 每一个步骤都可以反复修改,不用记命令,直接GUI上操作;
- ...
看着Cursor自动化操作,有一种赏心悦目的感觉。
不过,体验Claude Code之后,这些发生变化。
我不再纠结是否拥有GUI,只看重结果和推理过程中产出的东西是否有价值。
Claude Code做得很好,至少目前看来很强。
我主要做前端开发,经常需要与UI界面打交道,
如果AI不能自主识别UI,会给我造成非常大的困扰。
所以,普通的文本模型基本对我没啥用。
至少是,多模态模型,支持文本/图像/视频,并且还能推理和编程。
不得不说,开源大模型与商业模型还有差一段路。
绝大多数开源大模型仅仅是文本模型,或者是某种单一模型,只支持图像或视频,无法支持多模态工作。
零星有一些支持多模态的开源模型,性能较普通,根本不能用来工作生产。
并且,这些模型的部署条件,对硬件要求颇高,不是普通开发者能消费。
回到Claude Code这里来,这是目前验证过,能支持工作生产的AI工具。
Claude Code严格意义上说,是一个Agent。其背后的官方大模型有:
- claude-sonnet
- claude-opus
以上是经常用的,4.6/4.7都不错。绝大部分情况下优先使用sonnet,遇到复杂问题要么opus,要么自己思考。
Claude Code也支持其他厂商的模型,具体有什么要求,暂时不得而知。
总之,那些性能低、不具备多模态的模型,是不能接入到Claude Code。
...
先聊这么多,我再想想有什么可说的。
Ref
这周 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-upgrade、iina/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 建隔离间,而不是盼它自觉
让多个编码 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 住进了终端
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 让语音处理不出本地。
边界在收紧,不是因为不信任,而是因为信任需要被明确。
越来越多的东西在本地跑,这不是退步,是一种选择。
这周 brew update 之后,有一行描述让我停了一下。
"Vim 8 long term support version with no LLM-generated code"
这不是功能描述,是一种表态。
就好像某家餐厅在门口挂出"不用味精"的牌子——
这家餐厅要传达的,不只是关于味精。
本周一句话总结
工具还在进场,但边界开始出现了。
本周新增工具速览
🧪 New Formulae
| 名称 | 中文说明 |
|---|---|
| ansible@13 | Ansible 13 稳定版,自动化部署与配置管理 |
| baguette | iOS 26 无头模拟器管理与宿主端输入注入 |
| bun | 极快的 JS 运行时、打包器、测试运行器(终于进 core) |
| cargo-show-asm | 查看 Rust 代码生成的汇编、LLVM-IR、MIR 和 WASM |
| ec | TUI 三路 git merge 工具 |
| elio | 功能完备的终端文件管理器,带丰富预览 |
| ghcid | 基于 GHCi 的极简 Haskell IDE |
| gixy | 面向安全的 NGINX 配置静态分析器 |
| hookdeck | 把 Hookdeck 的 webhook 事件转发到本地服务 |
| k0sctl | k0s Kubernetes 集群的引导与管理工具 |
| kimi-code | Moonshot AI 出的终端 AI 编码 Agent |
| libbcg729 | ITU G.729 A/B 语音编解码器的编解码库 |
| m4rie | GF(2^e) 上稠密矩阵快速算术库(2≤e≤16) |
| miniz | 轻量级高性能 zlib/Deflate 压缩库 |
| pitchfork | 以开发者体验为核心的守护进程 CLI 管理工具 |
| rmux | tmux 风格 CLI 加守护进程运行时的终端多路复用器 |
| rura | 用于构建 shell 管道的交互式 TUI 便签本 |
| threatdeck | TUI 威胁情报监控与告警平台 |
| vim-classic | Vim 8 长期支持版,声明无 LLM 生成代码 |
| wtype | Wayland 版的 xdotool type,模拟键盘输入 |
🧩 New Casks
| 名称 | 中文说明 |
|---|---|
| buzz | 本地语音转录与翻译 |
| clickshare | Barco 会议系统无线投屏客户端 |
| dfu-blaster-pro | 把 Apple Silicon Mac 强制进 DFU 模式的工具 |
| dotnet-reactor | .NET 代码保护与混淆工具 |
| dwellclick | 无需按键、靠悬停触发点击的无障碍辅助工具 |
| font-geist-pixel | Geist 像素风字体 |
| groove-omnidialer | 外呼销售拨号管理 |
| ibm-notifier | IBM 出的企业端自定义通知与告警 Agent |
| macparakeet | 本地语音转文字、转录与会议录音 |
| microsoft-365-copilot | Microsoft 365 的 AI 生产力助手 |
| microsoft-remote-help | 微软企业 IT 支持用的远程协助与屏幕共享 |
| mindmanager | 思维导图与可视化项目管理 |
| openlogi | 本地优先的 Logitech Options+ 替代品,适配 HID++ |
| power-monitor | 电源适配器与电池状态报告 |
| shichizip-zs | 基于 mcmilk/7-Zip-zstd 的 7-Zip 衍生 GUI |
值得留意的几个方向
这周有一个我从没见过的措辞出现在 Homebrew 里。
它让其他几个工具都显得更值得一看了。
vim-classic:一行描述,一种立场
brew info vim-classic 只有一行核心描述:
"Vim 8 long term support version with no LLM-generated code"
"no LLM-generated code"——这在工具的官方元数据里出现,是我第一次见到。
这不是在说 LLM 生成的代码质量不好。
它说的是一种可追溯性:每一行代码,作者都清楚它从哪儿来、为什么在这里。
Vim 8 已经是功能意义上的成品,它不需要新功能,只需要有人认真维护。
vim-classic 的选择是用人的判断来做这件事,而不是借助辅助生成。
你可能不需要 vim-classic。Neovim 更好、vim 够用。
但它的出现本身是一个信号:
当 LLM-assisted 成为默认时,"手写"开始变成一种需要声明的特性,就像"有机"或"手工"一样。
这种逻辑早晚会蔓延到更多地方。
ec:终于有人把三路 merge 做成 TUI 了
三路 merge 是 git 里最让人头疼的一环。
git mergetool 默认弹出 vimdiff 或者你随便配的编辑器,
多数人要么不知道怎么用,要么每次都要重新想"左边是我的还是他的"。
┌─────────────────────────────────────────────┐
│ ec — TUI 3-way git mergetool │
├───────────────┬───────────┬─────────────────┤
│ LOCAL │ BASE │ REMOTE │
│ │ │ │
│ func foo() { │ func foo │ func foo() { │
│ return 1 │ () { │ return 2 │
│ } │ return │ } │
│ │ 0 │ │
│ │ } │ │
├───────────────┴───────────┴─────────────────┤
│ MERGED OUTPUT │
│ func foo() { │
│ return ▌ │
│ } │
└─────────────────────────────────────────────┘
← → 切换块 Space 选择 Enter 应用 q 退出
ec 做的事很简单:把 LOCAL / BASE / REMOTE 三路放在 TUI 里并排,
让你用键盘选择每个冲突块应该用哪个版本,然后输出 MERGED。
它省掉的,是"看着 <<< === >>> 手动对齐"那种脑力消耗。
rura:shell 管道的草稿本
很多人不知道自己其实需要一个"管道调试器"——
直到他们写出了 cat file | grep foo | awk '{print $2}' | sort | uniq -c | sort -rn 这样一条命令,
然后发现根本不知道哪一步开始出错了。
rura 是个 TUI 便签本:你在里面一段一段地搭 pipeline,
每加一步都能即时看到那一步的输出,
错了就改那一步,不用每次都重跑整条命令。
┌─────────────────────────────────────────────┐
│ rura — shell pipeline scratchpad │
├─────────────────────────────────────────────┤
│ INPUT │
│ cat access.log │
├─────────────────────────────────────────────┤
│ STEP 1 grep "404" [42 lines] │
│ STEP 2 awk '{print $7}' [42 lines] ▲ │
│ STEP 3▌ sort | uniq -c [editing...] │
├─────────────────────────────────────────────┤
│ PREVIEW │
│ 128 /api/missing │
│ 43 /favicon.ico │
│ 7 /admin/login │
└─────────────────────────────────────────────┘
它不是 shell 的替代品,是 shell 的草稿纸。
它省掉的是那种"我不确定这一步对不对,但也不想重跑一遍"的犹豫。
rmux:tmux 的精简重写,带守护进程运行时
tmux 很好,但配置文件那几百行、插件生态、偶尔出问题时的调试——
对于"我只是需要一个会话持久化的终端分窗"来说,有点重了。
rmux 的定位是:tmux 的 CLI 风格,更简单的守护进程模型。
你依然用 rmux new -s myproject、rmux attach -t myproject 这种命令,
但它的守护进程从设计上更轻,更容易推理。
这不是要取代 tmux 的项目。
它是"我知道 tmux 能做到,但我只需要 20% 的那个人"的选项。
一点个人感受
bun 终于进了 homebrew/core,而不是只在 tap 里。
这件事本身不大,但标志着它已经不是"新东西"了。
kimi-code 进场了——Moonshot AI 的编码 Agent 加入了 Claude Code、Codex、Gemini CLI 的行列。
现在 Homebrew 里的 AI 编码 Agent 已经有七八个了,
我有点好奇大家到底在用哪几个、或者全都在用。
vim-classic 是这周我想得最久的。
不是因为我会用它,而是因为它的描述方式让我意识到:
"这段代码是人写的"正在从隐含假设变成需要被声明的事。
这个转变发生得比我想象的快。
macparakeet 和 buzz——本地语音转录这个品类今年明显多了。
不知道是 M4 芯片快到了足够跑的程度,还是大家开始认真对待隐私。
或者两者都有。
结语
这一周没有爆炸性的工具,但有一行描述让我觉得这期值得写。
"no LLM-generated code"——四个词,一条隐形的分界线。
它出现在一个 Vim 的 fork 里,出现在 2026 年,
这件事本身比任何新 AI Agent 都更值得记下来。
当默认值发生变化,反其道而行就变成了一种声明。
首先要说一下,CVR只要订阅配置完成,就基本可以满足日常使用。
但是,由于Claude/ChatGPT对国内ip封锁非常严厉,需要开启TUN模式和fakeip功能。
在公司内部需要兼顾内外2套网络,因此必须配置DNS。
有一说一,Clash的配置文档太长了,实在不想读。
到现在才稍微明白一些配置项的含义。
有时候感觉 Clash Verge Rev 的GUI非常难懂,感觉与自己写yaml有很大区别。
一些网络上看到的简易配置,根本无法使用。
下面记录一下配置的关键。
DNS覆写
- 打开“DNS覆写”
- 打开“启用DNS”
点击“高级”,将下面的配置粘贴进去:
# Clash Verge DNS 配置
# 企业内网 + 公网 DoH 混合解析方案
dns:
# 启用 Clash 内置 DNS 服务
enable: true
# 监听本机 53 端口
listen: ':53'
# Fake-IP 模式,便于域名规则匹配
enhanced-mode: 'fake-ip'
# Fake-IP 地址池
fake-ip-range: '198.18.0.1/16'
# 黑名单中的域名不使用 Fake-IP
fake-ip-filter-mode: 'blacklist'
# 是否优先使用 HTTP/3
prefer-h3: true
# DNS 查询遵循 Clash 规则
respect-rules: true
# 使用配置中的 hosts
use-hosts: true
# 不读取系统 hosts 文件
use-system-hosts: true
# 启用 IPv6 DNS 解析
ipv6: true
# 以下域名返回真实 IP,避免 Fake-IP 导致异常
fake-ip-filter:
# 局域网、本地服务、网络探测等域名不走 Fake-IP
- '*.lan'
- '*.local'
- '*.arpa'
- 'time.*.com'
- 'ntp.*.com'
- 'time.*.com'
- '+.market.xiaomi.com'
- 'localhost.ptlogin2.qq.com'
- '*.msftncsi.com'
- 'www.msftconnecttest.com'
# 用于解析 DNS 服务器自身域名
default-nameserver:
# system 表示使用系统 DNS,其余为备用解析器
- 'system'
- '223.6.6.6'
- '10.139.1.142'
- '10.139.1.143'
- '114.114.114.114'
- '8.8.8.8'
- '2400:3200::1'
- '2001:4860:4860::8888'
# 默认公网 DNS(代理流量)
nameserver:
# Google DNS + 腾讯 DoH + 阿里 DoH
- '8.8.8.8'
- 'https://doh.pub/dns-query'
- 'https://dns.alidns.com/dns-query'
# direct-nameserver 是否跟随 nameserver-policy
direct-nameserver-follow-policy: false
# fallback DNS 过滤规则(当前未启用 fallback)
fallback-filter:
geoip: true
geoip-code: 'CN'
ipcidr:
- '240.0.0.0/4'
- '0.0.0.0/32'
domain:
- '+.google.com'
- '+.facebook.com'
- '+.youtube.com'
# 备用 DNS,留空表示关闭
fallback: []
# 用于解析代理节点服务器域名
proxy-server-nameserver:
- 'https://doh.pub/dns-query'
- 'https://dns.alidns.com/dns-query'
- 'tls://223.5.5.5'
# DIRECT 流量专用 DNS(企业内网 DNS)
direct-nameserver:
# VPN/办公网络下可访问的企业 DNS
- 10.139.1.142
- 10.139.1.143
# 企业域名强制使用内部 DNS 解析
nameserver-policy:
'+.zhongan.com':
- 10.139.1.142
- 10.139.1.143
'+.zhonganonline.com':
- 10.139.1.142
- 10.139.1.143
'+.zhonganinfo.com':
- 10.139.1.142
- 10.139.1.143
'+.za.biz':
- 10.139.1.142
- 10.139.1.143
'+.za-tech.net':
- 10.139.1.142
- 10.139.1.143
编辑规则
点击“高级”,将将下面的配置粘贴进去:
prepend:
- 'IP-CIDR,10.0.0.0/8,DIRECT,no-resolve'
- 'IP-CIDR,172.16.0.0/12,DIRECT,no-resolve'
- 'IP-CIDR,192.168.0.0/16,DIRECT,no-resolve'
- 'DOMAIN-SUFFIX,za-tech.net,DIRECT'
- 'DOMAIN-SUFFIX,za.biz,DIRECT'
- 'DOMAIN-SUFFIX,zhonganinfo.com,DIRECT'
- 'DOMAIN-SUFFIX,zhonganonline.com,DIRECT'
- 'DOMAIN-SUFFIX,zhongan.com,DIRECT'
append: []
delete: []
Ref
- 在线订阅转换
- SubBoost - Clash 订阅转换与管理服务
- 关于"DNS 覆写" 和其内的 "启用DNS"
- [BUG] clash-verge-rev 会自动定时覆盖系统的DNS为223.5.5.5
- MacOS - Clash Verge Rev Docs
- 自定义脚本 - Clash Verge Rev Docs
- 请教下 clash 的 DNS 是这么配置么? - V2EX
- mihomo/docs/config.yaml at Meta · MetaCubeX/mihomo
- 配置 - 虚空终端 Docs
- [BUG] DNS覆写,使用系统 Hosts 无效 · Issue #3608 · clash-verge-rev/clash-verge-rev
最近将iPhone升级到iOS26.5,发现SideStore不能远程刷新,
Error Message:
“You do not appear to be connected to Wi-Fi and/or LocalDevVPN!
SideStore cannot install or refresh applications without Wi-Fi and LocalDevVPN. If both are connected, replace your pairing with iloader.”
“Make sure LocalDevVPN is connected and that you are connected to any Wi-Fi network!”
Error Code:
“SideStore.OperationError 1414”
遂,网上查找解决方法。
SideStore issues 里面有许多人反馈这个问题,大概在3月份的时候,就有人遇到这个问题,大都是iOS26.4beta版本。
评论区中提到#1174有临时解决方案。
打开1174的帖子看了下,或许能解决,但是挺玄学,不太靠谱。而且依赖“Adguard VPN”、“VPN Super”这些支持 IKEv2/IPSec 的 VPN。
有人不认可这个方式,提出了质疑。
就算没人质疑,我也不打算用这么戳的方式。😜
事情到这里,似乎被卡住了。
仔细想想🤔,其实有2个路径解决这个问题:
- 如上面所说,使用支持 IKEv2/IPSec 的 VPN;
- 根据报错信息可知,是LocalDevVPN未连接成功导致;
然后我想到了idevice_pair。
记得在我初次使用SideStore时,就是使用idevice_pair管理iOS设备配对。依稀记得SideStore与iOS配对成功后,再打开LocalDevVPN,就可以刷新应用。
由于我安装的是LiveContainer+SideStore(内嵌)版本,所以又去LiveContainer issues找了下相关问题,果不其然,也有人反馈了。iOS 26.4 compatibility & App Refreshing
在评论中有人提到了 rppairing,
但是怎么操作,还是让人一头雾水。
最后参考这个评论,去b站看了下视频,就完美解决了。✌️
最后弄好后,
Ref
- Refresh not working on ios 26.4 · Issue #1295 · LiveContainer/LiveContainer
- iOS 26.4+|LiveContainer 现已支持 RPPairing 使用教程_哔哩哔哩_bilibili
- [BUG] · Issue #1223 · SideStore/SideStore
- [BUG] 26.4 beta 2 can't refresh, update or deactivate. · Issue #1194 · SideStore/SideStore
iOS 26.4 compatibility & App Refreshing · Issue #1152 · LiveContainer/LiveContainer - [BUG] ios26.4 can't refresh apps · Issue #1174 · SideStore/SideStore
- [BUG] Bug with iOS 26.4 · Issue #1222 · SideStore/SideStore
- Releases · jkcoxson/idevice_pair