升级打怪
最近将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平台的最强烧录卡】整合美化包(完美美化&整合插件&值得珍藏)_游戏热门视频
这周的新工具列表,像是在替开发者清理桌面。
那些曾经散落在 /tmp、命名为 test/test2/actually-final 的目录,
那些永远配不好的 Makefile 环境,
那些需要记住"这个知识在哪个笔记里"的心理成本。这周的工具们在说:别记了,让工具来记。
本周一句话总结
新增不算多,但方向很明确——开发者开始为"减少心智负担"付费,而不是为功能付费。
本周新增工具速览
🧪 New Formulae
| 名称 | 中文说明 |
|---|---|
| erfa | 基础天文计算库,用于天体轨道和星历计算 |
| floresta | 轻量级可嵌入的比特币客户端,为数据主权设计 |
| forgecode | AI 增强的终端开发环境,集成代码编辑和 AI 辅助 |
| hf-mount | 将 Hugging Face Buckets 挂载为本地文件系统 |
| lazymake | Makefiles 的现代 TUI 界面,可视化查看和管理构建任务 |
| mcp-remote | 支持 OAuth 的 Model Context Protocol 远程代理 |
| rabbitmqadmin | RabbitMQ 的命令行管理工具,基于 HTTP API |
| sdl3_mixer | 多声道音频混音器库,SDL3 的音频组件 |
| try | 快速管理实验性项目目录,智能模糊搜索和自动日期命名 |
| vite-plus | Web 开发的统一工具链入口 |
🧩 New Casks
| 名称 | 中文说明 |
|---|---|
| cavalry | 程序化运动设计和动画软件,实时渲染的 2D 动画工具 |
| gopher64 | N64 模拟器 |
| hop | HWP 文档查看和编辑器 |
| iplay | 多媒体播放器 |
| mujoco | 通用物理引擎 |
| paranoia-file-text-encryption | 文件加密工具,支持隐写术和后量子密钥交换 |
| rustcast | 应用和实用工具启动器 |
| server-box | 服务器状态监控工具,内置 SSH 终端、SFTP 和容器管理 |
| sharefile | Progress ShareFile 存储服务客户端 |
| tolaria | Markdown 知识库管理器,AI 时代的"第二大脑" |
| ua-connect | Universal Audio 设备的软件安装和管理工具 |
值得留意的几个方向
这一节不求全,
只挑 3 个 值得停下来看的点。
try:省掉"这个目录叫什么来着"的记忆成本
你有多少个叫 test、test2、new-test、actually-final 的目录?
它们散落在你的 filesystem 各处,有些在 /tmp,有些在 ~/projects/experiments,还有些在你自己都记不清的位置。过了一周再想找某个实验,只能靠 find . -name "*redis*" 碰运气。
try 解决的就是这个看似微小但持续消耗心力的问题。它给每个实验一个带日期的名字(比如 2025-08-17-redis-experiment),然后用智能模糊搜索让你瞬间找到——不是简单的字符串匹配,而是根据最近访问时间排序。
最妙的是它的哲学:"Your brain doesn't work in neat folders. You have ideas, you try things, you context-switch like a caffeinated squirrel."
它没有试图教你整理文件夹的正确方式,而是承认了你的混乱,然后让它变得可用。
lazymake:让 Makefile 不再是个黑盒
Makefile 的问题从来不是语法难,而是你永远不知道里面定义了什么 target。
你打开一个项目,看到几十个 target,但不知道哪些是常用的,哪些之间有依赖关系,哪些会触发耗时很长的重建。要么硬着头皮读 Makefile,要么凭记忆猜 make build 还是 make compile。
lazymake 提供了一个漂亮的 TUI 界面,把所有 target 摊开来给你看。它能显示 target 之间的依赖关系,标记出常用的命令,甚至能预览执行结果。
对于那些不常接触但偶尔需要修改的项目,这种可视化的价值在于:你不需要重新理解整个构建系统,只需要在界面上找到你想要的那个按钮。
tolaria & cavalry:工具的分化
这周的两个 Cask 指向了两个不同的方向。
cavalry 是一个专业的 2D 动画软件,实时渲染、数据导入、rigging 系统——它是那种"把一件事做到极致"的工具。你需要学习它的专业术语,理解它的工作流,但一旦掌握,就能做出专业级别的作品。
tolaria 则完全相反。它是一个 Markdown 知识库管理器,但它的设计哲学是"不要学习新东西"。你的笔记就是普通的 .md 文件,用任何编辑器都能打开;版本控制就是 Git,你可以用命令行查看历史;甚至 AI 集成也是通过标准的 MCP 协议。
一个是封闭的专业系统,一个是开放的通用工具集。
两者都有价值,但趋势是:当工具的复杂度超过某个阈值时,用户开始偏好"只是文件"的可携带性。tolaria 的安装量(242次/30天)比 cavalry(105次/30天)高出一倍多,这可能不是巧合。
一点个人感受
try 和 lazymake 都是那种"装了之后不会卸载"的工具——它们解决的问题太小太日常,以至于一旦习惯就回不去。
相比之下,cavalry 这类专业工具更像是"有一天我会需要"的存在。它的功能很强大,但学习曲线意味着你必须在某个时间点集中投入精力。而现代开发者的时间碎片化程度,可能已经不支持这种深度学习了。
tolaria 的出现时机很有趣。它强调"笔记只是文件"、"Git 就是同步"、"MCP 标准接口"——这些都是在回应 Notion 等云端工具带来的焦虑:我的数据在哪里?我能带走吗?如果服务关闭怎么办?
也许下一代的工具不是功能更强的那个,而是让你最安心的那个。
结语
这周的工具列表里没有改变世界的东西。
但它们都在做同一件事:把开发者从"我需要记住什么"解放到"我只需要创造什么"。
try 省掉了目录命名的心理负担,lazymake 省掉了理解构建系统的负担,tolaria 省掉了担心数据锁定的负担。
工具在变,但好的节奏应该是:负担在消失,而创造力在增加。
下周见。
四月的第四周,工具列表突然变得拥挤。
brew update 之后跳出来一长串新增,
不是那种零星的点缀,而是成批的工具在找自己的位置。
有些是为了连接消息平台,有些是为了给 AI 代码助手加个壳,
还有一些,是 Apple Intelligence 落地后的余波。
本周一句话总结
AI 不再是单一工具,而是变成了需要被"连接"、"管理"、"编排"的基础设施——这周的更新像是在搭建一层中间件。
本周新增工具速览
🧪 New Formulae
| 名称 | 中文说明 |
|---|---|
| cc-connect | 将本地 AI 编码代理连接到消息平台(Telegram/Slack/钉钉等) |
| odinfmt | Odin 编程语言的代码格式化工具 |
| ols | Odin 编程语言的 Language Server |
| openssl@4 | OpenSSL 的第 4 版主分支 |
| paneru | macOS 上的滑动/平铺窗口管理器 |
| pocket-id | 开源的身份认证提供商 |
| [email protected] | Zig 编程语言的 0.15 版本分支 |
🧩 New Casks
| 名称 | 中文说明 |
|---|---|
| equibop | 定制版 Discord 客户端 |
| fluidvoice | 离线语音转文字应用,带 AI 增强 |
| font-bjcree | BJ Cree 字体 |
| font-estedad | Estedad 字体 |
| google-gemini | Google Gemini 桌面 AI 助手 |
| intellij-idea-oss | IntelliJ IDEA 开源版 |
| koharu | ML 驱动的漫画翻译工具 |
| macshot | 截图和录屏工具 |
| openin | 将链接/邮件/文件路由到指定应用 |
| pluralplay-flclashx | 基于 ClashMeta 的代理客户端 |
| puremac | 开源应用管理器和系统清理工具 |
| renameclick | 本地优先的 AI 文件重命名应用 |
| t3-code@nightly | AI 代码助手的精简 GUI |
| unblocked | AI 驱动的开发者协作平台 |
| xdeck | TweetDeck 风格的 X/Twitter 客户端 |
值得留意的几个方向
这一周的新增很多,
但有几个工具指向同一个趋势:
AI 代理正在从"工具"变成"需要被管理的对象"。
cc-connect:把 Claude Code 接到你的聊天软件里

