升级打怪
以下仅个人观点,不指引任何事物
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
这一周的工具列表,像是在给"AI 在哪里工作"写一份新答案。
上一周大家还在补 Agent 的水电煤,
这一周开始有人琢磨:Agent 到底应该住在哪里、
模型到底应该跑在哪里。答案变得不太一样了——
Agent 跑去了刘海下面,模型住进了 Mac 自己。
本周一句话总结
Agent 不再只在终端里抢注意力,模型也不再默认住在云端。
本周新增工具速览
🧪 New Formulae
| 名称 | 中文说明 |
|---|---|
| aube | 一个新的快速 Node.js 包管理器 |
| cc-switch-cli | 一处管 Claude Code、Codex、Gemini、OpenCode、OpenClaw 的切换器 |
| cozypkg | Cozystack 包的 CLI |
| dz6 | Vim 风格的 TUI 十六进制编辑器,主打快 |
| ghcitty | 给 GHCi 套了一层更友好的壳 |
| libredwg | DWG(AutoCAD 图纸格式)工具库 |
| quien | 比 whois 更现代的域名情报工具包 |
| ratty | GPU 渲染的终端模拟器,能在终端里塞 3D |
| sdl2-compat | SDL2 兼容层,底层走 SDL3 |
| sdl3_net | SDL3 配套的跨平台 TCP/IP 简易封装 |
| tdf | 终端里看 PDF 的 TUI 阅读器 |
| telegram-send | 命令行直接发 Telegram 消息 |
| wl-clipboard | Wayland 下的剪贴板复制粘贴工具 |
🧩 New Casks
| 名称 | 中文说明 |
|---|---|
| agentsmesh | AI Agent 工作群编排平台 |
| auto-subs | 自动给音视频生成字幕 |
| cc-pocket | Codex 与 Claude 编码 Agent 的远程控制端 |
| choragus | Sonos 音箱控制 |
| dbx | 数据库管理工具 |
| devin-cli | 接 Devin Cloud 的编码 Agent |
| exo | 用本机的多台 Mac 拼出一个本地推理集群 |
| facescreen | 演示与屏幕共享时的人像与文本叠加 |
| font-montenegrin-gothic-one | 一款字体 |
| font-xiaolai | 一款字体 |
| font-xiaolai-mono | 一款等宽字体 |
| ghostvm | Apple Silicon 原生虚拟机 |
| harvest | 时间追踪应用 |
| mactools | 菜单栏工具箱 |
| meetily | 会议录音与分析 |
| mirai | 跑本地 AI 模型的推理引擎 |
| mister-plimsoll | 磁盘剩余容量监控与告警 |
| open-island | AI 编码 Agent 的原生陪伴应用 |
| openpencil | Figma 兼容的开源设计编辑器 |
| ping-island | 菜单栏里盯着 Agent 会话状态 |
| rcmd | 用右 ⌘ 键唤出的应用切换器 |
| speechify-ai-assistant | AI 阅读与朗读助手 |
| tangleguard-cli | 给 LLM 与人都能读懂的代码架构上下文 CLI |
| vmlx | 在 Apple Silicon 上跑本地 AI 模型 |
| whatcable | 菜单栏 USB-C 线缆诊断 |
| yojam | 把链接路由到指定浏览器、配置或 App 打开 |
值得留意的几个方向
这一周值得停下来看的东西不少。
选四个:一个是终端长出眼睛,一个是 Agent 长出表情,
一个是老 whois 终于不再难看,一个是趋势——Mac 自己开始跑模型了。
ratty:终端模拟器开始往里塞 3D 了
ratty 是 Orhun(写过 ratatui、tui-rs 的那位)做的新东西,定义很大胆:
GPU 渲染的终端模拟器,支持在终端里 inline 显示 3D 内容。
听上去像噱头,但 demo 里它真的就能在 cat 文档的中间嵌一个会转的 3D 模型,
也能左边一个 2D 画布、右边一个实时 3D 预览,全都还在你那块终端窗口里。
甚至有人在它上面写了个 endless runner 小游戏,跑在终端里。
它解决的不是什么生产力问题。
它解决的是"终端从 1970 年代起就只会显示字符"这个隐含假设——
当 GPU 已经能干得起所有事,终端没理由继续假装自己是一台 VT100。
值不值得用是另一回事。但作为一种姿态它很有意思:
终端是不是该升级一下定义了。
ping-island:把 Agent 状态搬进 macOS 的刘海
如果你同时挂着两三个 Claude Code、再加一个 Codex 在跑,
你大概率经历过这种情况:切回去看一眼,发现某个 Agent 在十分钟前就停下来等你确认了。
ping-island 直接把 macOS 刘海(Dynamic Island)那一小块拿来当 Agent 的状态栏。
平时它静悄悄缩在那儿,
某个 Agent 需要批准、需要输入、需要 review,它就在刘海下面展开。
你可以直接在那个小弹层里同意 / 拒绝工具调用,
不用切换终端、不用翻 IDE 标签页。
更妙的是它给每个 Agent 都配了一个 mascot——
Claude、Codex、Gemini、Hermes、Qwen、Cursor、Copilot 各自一个像素小动物。
这听上去像玩笑,但当你脑子里同时有三个会话时,
"哪个动物在叫"比"哪个 PID 在等"更容易认。
它替你省的,是那种"我以为它在干活其实它在等我"的尴尬。
quien:whois 终于不再是一坨纯文本了
很多人不知道 RDAP 已经基本取代了 WHOIS。
新协议返回的是结构化 JSON,而不是 80 年代的自由格式文本。
但大多数人手里的 whois 命令还是那个老 whois,
查出来一坨参差不齐的字段,自己拿眼看。
quien 把这件事重做了一遍。
它是个 TUI,开起来一组标签页:
WHOIS、DNS(A/AAAA/CNAME/MX/NS/TXT/PTR/SOA + DNSSEC)、
Mail(SPF / DMARC / DKIM / BIMI 与 VMC 链)、
SSL/TLS(证书、SAN、过期)、HTTP(响应头,安全相关的优先)、
SEO(含可选的 Core Web Vitals)、Stack(CMS、WordPress 插件、JS/CSS 框架探测)。
更贴心的是 ssh quien.sh 就能直接在线试,不装也行。
它不是某种"提效工具"。它是把"查个域名"这件本来就不该是体力活的事,
还原回它该有的样子:一次查询,一组完整的画像。
趋势观察:Mac 这周开始正经当推理服务器了
把 cask 列表里这几个连起来看就很有意思:
- exo:把本机几台 Apple Silicon 拼成一个本地推理集群,
自动发现拓扑、按内存和带宽切模型。文档里提了一句
"8 µs latency with RDMA over Thunderbolt 5"——
你那条没在用的雷电 5 线突然变成了模型并行的总线。 - mirai:本地推理引擎,需要 macOS 26+。
- vmlx:在 Apple Silicon 上跑本地 AI 模型,基于 MLX。
加上之前的 Ollama、LM Studio,这周终于能感觉到一个变化:
Apple Silicon 不只是被动地能跑模型,是开始有人专门为它做基础设施。
集群、引擎、调度、调用 API 兼容层(exo 兼容 OpenAI/Claude/Responses/Ollama)。
这套以前是 Linux GPU 服务器的专属形态。
现在你那台不开机的 Mac mini,可能比一张 4090 更值得保留。
云端推理还会是主流,但"我家这几台 Mac 就够用"
开始从极客的浪漫变成可以装出来的工程方案。
一点个人感受
ratty 我大概率不会换,但我会去看那个 3D demo 视频几遍——
它让我重新意识到终端这个东西其实挺旧的。
ping-island 是这周我最想试的。
不是因为多花哨,而是它把"Agent 在等我"这件事
从"我得记得切回去看"变成"它会自己叫我"。
这种从 pull 到 push 的小变化,看上去无聊,用过就回不去。
quien 我会替换掉系统自带的 whois。
没什么戏剧性,纯粹是 90 年代工具被认真重做了一次。
exo 让我有点恍惚。
两年前你跟人说"我家几台 Mac 拼起来跑 70B",对方会觉得你在表演。
现在它已经是一个有官网、有 API 兼容层、有 Thunderbolt 5 RDMA 优化的产品。
结语
这一周看下来有种隐隐的感觉:
AI 不是又往云上漂走了一点,而是悄悄往本地、往边缘、往"我手边这台机器"再回了一点。
工具会替你打开新世界,也会替你重新发现旧设备。
真正的本地化,是连刘海都开始派上用场。
这周打开 brew update,像是看到一座基础设施小镇在悄悄建起来。
五月底的列表里,AI 已经不再是新东西。
真正变新的,是它周围那一圈"配套设施"——
计费的、调度的、围墙的、防扒手的。
本周一句话总结
Agent 已经过了"造出来就行"的阶段,进入了"得有人管它"的阶段。
本周新增工具速览
🧪 New Formulae
| 名称 | 中文说明 |
|---|---|
| btdu | btrfs 文件系统的采样式磁盘占用分析器 |
| bumblebee | 只读的开发端点扫描器,用于发现供应链暴露面(Perplexity 出品) |
| chunkah | 基于内容分层构建 OCI 镜像的工具 |
| cloudmonkey | Apache CloudStack 官方 CLI |
| codeburn | 看清你的 AI 编码 token 都花到哪去了 |
| erlang@28 | Erlang 28,面向高并发实时系统的语言 |
| far2l-tty | FAR Manager v2 的 Unix TTY 移植,附 NetRocks |
| gmp-ecm | 用于整数因子分解的椭圆曲线方法 |
| goenv@2 | Go 版本管理工具 v2 |
| herdr | 住在终端里的 Agent 多路复用器 |
| ladder | 自托管的 12ft.io / 1ft.io 替代品,HTTP 反代墙 |
| leaf-md | 终端里的 Markdown 预览器,体验接近 GUI |
| m4ri | 在 GF(2) 上做稠密矩阵运算的高速库 |
| mercury-cli | Mercury 银行的 CLI |
| miasma | 把 AI 爬虫困在无尽毒坑里 |
| mips-linux-gnu-binutils | mips-linux-gnu 交叉开发的 GNU Binutils |
| openjdk@25 | Java 25 开发包 |
| panache | Markdown / Quarto / RMarkdown 的 LSP、格式化与 lint |
| quickjs-ng | QuickJS 的下一代分支,更猛的小型 JS 引擎 |
| rustnet | 跨平台终端网络监控 + 深度包检测 TUI |
| sanity | Sanity 无头 CMS 的命令行 |
| satellite-tracker | 终端里的实时卫星轨道追踪器 |
| vs-preview | VapourSynth 脚本预览器 |
| zerolang | 面向 Agent、强调显式副作用与可预测内存的语言 |
🧩 New Casks
| 名称 | 中文说明 |
|---|---|
| activitywatch@beta | 时间追踪器测试通道 |
| airi | AI 伴侣兼 VTuber 应用 |
| antigravity-cli | Google Antigravity Agent 的终端入口 |
| antigravity-ide | Google 出品的 AI 编码 Agent IDE |
| atomcode | 开源的终端 AI 编码 Agent(atomgit 出品) |
| chronoid | 自动时间追踪与生产力洞察 |
| dusklight | 《塞尔达:黄昏公主》的逆向重实现 |
| eurkey-next | 给欧洲人、程序员、翻译用的键盘布局 |
| executor | Agent 的工具发现与执行层 |
| font-pliant | 一款字体 |
| grok-build | xAI 出的可扩展终端编码 Agent |
| keyscreen | 屏幕上展示键盘输入 |
| macmd-viewer | 支持 QuickLook 与 Mermaid 的 Markdown 阅读器 |
| maestri | Agent 编排画布 |
| overtone-analyzer | 实时人声频谱分析与音频编辑 |
| pgen | PostgreSQL 客户端 |
| revpdf-editor | 带批注与编辑的 PDF 编辑器 |
| smoothcapture | 屏幕录制与视频编辑 |
| tldraw | .tldr 文件的官方编辑器 |
| transcribex | 本地 AI 转写应用 |
| trickster | 用快捷键快速访问最近修改过的文件 |
| tuna | 应用启动器 |
| vocevista-video | 人声频谱分析(带共振峰与元音分析) |
| vocevista-video-pro | 高分辨率人声频谱与颤音分析专业版 |
值得留意的几个方向
这一周的关键词不是"AI 又出了什么",而是"AI 周围又长出了什么"。
挑四个停下来看一下。
codeburn:替你回答"我那张 AI 账单到底烧在哪儿了"
如果你同时挂着 Claude Code、Codex、Cursor、Copilot、Gemini CLI——这是 2026 年很多人的真实状态——
那你大概率已经放弃搞清楚每个月那笔 AI 开销到底花到哪了。
codeburn 的角度很务实:它不当 proxy,也不要 API key,
就是个本地的 CLI/TUI 仪表盘,从你磁盘上各家 Agent 的会话记录里读数据,
按任务、模型、工具、项目把 token 和费用切开给你看。
更狠的是 optimize 子命令——
它会指出"这个文件你在不同 session 里被读了 11 次"、"这个 MCP server 你装了但从没调用"、
"这个项目的 Read:Edit 比例失衡"这种你自己绝对不会注意到的浪费点。
它替你省的不是钱,是那种"我隐约觉得在烧钱但说不出在哪"的焦虑。
herdr:tmux 和 Agent 桌面端中间那一层,终于有人补上了
Desktop agent terminals give you app UI. tmux gives you persistence. Herdr sits between them.
这个 slogan 已经把它的位置说清楚了。
过去几个月,Agent 在终端里跑成了一种新工作流,
但你会发现 tmux 不知道哪个 pane 里的 Agent 在工作、哪个卡住了、哪个其实早就跑完了;
而 Cursor、Antigravity 这种桌面 IDE 又把你整套终端环境(shell、SSH、字体、键位)替换掉了。
herdr 的取舍是:保留你的终端,加一层 Agent 感知。
它能识别每个 pane 里跑的 Agent 处于 blocked / working / done / idle / unknown 哪种状态,
能在 workspace 维度做汇总,
能让 Agent 通过 newline-delimited JSON socket API 自己开 pane、跑命令、读输出。
甚至支持从手机 SSH 进来一个 thin client(herdr --remote workbox)继续盯着进度。
它替人省的是"我开了八个 Claude Code 现在到底哪个该看"的认知负载——
这听上去琐碎,但任何用过多 Agent 并行的人都知道这其实是真痛点。
miasma:当反 AI 抓取从抗议变成代码
robots.txt 这几年其实已经形同虚设。
有的爬虫不读,有的读了不当回事,有的干脆改 UA 装成浏览器。
普通博客作者的选择不多:要么挂 Cloudflare,要么认命。
miasma 给了第三种答案:喂毒。
机制很巧——你在页面里塞一些用户看不见、屏幕阅读器也会跳过的隐藏链接(display:none、aria-hidden、tabindex="-1");
正常人不会点,但抓取器会无脑跟进;
你的 nginx 把这些链接的请求反代到 miasma;
miasma 就开始无限喷投毒的训练语料,链接全是自指的,让爬虫掉进一个无穷循环。
你可以配 max-in-flight、link-count、max-depth,避免反 DDoS 自己;
也支持 --force-gzip 控制带宽成本。
作者的态度也直白:"你不该花算力去对抗互联网上的水蛭。"
它代表的不是一个工具,是一种从"被动忍着"到"主动恶心回去"的姿态变化。
2026 年看这个会更明显。
rustnet:在 netstat 和 Wireshark 中间找到了一个新位置
这周 Rust TUI 工具仍然在持续涌现,rustnet 是其中比较扎实的一个。
它解决的问题是"per-process 网络连接观测"——
netstat 和 ss 能看到连接但不知道哪个进程,看不到实时流量;
Wireshark 和 tcpdump 能抓包但不告诉你是哪个进程在发;
rustnet 用 Linux eBPF、macOS PKTAP、Windows 原生 API,把每条 TCP/UDP/QUIC 流绑回它的进程。
它内置了 HTTPS(带 SNI)、DNS、SSH、QUIC、MQTT、BitTorrent、mDNS、DHCP 的解析,
不靠外部 dissector 就能看到协议层级;
默认走 sandbox(Linux 用 Landlock,macOS 用 Seatbelt),
libpcap 初始化完就放权限。
还支持 port: process: sni: 这种 vim/fzf 风格过滤。
它替人省的是"为了排查一个网络问题反复在 lsof、netstat、tcpdump 之间换工具"那种碎片感。
趋势观察:Agent 的"周边产业链"开始齐活了
把这周列表拉远一点看就很清楚——
- Agent 的 IDE:antigravity-ide(Google)、atomcode、grok-build(xAI)
- Agent 的运行时与多路复用:herdr
- Agent 的编排画布:maestri
- Agent 的工具层:executor
- Agent 的成本观测:codeburn
- Agent 的语言:zerolang(显式副作用、可预测内存)
- Agent 的反面:miasma(不让 AI 抓我)
- Agent 的伴侣化:airi(VTuber)
一周内同时出现"开发它的 IDE / 跑它的 runtime / 编排它的画布 / 算它账的仪表盘 / 给它专门设计的语言 / 拒绝它的反扒墙",
这种密度本身就是一个信号:
Agent 已经不是 demo,是一个有上下游的生态了。
一点个人感受
我大概不会装 airi,也用不上 maestri 那种 macOS 26 才能跑的画布。
但 codeburn 和 herdr 我会留个印象——
前者是那种"现在还不痛但迟早会痛"的工具,
后者是那种"等我开第三个 Claude Code 窗口的时候就会想起来"的工具。
miasma 让我有点意外。
不是因为技术,是因为它出现在 Homebrew core,
而不是某个 self-hosted 圈子的小项目。
当一个反 AI 工具被打包进主流仓库,
你能感觉到大家对"无差别抓取"的耐心已经到底了。
zerolang 我没有展开讲——它太早,还没有定论。
但"为 Agent 设计一门语言"这句话本身值得记一下,
就像十年前有人开始说"为 GPU 设计一门语言"一样。
结语
工具列表越来越长,但有意思的部分变了。
以前有意思的是"又有一个新 AI 出来了",
现在有意思的是"AI 周围有人开始修水管、装电表、围篱笆"。
这是一种健康的信号:水电煤齐了,热闹才刚开始。
真正成熟的不是 Agent 本身,而是它需要的那一切日常基础设施。
这周新进来的工具,很多都在干同一件事:把 AI 编程的过去和未来都搭一遍脚手架。
有些工具是为了跑得更快;有些工具是为了记住跑过哪里。
这周的新增偏向后者——不是 CLI 工具突然变多了,
是 AI 编程的上下文管理开始有了自己的工具链。
本周一句话总结
AI 编程从"写"进入了"观察与编排"的阶段——这周入库的工具,超过一半在帮你理解已经发生的事。
本周新增工具速览
🧪 New Formulae
| 名称 | 中文说明 |
|---|---|
| arf | 带语法高亮和模糊搜索的现代 R 控制台 |
| backplane-cli | 与 OpenShift Backplane API 交互的命令行工具 |
| cargo-insta | Rust 快照测试命令行工具 |
| fallow | TypeScript/JavaScript 代码库智能分析,发现死代码与重复逻辑 |
| gascity | 多 Agent 编程工作流的编排构建 SDK |
| lisette | 受 Rust 启发、编译到 Go 的实验性语言 |
| mado | 用 Rust 写的高速 Markdown linter |
| osdctl | 管理 OpenShift 集群的运维 CLI |
| phpantom-lsp | 用 Rust 编写的高性能 PHP 语言服务器 |
| skm | 简洁强大的 SSH 密钥管理器 |
| tinyice | 现代 Icecast 兼容的全功能音视频流服务器 |
| vcfanno | 用其他 VCF/BED 文件批量标注 VCF 变异数据 |
🧩 New Casks
| 名称 | 中文说明 |
|---|---|
| agentsview | 浏览、搜索、分析你过去的 AI 编程会话记录 |
| amore | 含 Sparkle、代码签名、公证的 macOS 应用分发平台 |
| duo-desktop | Duo 双因素认证的终端健康检查工具 |
| general-software-fresh | 截图、下载、剪贴板和桌面文件的短期记忆工具 |
| github-copilot-app | GitHub Copilot 官方原生桌面客户端 |
| input0 | 带 AI 转录的语音输入工具 |
| mole-app | 深度清理、分析和优化 macOS 应用 |
| notion-cli | Notion 的命令行接口 |
| openwork | OpenCode 的非官方桌面 GUI |
| presentify | 屏幕标注、光标高亮与焦点缩放的演示辅助工具 |
| runtimeviewer | 检视 Objective-C 和 Swift 运行时接口 |
| shichizip | 7-Zip 衍生版的图形界面客户端 |
| sshfs-mac | 通过 SSH 挂载远程文件系统的网络客户端 |
值得留意的几个方向
这一节不求全,
只挑 3 个 值得停下来看的点。
agentsview:AI 编程的"回放键"终于来了
用 Claude Code、Cursor、Codex 写了几个月代码——你记得上周三用 agent 干了什么吗?
大概率不记得。这不是记性问题,是 AI 编程产生了一种新的历史:不是 git log,不是 IDE 历史记录,而是"我跟 agent 说过什么、agent 做了什么"。这段历史一直散落在各工具的本地缓存里,没有人帮你整理。
agentsview 做的就是这件事。它把 Claude Code、Codex、Gemini、Copilot、Cursor 等 20 个 agent 的会话历史统一读进来,全文索引,可以按项目、按工具、按时间筛,支持 token 用量和费用报表,号称比同类工具快 80-220 倍。
真正让我觉得有意思的是它的定位:local-first,SQLite,不联网,不注册账号。它没有试图成为一个 SaaS,而是选择把你的历史还给你自己。这在满地"云端同步"的工具里显得有点反常,但可能是对的。
gascity:多 Agent 编排,从玩具变成水管
以前协调多个 AI agent 同时工作,基本靠自己写 shell 脚本拼凑。gascity 想干的事情是把这层"水管"标准化——用一个 city.toml 声明你想跑哪些 agent、用什么运行时(tmux、子进程、Kubernetes),剩下的路由、状态同步、健康监控交给它。
底层依赖 beads(自家的任务跟踪)、dolt(可版本控制的数据库)、tmux、jq,整个项目用 Go 写,CLI 叫 gc。设计上走"原语优先"——不提供高层抽象,提供足够小的积木让你自己组。
这个工具现在刚进 Homebrew,安装量还是两位数。但它试图解决的问题——多 agent 编排的可复现性和可观测性——是真实存在的。随着 agent 场景从单机变成集群,这类基础设施迟早会有人需要。
fallow:代码库的"体检报告"
TypeScript/JavaScript 项目用久了之后,总会有一些"可能没人用了但谁也不敢删"的代码。fallow 的核心主张是:静态分析告诉你"什么可以删",运行时数据告诉你"什么安全删"。
npx fallow dead-code 扫出没用到的文件和导出;npx fallow dupes 找重复逻辑;npx fallow health 给复杂度热力图。静态能力开源免费,运行时那层是付费的。
有趣的是它支持 MCP,可以接入 Claude Code 或 Cursor 的 agent 流程——这意味着它不只是一个跑完就算的 CLI,而是可以嵌进 AI 编程的工作循环里。
趋势小结:Agent 编程开始需要"配套设施"了
这周的三个 formulae/casks 指向同一件事——
agentsview 管历史,gascity 管协作,fallow 管代码质量。
这不是工具的堆叠,是 AI 编程从"我让 agent 写了一些代码"变成了"我需要管理 agent 做的事情"的信号。
以前 CLI 工具大量涌现是因为开发者在搭工作台;现在 agent 工具大量涌现,是因为 agent 本身开始需要一张工作台。
一点个人感受
gascity 和 agentsview 在同一周进入 Homebrew,我不确定是巧合还是某种时机。
agentsview 我可能会用——之前一直想找个办法回顾和 Claude Code 的对话历史,虽然现在有 /cost 和各种日志,但搜索还是很麻烦。local-first 的设计打消了我最大的顾虑。
gascity 和 github-copilot-app 都在 agent 编排这个方向,但路子完全不同:一个是工程师手搓的 Go CLI,一个是 GitHub 官方出的桌面应用。我对后者更好奇,尤其是它声称能"跨 agent 并行管理多个工作流",但目前公开的细节还很少。
fallow 倒是让我想到了一个问题:AI agent 越来越擅长写代码之后,谁来负责清理 agent 留下的技术债?也许就是 fallow 这类工具。
结语
有些工具是锤子,看见钉子就用。
这周进来的工具更像是量尺——帮你看清楚已经发生了什么,才好决定下一步。
观察工具和使用工具,是两种不同的习惯。
但也许,后者越来越需要前者打底。
工具在变,但看懂工具在干什么,始终是你自己的事。
我现在coding的主力工具是VSCode+Claude,之前一直使用Cline。
在Cline中使用Claude,享受GUI的乐趣。
随着时间的推移,发生了很多事情:
- Claude审查变得更加严苛
- Cline中使用Claude,频繁报错
...
然后,我开始逐渐适应在CLI工具中使用Claude。
自从开始使用AI Coding,总感觉设备的内存不够用,一直维持在80%以上的使用率。
日常基本就是,
- Chrome,非常吃内存
- iTerm,可接受
- VSCode,跟Chrome有得一拼
Chrome 重度使用,一时半会没有找到合适的平替,想迁移过去有点困难。
VSCode 基于Electron开发,多开几个tab,就能赶上Chrome了。
VSCode中,一些场景下会使用VI模式,例如:Code Review。
古法编程,看情况用,加上macOS上,触控板太好用了,没有很迫切转Vim。但,现在开始非常想使用nvim替代vscode,即装13又可节省内存。
况且,都使用AI Coding了,Review 和思考的时间居多,GUI没那么有趣了。
配置后的样子,
iTerm 配置
tmux 配置
# 安装 tmux
brew install tmux
# 配置 .tmux
git clone --single-branch https://github.com/gpakosz/.tmux.git "/path/to/oh-my-tmux"
mkdir -p ~/.config/tmux
ln -s /path/to/oh-my-tmux/.tmux.conf ~/.config/tmux/tmux.conf
cp /path/to/oh-my-tmux/.tmux.conf.local ~/.config/tmux/tmux.conf.local
配置完成后,执行:
tmux source-file ~/.config/tmux/tmux.conf
常用的快捷方式
<prefix> e, 打开 .local 自定义文件<prefix> r,重新加载配置<prefix> m,开关鼠标模式<prefix> C-c,创建一个新会话<prefix> C-f,允许你按名称切换到另一个会话<prefix> Tab,进入最后一个活跃窗口<prefix> -,将当前窗格垂直分割<prefix> _,将当前窗格水平分割<prefix> h, <prefix> j, <prefix> k, <prefix> l,像 Vim 那样导航面板
“以上是 oh my tmux 提供的快捷方式”,其他快捷参考 tmux 官网。
这个视频挺不错👇
nvim 配置
略
Ref
- razeencheng/.tmux: Oh My Tmux! 我的tmux配置,以及相关设置。
- 我在 MacOS 上的完美 ghostty + tmux + nvim 配置 : r/Ghostty
- (5 封私信) macOS Tmux安装及配置(复制粘贴,保存工作区) - 知乎
- tmux安装及使用(macos) - pd_liu - 博客园
- .tmux/README.md at master · gpakosz/.tmux
- 【iTerm2 实用技巧】解决两大顽疾:历史记录看不全 & 鼠标滚轮失灵作为 Mac 上的终端利器,iTerm2 的强大 - 掘金
- Installing · tmux/tmux Wiki
- Tmux 使用教程 - 阮一峰的网络日志
AI agent 也需要一张地图。
五月的工具列表里,有几个名字值得停一下。一个 hex 编辑器带了颜色,一个数据目录开始接 MCP,还有一个 Elixir 的 LSP 悄悄更名上线。不是什么大事,但每一件都指向同一个方向:开发者的工作台正在变得更可感知、更可查询。
本周一句话总结
工具越来越懂得如何把自己的内部状态暴露出来——不管是字节、元数据,还是代码语义。
本周新增工具速览
🧪 New Formulae
| 名称 | 中文说明 |
|---|---|
| committed | Git 提交历史检查工具,帮你挑出不规范的 commit message |
| dexter-lsp | 专为大型代码库优化的 Elixir LSP 服务器 |
| go-hass-agent | Linux 桌面原生 Home Assistant 客户端代理 |
| hexapoda | 彩色 modal 风格的终端 hex 编辑器 |
| marmot | 开源数据目录,支持向 AI agent 暴露元数据 |
| nettle@3 | 低层级加密库(版本锁定包) |
| plutosvg | 轻量 C 语言 SVG 渲染库 |
| sol2 | C++ 与 Lua 双向绑定的 API 封装层 |
| vtzero | 极简矢量瓦片编解码库(C++) |
🧩 New Casks
| 名称 | 中文说明 |
|---|---|
| chiri | CalDAV 兼容的任务管理 macOS 应用 |
| openchamber | OpenCode AI 代理的桌面/网页可视化界面 |
值得留意的几个方向
hexapoda:终端 hex 编辑,终于不再灰蒙蒙
用过 xxd 的人大概都知道那种感觉——屏幕上全是十六进制字符,没有颜色,没有选区概念,想改一个字节要先查怎么跟 vim 配合。
hexapoda 换了一套思路。它跟 Helix 学了"选择优先"的 modal 模式:先选中一段字节区间,再决定对它做什么。ijkl 移动(或者 hjkl,可以配置),1/2/3 拆分字节块,m 标记偏移量,J 跳转。操作逻辑和普通文本编辑器接近了很多。
最重要的是:它有颜色。不同类型的字节用不同颜色区分,阅读二进制文件的心智成本一下子低了一大截。
对于偶尔需要检查固件、协议包或者序列化格式的开发者,这个工具值得装着备用。
brew install hexapoda
marmot:让 AI 知道数据在哪

