https://claude.dev/blog/getting-started-with-claude-code-mods/ read and summarize,你认为开发者能做哪些有价值的工作?
回复 群友 607: 先说这篇是什么。claude.dev 上 Addy Osmani 10 月 1 日的教程,讲刚发布的 Claude Code mods(官方同天在 claude.com/blog/claude-code-mods 发了公告)。mod 就是一个跑在你 Claude Code 会话里的 JS/TS 文件,能观察会话里发生的事、改写 Claude Code 的行为、或者自己画 UI,终端和桌面端都行。要求 2.1.287 以上,默认开启。 机制上一句话能说清:Claude Code 每做一件事就发一个事件,mod 就是挂在事件上的函数。核心是 register(on options),里面 on(事件 matcher hook) 注册钩子。钩子像中间件连成链,你的先跑,调 next(e) 把事件交给下一个插件,最后交给 Claude Code 自己的行为。所以一个钩子只有三种动作:观察(先 next 再读结果)、改写(把改过的事件传下去)、回答(不调 next,直接返回 deny 或自己把工具调用/命令结果顶上)。覆盖的事件包括工具调用、提交的 prompt、turn 开始和结束、会话开始和结束、斜杠命令,还有 ui.render——界面上每一块被重绘的时刻。 它跟老的 settings hooks 的区别值得记住:settings hook 是每个事件起一个 shell 命令、用 stdin/stdout 传 JSON,无状态;mod 只加载一次、常驻会话,能保存状态、画实时更新的 UI,还能反向调进 Claude Code——开面板、跑进程、注册斜杠命令、给模型注册新工具。另外 Claude Code 自己有些功能就是用 mod 写的,比如 AGENTS.md 支持和 /diff 面板,源码加测试在 anthropics/claude-code 仓库的 mods/ 下可以读。 教程本身先用约 80 行做了一个 Token Weather:每个 turn 结束后读 $.session.usage,在 prompt 上方那条 band 里画天气图标、上下文占用百分比、token 数、最近 12 轮的迷你图,25%/50%/75%/90% 四档从 Clear 到 Compact soon。中间讲了三件容易踩的事:模块级变量在热重载后会重置,状态必须放 $.state 才会跨重载存活;渲染时读 $.state 会自动订阅重绘,不用手动 invalidate;宽度要用 e.props.bodyColumns,面板停靠时 band 比终端窄。还有 claude plugin validate 和 claude plugin test 两个命令,后者能 stub 掉运行时返回值来写单测。 后面两个大一点的例子更能看出边界。Blast Radius 在 tool.call 上拦 Bash,识别 rm -rf、git reset --hard、git clean、force push、数据库迁移这类命令,先用 git status、git clean -n、du 这些命令的 dry run 算出会动到什么,再弹面板让你按 Proceed 或 Cancel,Cancel 就返回 deny 附上原因。它用 $.process.run 传 argv 数组避免 shell 注入,靠短 sleep 循环等按钮(钩子只有 10 秒自己的时间,但等在 $ 调用里的时间不算),面板放不下就降级画到 band 上。Replay Theater 完全不干预,只在 turn.start 和 turn.complete 之间记录每个 Edit/Write 的前后文本,回合结束后按 r 或 /replay 一步步走 diff。作者自己强调 Blast Radius 是安全网不是权限系统——它只读命令文本,$(…)、别名、脚本里的 rm 都绕得过去,硬拦截还是得用权限规则。 分享就是插件那套,塞进 marketplace.json,/plugin marketplace add 加仓库、install、reload-plugins。两个硬提醒:mod 没有沙箱,权限和你机器上的 Claude Code 一样,作者不是 Anthropic,装之前先读代码,只装你信得过的人写的;Team/Enterprise 和托管设置下会先加载官方 sec-default mod,挡住用户装的 mod 干危险事,比如覆盖你的 permission deny 规则。 至于开发者能做哪些有价值的工作,我自己的判断是按"痛点是不是真痛点、能不能复用"来排: 一是把团队的工作流从口口相传变成装了就生效的东西。以前这些活在 CLAUDE.md、提示词模板、口头规范里,现在可以写进事件层:提交前跑哪些检查、命令要不要确认、工具输出里的密钥先脱敏再让模型看、prompt 进模型前统一改写。这类东西的价值不在代码量小,在于全组行为一致、不靠自觉。 二是安全与合规护栏。官方公告直接点了三个企业场景:CI/CD 状态面板、任何碰生产配置的命令强制确认、以及一个最先加载的 mod 记录其他所有 mod 的调用做审计。企业落地 Agent 卡的就是这层,市场上工具不少,但按自己公司的红线定制的几乎没有。 三是可观测性与"给人看"的那部分。Token Weather 和 Replay Theater 的价值都是把 Agent 内部状态翻译成人能一眼扫的东西。这跟我之前在群里提的 Karpathy 那条是同一件事:模型越强,人的工作越往上游走,变成监督和理解,那"让输出和过程更好被理解"本身就是产品空间,而且现在几乎没人做。 四是领域专用的 UI 和工具。面板里放数据库迁移预览、评测跑分、灰度状态、票据进度,或者给模型注册一批自己业务语义的工具和斜杠命令,让 Agent 用你团队的词汇干活。 五是换掉内置件做差异化。/diff 现在本身就是 mod,可以关掉、可以自己实现;官方说会继续把内置功能往外搬,长期可以只留小内核加自己要的那几件。对个人是顺手,对产品公司则是一个能打包分发的入口——marketplace 还在早期,位置空着。 反面也说一句:别一上来做花哨 UI 或者重复造已经有的 mod,mod 不受沙箱保护,供应链本身就是新的攻击面,做扫描、最小权限、版本锁这类基础活反而更值钱。真要下手,先挑你每天骂一句的那个环节写一个小 mod,装到自己会话里跑一周,有用再往团队推。