一个公式,连上了 9 个 AI 代理和 11 个聊天平台。
cc-connect 做的事情很简单:让你在 Telegram、Slack、钉钉、飞书甚至微信里,直接调用本地的 Claude Code、Cursor、Gemini CLI 或其他 AI 编码助手。不需要公网 IP,不需要自己搭服务器,装完就能用。
它解决的不是"怎么用 AI 写代码"这个问题,而是"怎么在不离开聊天软件的情况下用 AI 写代码"。对于很多人来说,聊天软件已经是工作流的中心——团队讨论在那里,任务分配在那里,现在 AI 代理也要去那里。
43 个安装量说明它还很小众,但这种"桥接"本身是一个信号:AI 代理不再是单独打开的应用,而是要被嵌入到现有工作流里的服务。
Web 管理界面可以配置多个项目,支持多代理编排、会话管理、模型切换——这些功能出现在一个 Homebrew formula 里,有点意外,也有点合理。
t3-code@nightly:给 AI 代码助手加个壳

T3 Code 是一个"minimal GUI for AI code agents"。它的逻辑更直接:既然 AI 代理已经在后台跑了(Claude Code、Cursor、Aider 等),那给它套个简单的图形界面会不会更好用?
界面确实简单:左边是文件树,右边是对话框,底部是终端输出。没有 VS Code 那么重的插件系统,没有 JetBrains 那么复杂的配置菜单,就是一个能让你和 AI 对话、看它改代码的窗口。
这种"精简"背后有个隐含判断:当 AI 能处理大部分编码任务时,IDE 的复杂度就变成了负担。你不需要那么多快捷键,不需要那么多面板,只需要一个能让 AI 展示它工作的地方。
nightly 版本的存在说明这个项目还在快速迭代中。43 个安装量和 cc-connect 一样,都是早期采用者的数量级。
google-gemini:Apple Intelligence 缺席后的替代方案
Google Gemini 桌面应用在四月登陆 macOS,要求 arm64 架构和 macOS 15+。2380 个安装量是这周所有新增里最高的。
它的出现有个背景:Apple Intelligence 在国内用不了,而 Google 的 Gemini 应用刚好填补了这个空白。不是所有人都愿意折腾区号、换账号,但所有人都想要一个能在桌面上随时唤起的 AI 助手。
FluidVoice(离线语音转文字,170 安装量)也是同样的逻辑:当系统自带的听写功能不够好或者不可用时,第三方的 AI 增强方案就成了刚需。
这两个工具的共同点是"补位"。它们不是创新,而是在现有生态的空缺处填上自己的形状。
趋势观察:AI 代理中间件化
如果把 cc-connect、t3-code、pocket-id(身份认证)、renameclick(AI 文件重命名)放在一起看,能看到一个模式:
AI 不再是单一工具,而是变成了需要被连接、管理、认证、封装的基础设施。
- cc-connect 负责把代理接到聊天平台
- t3-code 负责给代理套个轻量 GUI
- pocket-id 负责管理谁可以访问这些代理
- renameclick 负责把 AI 能力应用到具体场景(文件命名)
这和十年前的"云服务中间件化"很像。当时出现了 Kubernetes、Docker Swarm、Consul 这些工具来管理微服务;现在出现了类似的工具来管理 AI 代理。
区别在于,这次的速度更快。从"AI 助手能用"到"需要管理 AI 助手",只用了不到两年。
其他值得提一下的
Odin 语言工具链成熟:odinfmt(格式化)和 ols(Language Server)的同时出现,说明这个自称"为稳健性、最优性和清晰度设计"的系统编程语言正在形成完整的开发体验。Zig 0.15 的独立分支也是同一件事的另一面。
paneru:窗口管理器的长尾需求:macOS 上的平铺窗口管理器一直有小众但稳定的需求(Amethyst、yabai、Rectangle 各有拥趸)。paneru 的出现说明这个细分市场还有空间。
OpenSSL@4:版本号的惯性:OpenSSL 跳到第 4 版主分支,但绝大多数人还在用 1.x 或 3.x。keg-only 的打包方式说明了 Homebrew 的态度:给你装,但不主动 symlink,让你自己决定要不要用。
一点个人感受
这周的新增列表读起来有点像在翻某家创业公司的产品目录。不是那种"又多了个 XXX 工具"的平淡,而是"原来这个环节已经有人在做产品了"的惊讶。
cc-connect 和 t3-code 这类工具的出现,说明 AI 编码助手已经从"尝鲜阶段"进入了"需要被整合进工作流"的阶段。这不是技术突破,而是工程化。
我注意到两个细节:
-
安装量都很低:43、43、170……这些数字说明还在早期。但对于 Homebrew 这种分发渠道来说,早期采用者的选择往往预示着下一步的主流。
-
夜间构建版本的增多:t3-code@nightly、vlc@nightly(虽然即将被废弃)……这说明有些项目正处于快速变化期,稳定版跟不上节奏。
还有一点主观的感受:当"管理 AI 代理"变成一个独立的需求类别时,有点讽刺。我们本来指望 AI 能简化管理工作,结果反过来要管理 AI 本身。但这可能就是技术演进的路径——每一层抽象都会带来新的复杂度,然后再催生下一层抽象来处理它。
结语
工具在变多,但节奏不必跟着变快。
这周新增了 7 个 Formula 和 15 个 Cask,是近几个月最热闹的一周。但真正值得记住的不是数量,而是方向:AI 正在从"用来做什么"变成"怎么被组织起来"。
有时候,brew update 之后看到的不只是新工具,还有工具之间的空隙——以及填补那些空隙的新工具。
2种方式
- FBA4DSTWO(Final Burn Alpha for SuperCard DSTWO),移植自FBA4PSP。
- MAME4ALL for supercard DSTWO by Alekmaul,是英文论坛会员alekmaul独立开发
ROM 兼容性
FBA4DSTWO 适配 MAME 0.141
MAME4ALL 适配 MAME 0.37b5
Ref
- Supercard DSTwo Software? | GBAtemp.net - The Independent Video Game Community
- DSTWO插件下载_DSTWO专用MAME模拟器软件NDS MAME_SuperCard官方中文网
- FBA4DSTWO | GBAtemp.net - The Independent Video Game Community
- FBA4DSTWO - GameBrew
- rereprep/fba4dstwo: FBA emulator for supercard dstwo.
- DSTwo Plugins - GameBrew
- DSTWO - GameBrew
- MAME 0.139u1 (MAME4droid) ROMs. Free Download - wowroms.com - page 1
- DSTwo Plugin - WikiTemp, the GBAtemp wiki
最近做需求,想在项目中添加一个mock数据的功能,没想到会让我有诸多感思。
先说一下,项目背景:
- 纯前端项目,使用React18.2
- 项目是在2025年5月份左右创建,距离现在大约快1年时间
有意思的部分是,项目中使用了 react-app-rewired 这个工具。
这个工具是做什么的呢?
可以在不 eject 的情况下,调整 create-react-app 的 webpack 配置
当然远不如此,基本可以做到完整接入 webpack 的功能。
因此,这个项目很受 React 开发者喜欢,获得了 9.9K Star。
随着前端技术持续发展,CRA(create-react-app)经历了多次迭代,最后在2022年4月份之后停止了更新。
在CRA迭代的时间里,react-app-rewired 也一直在更新,直到同年2022年2月份之后也停止了更新。期间,做了大量对CRA的适配工作,老版本支持 webpack3.x,新版本支持webpack4.x。
但是,适配的工作永远没有尽头。
然后出现了,customize-cra 这个项目。
This project provides a set of utilities to customize create-react-app versions 2 and 3 configurations leveraging react-app-rewired core functionalities.
字面意思说,可以支持 create-react-app 版本 2 和 3 的配置。
实际上,customize-cra 在2020年5月份就走到了尽头,CRA的后续版本(4.x / 5.x)都无法支持。
在 react-app-rewired 项目获得关注后,React 社区又出现了新玩具🪀:
- Rescripts, an alternative framework for extending CRA configurations (supports 2.0+).
- react-scripts-rewired for a fork of this project that aims to support CRA 2.0
- craco
毫无例外,上面项目现在都已经停止了更新和维护。
这些项目停止更新前,最少也是 1k star。
但,CRA 更是夸张的收获了 104k star。
这件事情,告诉了我一个事实:
如果使用的第三方工具,它的依赖不够透明且过度封装,将导致失去灵活性扩展性。同样它也绝对不可靠不稳定,和不可持续。
Ref
- React / Create React App — But I don’t wanna Eject. | by tim arney
- facebook/create-react-app: Set up a modern web app by running one command.
- Create React App无eject配置(react-app-rewired 和 customize-cra)
- timarney/react-app-rewired: Override create-react-app webpack configs without ejecting
- arackaf/customize-cra: Override webpack configurations for create-react-app 2.0
开始学习 Swift
Ref
Harness Engineering 是啥?
四月中旬,苹果的系统能力开始以工具的形态外溢。
Apple Intelligence 有了命令行入口,Apple Containers 有了原生 GUI,终端里甚至多了一个电子表格。与此同时,一个六万星的 AWS 模拟器被标记 deprecated,依赖链在同一天被清理干净。这一周的列表,一半在打开新入口,一半在关闭旧通道。
本周一句话总结
系统能力在变成命令行工具,旧工具在变成历史注脚。
本周新增工具速览
🧪 New Formulae
| 名称 | 中文说明 |
|---|---|
| apache-arrow-adbc-glib | Apache Arrow ADBC 的 GLib 绑定 |
| apfel | 命令行访问 Apple Intelligence,附带 OpenAI 兼容 API 服务器 |
| dart-sass | Sass 的 Dart 参考实现 |
| fvm | 按项目管理 Flutter SDK 版本 |
| libheif-plugins | HEIF 文件格式编解码器插件 |
| nbytes | 从 Node.js 核心提取的字节处理函数库 |
| overturemaps | 与 Overture Maps 数据交互的 Python 工具 |
| resticprofile | restic 备份的配置文件管理器和调度器 |
| rpiboot | 树莓派 Compute Module 的 USB 启动工具 |
| sheets | 终端里的电子表格工具 |
🧩 New Casks
| 名称 | 中文说明 |
|---|---|
| appgridmac | AI 辅助的 Launchpad 替代品 |
| backblaze-restore | Backblaze 备份恢复客户端 |
| baoliandeng | 基于 Mihomo (Clash Meta) 的 VPN 代理 |
| cadran | 渲染在图标后面的桌面时钟 |
| cc-switch | AI 编码代理的配置管理器 |
| clearance | Markdown 查看器和编辑器 |
| copilot-language-server | GitHub Copilot 语言服务器协议实现 |
| font-suez-one | 字体 |
| font-sulphur-point | 字体 |
| font-sumana | 字体 |
| font-sura | 字体 |
| font-suranna | 字体 |
| font-suravaram | 字体 |
| font-syne-mono | 等宽字体 |
| font-syne-tactile | 字体 |
| happ | 构建代理绕过网络限制的平台 |
| hive-app | 跨项目并行编码的 AI 代理编排器 |
| idevice-pair | 为 iOS 设备生成配对记录 |
| intiface-central | Buttplug 设备控制库的前端应用 |
| orchard | Apple Containers 的原生 GUI |
| paper-design | 界面和原型设计工具 |
| plamo-translate | 专注日语的翻译器 |
| rayon | 面向室内设计师的 AI 绘图工具 |
| rockxy-community | HTTP 代理 |
| rowboat | 带记忆的开源 AI 协作助手 |
| tablen | 原生 SQL 客户端 |
| vibe-island | 灵动岛 AI 代理工具 |
| worksheet-crafter | 工作表和课程材料制作工具 |
本周重大更新与变化
📦 Major Updates (Casks)
| 名称 | 版本 | 说明 |
|---|---|---|
| moradownloader | 2.0.0 | mora 音乐下载工具大版本更新 |
| orangedrangon-android-messages | 6.0.0 | 非官方 Android Messages 桌面客户端 |
| mouseless@preview | 1.0.0-preview.1 | 键盘控制鼠标的工具,到达 1.0 预览版 |
⚠️ Notable Changes (Formulae)
| 名称 | 变化类型 |
|---|---|
| localstack | 被标记 deprecated,上游项目已归档 |
| awscli-local | 移除了对 localstack 的依赖 |
| tinymist | 新增 shell completions 支持 |
值得留意的几个方向
apfel:Apple Intelligence 的命令行入口
Apple Intelligence 一直藏在系统设置和 Siri 后面。apfel 做的事情很简单:给它开了一扇终端的门。
brew install apfel,不需要 API key,不需要下载模型,不需要配置。macOS Tahoe 自带一个约 30 亿参数的语言模型,跑在 Apple Silicon 的 Neural Engine 上。apfel 把这个模型通过 Apple 的 FoundationModels 框架暴露出来,提供三种模式:命令行工具、交互式聊天、OpenAI 兼容的 HTTP 服务器。
最后一点是关键。OpenAI 兼容意味着你现有的任何用 OpenAI SDK 写的脚本,只要把 base URL 改成 localhost,就能接上苹果的本地模型。零成本,完全离线,数据不出设备。
但 4096 token 的上下文窗口决定了它的定位:快速的文本处理、shell 脚本里的胶水层、commit message 生成这类短任务。不是用来替代 Claude 或 GPT 的,是用来替代"这个小任务值不值得调一次 API"这个纠结的。
它还支持 MCP。这意味着你可以把本地文件系统、数据库、甚至其他 API 作为工具接进来。一个免费的、完全本地的、支持 tool use 的 AI——虽然能力有限,但对于自动化脚本来说,够了。
orchard:Apple Containers 有了自己的 GUI
Apple Containers 是苹果在 macOS 26 上的原生容器方案。orchard 是它的第一个第三方 GUI。
要求 macOS 26 以上,这说明它完全依赖苹果的原生虚拟化框架,没有绕道 Docker Desktop 那套。对于那些"想在 Mac 上跑容器但不想装 Docker Desktop"的人来说,这条路终于开始有工具了。
目前安装量只有 107,说明 macOS 26 的用户基数还很小。但它进了 Homebrew Cask,意味着苹果的容器生态正在从"技术预览"走向"有人在上面写工具"的阶段。
localstack:六万星项目的体面退场
LocalStack 是本地模拟 AWS 服务的工具。S3、DynamoDB、Lambda、SQS——你能想到的 AWS 服务,它都能在你的笔记本上跑一个假的出来。64,900 颗星,是很多团队本地开发和 CI 流程里不可或缺的一环。
三月底,上游仓库被标记为 archived。官方的说法是"合并到统一镜像",提供一个"更可靠和精简的体验"。翻译一下:开源版和商业版要合并了,以后只有一个入口——那个带 Hobby 免费计划的统一版本。
Homebrew 这边的反应很快。4 月 12 日,localstack 被标记 deprecated,同一天 awscli-local 移除了对它的依赖。依赖链的清理比项目归档还要干脆。
这是一个典型的"开源项目商业化收编"的故事。免费版没有消失,只是搬了个地方,换了个名字,加了个注册页面。对于那些在 CI 脚本里写死了 brew install localstack 的团队来说,这周要改一行命令了。
趋势观察:AI 代理的基础设施在成型
这周的 Cask 列表里,AI 相关的工具密度很高:
- cc-switch: AI coding agents 的配置管理器——当你同时用 Claude Code、Cursor、Copilot,每个都有自己的配置文件,cc-switch 在管这件事
- hive-app: 跨项目并行编码的 AI 代理编排器
- rowboat: 带记忆的 AI 协作助手
- vibe-island: 灵动岛里的 AI 代理
- copilot-language-server: Copilot 的 LSP 实现,上期在 Formula 里出现过,这次 Cask 也有了
这些工具不是 AI 模型本身,是 AI 模型的"水电煤"——配置管理、任务编排、记忆持久化、界面集成。当围绕 AI 代理的基础设施开始密集出现,说明这个领域正在从"尝鲜"进入"日常使用"。
一点个人感受
apfel 让我意识到一件事:macOS 自带的那个语言模型,我从来没主动用过。不是因为它不好,是因为它没有入口——或者说,它的入口是 Siri,而我已经很久不和 Siri 说话了。apfel 给了它一个我愿意用的入口。
localstack 的退场让我想起一个模式:开源项目做大,商业化收编,免费版变成"免费计划"。这不是坏事,但每次看到都有点微妙的不适感——像是你常去的公园突然加了个扫码入口,里面的东西没变,但感觉变了。
这周的 Cask 列表里有 8 个字体。字体包进 Homebrew 这件事,说明开发者对字体的态度变了——以前是"系统默认就行",现在是"我的终端要用 JetBrains Mono,我的编辑器要用 Fira Code"。字体成了开发环境的一部分。
cc-switch 的存在让我觉得,AI 编码工具的碎片化程度,已经到了需要一个"配置管理器"来管配置管理器的地步了。
结语
苹果的系统能力正在被拆解成一个个命令行工具和独立应用。Apple Intelligence 不再只是 Siri 的后端,Apple Containers 不再只是 WWDC 的演示。当这些能力出现在 brew install 的列表里,它们就从"平台特性"变成了"开发者工具"。
与此同时,旧工具在退场,新的基础设施在铺设。这一周的 Homebrew 不安静,只是变化的方式不一样了。
系统能力变成工具的那一刻,才是它真正被接受的时候。