有一类问题,AI 助手回答起来特别吃力:「这个字段的 owner 是谁?」「负责用户订单的表叫什么?」不是因为 AI 不聪明,是因为它根本不知道你们公司的数据长什么样。
marmot 要解决的就是这件事。它是一个轻量级开源数据目录,把你的数据库表、消息队列、API、看板统一索引起来,然后内置一个 MCP server——Claude、Cursor 这类工具可以直接向它查询,拿到的是来自数据目录的权威元数据,不是 AI 自己猜的。
和 DataHub、Amundsen 这类企业级数据目录比,marmot 的门槛低得多:单二进制文件,Docker 五分钟跑起来,支持 500k+ 资产,平均响应不到 50ms。MIT 协议,数据也不出自己的环境。
这不是一个"等团队大了再用"的工具。三个人的小团队,如果 AI agent 开始进入你的开发流程,数据目录这件事现在就值得想一想。
brew install marmot
dexter-lsp:Elixir 的大项目问题
Elixir 的语言服务器(ElixirLS)在大型代码库里一直有卡顿问题——项目一大,补全变慢,索引常常超时。dexter-lsp 是 remote.com 工程团队针对这个问题重新做的 LSP 实现,专门为大型单仓库优化。
它不是要替代 ElixirLS,而是在"大到 ElixirLS 已经不够用"这个场景下的一个选项。如果你的 Elixir 项目超过了某个规模,值得试试看。
brew install dexter-lsp
趋势观察:工具在学会"开口说话"
这周的几个工具有个共同的隐线:它们都在替某种"不透明"省成本。
hexapoda 让二进制文件变得可读;marmot 让数据资产变得可查询;dexter-lsp 让大型代码库的语义变得可感知;openchamber 让 AI agent 的行为有了可视化界面。
这不是巧合。当 AI 工具越来越深入开发流程,「让工具的内部状态对外可见」这件事就变得越来越重要。不是为了展示,是为了被查询、被理解、被协作。
一点个人感受
marmot 是这周让我想得最久的一个。不是因为它做了什么复杂的事,恰恰相反——它做的事情很简单:把数据在哪这件事说清楚。但这件事在 AI agent 开始进入工作流之后,突然变得不那么简单了。
hexapoda 也让我想起,好的 CLI 工具未必要发明新概念,有时候只是把一件早就该做好的事认真做一遍——加个颜色、借用一套成熟的操作模型——就能好用很多。
committed 我没有专门写,但放在那里也挺应景。在 AI 辅助提交越来越普及的时代,一个检查 commit message 规范的工具,某种程度上是在帮你确认:这条记录是你写的,还是机器写的,有没有差别。
结语
工具总是先于方法论出现。marmot 出现在 MCP 变得普及之前,hexapoda 出现在终端开发体验被重新重视的当下。
不一定每个都要装,但值得知道它们在解决什么。
工具在变,但问题意识不必跟着变。
这一周的 brew update,像是给 AI Agent 做了一次集体亮相。
不是某个 IDE 插件、某个 chatbot 包装,
而是连"自我成长"、"使用监控"、"代码评审"都各自有了独立工具。Agent 不再是某个产品里的一个功能,
它正在变成一个生态。
本周一句话总结
当一个领域同时出现了"做事的人"、"看着做事的人"和"统计做事人花了多少钱的人",这个领域就不再是趋势,是产业了。
本周新增工具速览
🧪 New Formulae
| 名称 | 中文说明 |
|---|---|
| alevin-fry | 单细胞测序数据处理工具,灵活高效 |
| barman | PostgreSQL 备份与恢复管理器 |
| crit | AI Agent 的本地反馈回路,专门用来 review 它写的代码 |
| cutadapt | 移除测序数据中的 adapter 序列 |
| defuddle | 网页正文与元数据提取,Readability 的替代选择 |
| echtvar | 快速的变异注释与过滤工具 |
| freesasa | 溶剂可及表面积(SASA)计算库 |
| gemmi | 大分子晶体学计算库与命令行工具 |
| ginkgo | 高性能数值线性代数库 |
| hermes-agent | 自我学习的 AI Agent,从经验里长出新技能 |
| hyphy | 基于系统发育树的假设检验 |
| iqtree3 | 极大似然法系统发育分析 |
| [email protected] | Kubernetes 1.35 版本的 kubectl |
| lavinmq | 轻量 AMQP/MQTT 消息中间件 |
| libchardet | Mozilla 通用字符集检测器 C/C++ API |
| oarfish | 长读长 RNA-seq 定量工具 |
| opendoor | Web 侦察、目录发现与暴露面评估 CLI |
| paml | 基于极大似然的 DNA/蛋白质系统发育分析 |
| pnpm@10 | 高效的 Node.js 包管理器 v10 |
| pomerium | 身份与上下文感知的访问代理 |
| smlnj | Standard ML 编译器与编程系统 |
| spoa | SIMD 加速的偏序对齐工具 |
| stellar-xdr | Stellar 网络的 XDR 编解码 CLI |
| unordered_dense | 高性能 robin-hood 哈希表/集合 |
| vcflib | 解析与处理 VCF 文件的 C++ 库与工具 |
| zapp | 从终端刷写 ZSA 键盘固件 |
| zfp | 支持高速随机访问的压缩数值数组 |
🧩 New Casks
| 名称 | 中文说明 |
|---|---|
| eez-studio | 仪表自动化与 GUI 开发的可视化工具 |
| factory | Factory.ai 的桌面客户端,把 Droids 装进本地工作流 |
| font-akt | 字体:Akt |
| font-alien-block | 字体:Alien Block |
| font-finlandica-headline | 字体:Finlandica 标题版 |
| font-finlandica-text | 字体:Finlandica 正文版 |
| font-m-plus-u | 字体:M+ U |
| ghostpepper | 语音转文字与会议转写工具 |
| jetbrains-air | JetBrains 出品的 Agent 原生开发环境 |
| manus | 自动化本地电脑工作流的 AI Agent |
| open-webui | Open WebUI 的桌面客户端 |
| openusage | Cursor / Claude Code / Codex / Copilot 的 AI 用量统计工具 |
| screenkite | 屏幕录制与编辑工具 |
| wox | 启动器工具 |
| yakit | 网络安全集成平台 |
值得留意的几个方向
这一节不求全,
只挑几个"我看到时停了一下"的东西。
crit:替你看 Agent 写的那堆"看起来都对"的代码
Agent 写代码的速度已经超过了人类阅读代码的速度。这不是夸张。当 Cursor 或者 Claude Code 一次给你 300 行 diff,你下意识做的事是滚动到底,看一眼测试通过没有,然后点 accept。
crit 想做的事很朴素——让 review 这一步重新变成"事",而不是"形式"。它把 agent 生成的 plan 和 code 平铺在一个本地界面里,你可以画出某几行,留一条评论,然后点 finish review,agent 自动按你的评论改。
它没有解决"agent 怎么写得更好",
它解决的是"我怎么不再假装我看过了"。
本地优先、一键分享、支持 190 种语言高亮、Vim 键位——这些都只是配料。真正的判断是:当 agent 越来越快,慢这一步反而成了奢侈品。
hermes-agent:把"经验"做成 Agent 的可持续资产
Nous Research 出的,定位有点克制——它不是 copilot,不是聊天机器人壳,而是"在你服务器上跑的自治 agent"。
但真正的彩蛋藏在描述里那一句:self-improving。它会从你的项目里持续学习,把解决过的问题留存为"技能",下一次遇到同类问题直接调用。
这个想法不新,新的是它落地的方式:跨 Telegram、Discord、Slack、WhatsApp、邮件、CLI 操作;五种沙箱后端(local / Docker / SSH / Singularity / Modal);并行子 agent 各跑各的对话和终端;自然语言 cron。它在赌的是——agent 真正的护城河不是模型,而是记住自己解决过什么。
它跟 Claude Code 的 skill 机制几乎是同一个方向。只是 hermes 更激进:技能不是人写好的,是它自己长出来的。
factory:当 IDE 厂商和 Slack 同时变成 Agent 的入口
Factory.ai 这周有了 Cask。1.5B 估值、150M C 轮、agent 能直接进 VS Code / JetBrains / Vim / 浏览器 / CLI / Slack / Teams 甚至 issue tracker。
它的口号是 "agents that work everywhere you do",听上去像营销,但拆开看其实是个判断:Agent 不应该绑定 IDE,agent 应该绑定工作流。你在哪儿干活,它就在哪儿出现。
这跟同周出现的 jetbrains-air(JetBrains 的"agent 原生开发环境")形成了一种微妙对照——一个想让 agent 跟着人走,另一个想给 agent 造一个自己的家。两条路都还没分出胜负,但桌面级 agent 应用这件事,已经从一两个先锋变成了一片小浪潮。
defuddle:替 Readability 写一个温柔点的版本
Obsidian Web Clipper 的副产品,结果反过来比主产品更值得记一笔。
它做的事就一件:从乱七八糟的网页里把正文抠出来,输出干净的 HTML 或 Markdown,顺手把元数据(标题、作者、发布时间、favicon、schema.org)也提取了。
跟 Mozilla Readability 比,它更"宽容"——不确定的元素倾向保留而不是删除,因为很多时候 Readability 删得太狠,把脚注和图注也一起带走了。它还会用移动端样式来识别"装饰性"元素,这个思路挺机灵的。
为什么值得停一下:在"AI 把网页喂给模型"成为日常的今天,预处理这一步的质量直接决定了下游的智商。defuddle 做的是那种默默改善整个生态的事。
趋势观察:AI Agent 正在长出"配套产业"
把这周的新增放在一起看,AI agent 这个领域出现了一种新的拓扑:
- 做事的层:hermes-agent、factory、manus、jetbrains-air
- 看着做事的层:crit(review agent 写的代码)
- 数着钱的层:openusage(统计 Cursor / Claude Code / Codex / Copilot 的用量与花销)
- 喂数据的层:defuddle(清洗网页给模型)
- 驱动模型的层:open-webui(本地模型的桌面前端)
一个领域开始出现"周边工具",意味着它过了草莽期。当有人开始专门做"用量监控"、"代码审计"、"数据清洗"的时候,agent 就不再是某个 IDE 里的一个 panel,它开始有自己的供应链。
也就是说——Agent 终于不是单飞了。
一点个人感受
老实说,这周新增的科研工具不少(alevin-fry、cutadapt、hyphy、paml、iqtree3 一整套生物信息学工具链),但我没办法假装它们跟我有关系。这是 Homebrew 有意思的地方——它从来不只是"开发者商店",它还是某些科研社区的发行渠道。
让我留意的是 zapp。ZSA 给自己的键盘做了个 brew install 的刷固件 CLI。这事很小,但很温柔——硬件厂商认真对待终端用户,是这个时代越来越稀缺的事。
至于 AI agent 那一堆,老实说,我未必会都装。openusage 我大概率装,因为我已经被某个月的 token 账单吓过一次;crit 我会观望,看它跟现有 review 习惯能不能对上;hermes-agent 现在还有点重,但方向我赞同——agent 的未来不在模型里,在它的"经验积累"里。
结语
一周之内,Homebrew 同时收下了"做事的 agent"、"审 agent 的工具"、"统计 agent 花销的应用"。这种多层次出现,本身就是一个信号。
工具不再是孤立的功能点,而是开始彼此咬合。当 agent 有了 reviewer、有了用量监控、有了数据清洗器,它就从"实验"变成了"生产"。
一个赛道开始有"配角",才说明它真的成了。
关于 SideStore & LiveContainer,网上有太多使用安装教程,但信息比较零碎和缺乏必要说明。
大部分情况下,SideStore & LiveContainer 官方文档和Issues足矣解决99.99%的问题。
老鸟可以略过,新人可以继续阅读。
下面我简单说一下,我对这个项目的理解,以及如何正确使用。
SideStores 是什么?
“SideStore is a fork of AltStore that doesn't require an AltServer.”
“SideStore is an untethered, community driven alternative app store for non-jailbroken iOS devices”
上面两段话意思,SideStore 是一个替代应用商店的应用,不需要用户越狱即可安装应用。
“🍎越狱(iOS Jailbreaking)是指通过技术手段,利用iOS系统的漏洞,获取iPhone、iPad等苹果设备操作系统的最高权限(Root权限),从而打破苹果公司所设定的封闭式生态环境限制。”
越狱手机后的手机,可以安装任何应用,没有任何限制🚫。但是,并不是所有人都希望越狱,但又想安装其他非🍎官方上架的应用,怎么办?
SideStore 就可以做到,完美解决非越狱用户即可安装应用的需求。
在 SideStore 出现之前,AltStore 一直是这项需求这个领域的首选方案。但是 AltStore 有一个非常麻烦的问题:每隔7天需要刷新一次,否则通过 AltStore 安装的应用就会不可使用。
SideStore 并没有解决这个问题:需要每隔7天刷新一次。
但是,SideStore 可以较方便的在Wi-Fi环境下刷新应用,而 AltStore 只能在电脑上刷新。
“这里强调一点,AltStore 只能在电脑上刷新,是因为依赖 AltServer,只要设备和电脑在同一网络,也可以通过Wi-Fi自动刷新。”
在使用 SideStore 之前,必须了解官方提供了:
- SideStore.ipa
- iloader
- LocalDevVPN
具体如何安装,本文不赘述,建议查看官方文档。
安装 SideStore.ipa,还可以通过以下几种方式:
- AltStore
- Sideloadly
- Impactor
当然,仍然希望大家遵循 SideStore 官方文档。
“为什么要说这件事情?因为 SideStore 迭代很快,之前确实推荐使用 AltStore / Sideloadly 安装 SideStore,后面有了 iloader,才开始成为主要安装方式。”
也许若干时间,还有其他变化。😊
说完 SideStore,现在聊聊 LiveContainer。
SideStore 最多只能装3个App,而 LiveContainer,能突破这个限制,变成近乎无限。
这就是 LiveContainer 最大的魅力,其他玩法(多个 LiveContainer),可以查看官方文档或社区。
最后,分享一些 SideStore & LiveContainer 的使用心得:
- SideStore 安装主力常用App;
- LiveContainer 安装放“可折腾”的App;
- 依赖通知和后端推送的App,不可使用 LiveContainer;
- 游戏模拟器类,需要 JIT,建议使用 LiveContainer;
- 用小号 Apple ID,不要用主号,避免被封号;
- 使用捷径和定时任务更新SideStore,保持每天至少打开一次;
- 使用Clash Mi,即便没有Wi-Fi也可以刷新,【参考】;
如果不小心掉签了,别急,可以在电脑上通过iloader恢复。
Ref
- LiveContainer 简介
- claration/Impactor: Feature rich iOS/tvOS sideloading application written in Rust.
- - [BUG] IOS development cert or pending cert request bug (7460) · Issue #795
- SideStore/SideStore: SideStore is a fork of AltStore that doesn't require an AltServer.
- LiveContainer + SideStore (LC+SS): Complete Guide
- LiveContainer现在有一个内置sidestore的版本 : r/sideloaded
- 我正在尝试登录 sidestore,但它说“您已经拥有当前的 iOS 开发证书或待处理的证书请求 (7460)”。 : r/sideloaded
- JIT是干嘛用的?? : r/AltStore
- 启用JIT | SideStore Docs
- StephenDev0/StikDebug: An on-device debugger/JIT enabler for iOS versions 17.4+, powered by idevice.
添加DSOrganize后,重新加载DSTWO时,
发现会多出一个“._DSOrganize”的黄色问号图标,感觉非常丑。
由于刚接触DSTWO,对它不熟悉,
也不知道是什么原因产生的,
所以一直不敢动。
今天在网上找到一个中文版的bak(备份文档),非常开心。
然后立马解决这个问题。
问题产生的根源是,Mac 系统会在 FAT32 文件系统上创建的元数据文件。类似“._ ”。
使用“dot_clean”命令可以解决。
“2>/dev/null” 可以屏蔽错误信息。
使用下面的命令禁止产生.DS_Store文件
defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true
使用下面的命令,禁止在网络共享上生成.DS_Store
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
保险起见,可以再加上,禁止生成 .DS_Store(U盘)
mac系统下将U盘格式化FAT32:
diskutil eraseDisk FAT32 NDS MBRFormat /dev/disk16
Ref
Supercard DSTwo 是烧录卡,支持NDS/NDSi/3DS。
Skin
- DerrickGold/BAGPlug-SCDS2: An interface for the Supercard DS2 that launches media, homebrew, and retro games.
- DSTWO User Manual_SuperCard Official Site
- Derrick Gold
- SuperCard DSTWO ds2skin packs - WikiTemp, the GBAtemp wiki
- DS2 Skin Installer | GBAtemp.net - The Independent Video Game Community
- DSTWO Skins
- Updated DSTwo.nds for BAGPlug & iMenu & future Menus
- DS2Tools - GameBrew
官方资源💾
http://down.supercard.sc/download/dstwo/
Ref
- mtheall/ftpd: FTP Server for 3DS/Switch
- 我创建了一个简单的备份与同步工具 : r/3dshacks
- Lokthran/3DS-Save-Sync: A Python-based tool to backup and transfer 3DS, NDS, GBA and custom save files via FTP.
- DSOrganize - GameBrew
- DragonMinded.com :: DSOrganize FAQ
- DSTwo DSFTP Plugin | GBAtemp.net - The Independent Video Game Community
- NDS Backup Tool FTPd | GBAtemp.net - The Independent Video Game Community
- Supercard DSTwo 和 DSTwo Plus 有什麼主要區別? : r/flashcarts
- DSTWO常见问题解答_SuperCard官方中文网
- DSTWO常见问题解答_SuperCard官方中文网
- Nintendo DSi掌机硬件参数和配置 - 掌机圈
- Any major differences between Supercard DSTwo and DSTwo Plus? : r/flashcarts
- Best SuperCard DSTWO setup? : r/flashcarts
- Dstwo 2 in 1 vs 4 in 1 differences? : r/flashcarts
- Genuine Super Card DSTWO - change the main menu wallpaper : r/flashcarts
- Customize DSTWO EOS? : r/flashcarts
- FW, Moonshell and DSOrganize easy install | GBAtemp.net - The Independent Video Game Community
- DStwo【DS平台的最强烧录卡】整合美化包(完美美化&整合插件&值得珍藏)_游戏热门视频