🧩 从外面看是编辑器,从里面看是流水线:Claude Code 把自己的四块骨头改成了插件

想象一座工厂的门卫室。每天有几十辆货车进出,每辆车都要登记验单,然后决定放行还是拦下。门卫自己也是工人,也要打卡上班。

目录
  1. 🔌 它能拦住你
  2. 🖐️ 官方给的三个例子都很小
  3. ⚙️ 处理器的三种动作
  4. 🛠️ 更省事的一条路:直接让它写
  5. ⚠️ 权限这一栏必须单独读
  6. 🔄 与旧版 hooks 的差别
  7. 🧭 这件事的位置
  8. 信源与限定

想象一座工厂的门卫室。每天有几十辆货车进出,每辆车都要登记验单,然后决定放行还是拦下。门卫自己也是工人,也要打卡上班。

Anthropic 在 10 月 1 日做的事,是把这间门卫室的门锁与登记簿全部拆下来,做成可以插拔的模块,卖给厂里其他人自己组装。工具叫 Mods,随 Claude Code 2.1.287 版本上线,默认开启。

这不是"给编码助手写提示词"。这是在工具内部写 JavaScript 或 TypeScript 代码,与 Claude Code 本身享有同一台机器的权限。

🔌 它能拦住你

Mods 挂在 Claude Code 运行时发出的事件上。可挂的事件有七个,日报里用得最多的四个是 tool.call、prompt.submit、prompt.compose、ui.render。每个处理函数拿到三样东西:事件、继续执行的钩子 next、以及一个能力对象 $。

一个处理函数只有三种动作:观察,执行 await next(e) 拿到下游结果再原样返回;改写,把改过的事件传给 next;回答,直接返回而不调用 next,否决这次动作或者自己把活干了。

第三种动作是最狠的。它意味着插件可以替工具实现一个工具,或者替掉一条斜杠命令。

多个 Mods 挂在同一个事件上时按加载顺序串成中间件链。最先加载的先看到事件,最后拿到最终结果。这个模式跟 Express 或 Koa 的中间件一样,不同作者的 Mods 可以叠在一起而不用互相协调。

Anthropic 自己先把四块骨头改成了 Mods:sec-default、diff、telemetry、agents-md。/diff 那个显示会话未提交改动的侧栏现在是插件,AGENTS.md 的加载器也是插件,源码就发布在主仓库里。

这个动作的含义比"我们支持插件"重。产品的固定功能与第三方的扩展代码落在同一层扩展机制上,以后 diff 面板和遥测的 bug 修复,要和社区 Mods 的兼容性一起考虑。

🖐️ 官方给的三个例子都很小

Anthropic 发了三个参考 Mods,代码都在仓库里。

Token Weather 大约 80 行,每轮结束后读一次会话用量,在提示符上方画一条状态线。线上的信息有四项:上下文百分比、已用 token 与窗口大小之比、一条 12 轮的迷你折线,以及上一轮 token 的变化量。

Blast Radius 拦 Bash 工具调用,把 rm -rf、git reset --hard 这类命令判为危险,先跑一次 dry-run,然后弹一个侧栏面板,上面两个按钮:Proceed 与 Cancel。演示里一次 rm -rf build 会先列出九个文件共 1.1 MB。

Replay Theater 记录一轮里 Claude 做的每一次文件编辑,注册一个 /replay 命令,在停靠面板里一条条走过这些 diff。

三个例子的共同点是体量。80 行代码换来一条上下文状态线,在过去的编码助手时代做不到,因为状态线属于产品的界面层,不属于插件层。

⚙️ 处理器的三种动作

第三种动作是这套机制里最容易被低估的。工具的斜杠命令可以被第三方替掉,工具本身也可以被第三方接管,而不需要 fork 上游代码。

🛠️ 更省事的一条路:直接让它写

Anthropic 在发布材料里给了第四种用法:你可以用自然语言描述需求,让 Claude Code 在同一个会话里写出这个 Mods 并装好,随后热加载。文件放在 ~/.claude/dev-mods/。热加载会重跑 register 并触发一次 session.start。

热加载的语义有两条值得记住。模块级变量会在重载时重置。命名空间里的 $.state 存在宿主侧,跨重载存活。

这套生命周期不是小事。一个能被热重载的插件意味着你改一行代码就能看到效果,而不必重启整个会话。代价是模块级状态不可靠,需要跨重载的东西必须显式放进 $.state。

版本要求是 2.1.287 及以上默认开启,9 月 25 日的独立拆解还在文档 CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 的预览开关。另外每次加载 Mods 都会往 .claude-plugin/types/ 写一份 TypeScript 类型声明,Anthropic 说这份声明是当前构建版本的权威 API。

10 月 2 日的 2.1.288 加了 $.ui.selection(),返回全屏模式下最后选中的文本。API 仍在早期,README 明确写着接口可能在版本之间变化,不另行通知。

⚠️ 权限这一栏必须单独读

Anthropic 的原话是:Mods 与 Claude Code 本身对你的机器享有同样的访问权。它们没有被沙箱化,你应该只从信任的源安装 Mods,就像你会在自己电脑上安装任何代码一样。

这句话要拆开看。挂在 prompt.submit 上的 Mods 可以在模型看到之前读到你输入的每一个字,也可以改。挂在 tool.call 上的 Mods 位于 Claude 与它要执行的每一个动作之间。

官方的缓解措施是一个叫 sec-default 的内置 Mods。在 Team 与 Enterprise 计划上,或者任何带托管设置的机器上,它会被最先加载,作用是阻止用户安装的 Mods 覆盖权限拒绝规则。README 说它本身没有策略,作用是把组织的 hooks、托管设置、工具策略与拒绝规则挡在已安装插件够不着的地方。

因为所有能力都走 $ 对象,一个先加载的管理员 Mods 可以在任何后续插件运行之前移除方法。这是企业部署真正能落地的着力点:管理员先加载自己的 Mods,第三方插件拿不到某些能力。

这一层设计的巧妙处在于顺序而非功能。$ 是所有能力的唯一通道,先加载者能删方法这件事本身就是一个权限模型。

智柴提示一句:截至发稿,公开资料都没有描述提交到 Claude 目录的 Mods 要经过怎样的安全审查,这一层审核的边界不清楚。

🔄 与旧版 hooks 的差别

Claude Code 早就有 hooks,但那一版是 settings 里的 shell 脚本。它们在 Claude Code 进程之外触发,能允许或阻止一个动作,改不了事件本身,也拿不到界面。

维度settings hooksMods
运行位置进程之外会话之内
改写事件不能能
界面拿不到能重绘组件
权限取决于脚本与 Claude Code 同级
沙箱不适用明确没有
交付形式settings 文件插件,三个文件起步
最小结构是三个文件:.claude-plugin/plugin.json 放清单,hooks/hooks.json 放一个 modules 数组,register.tsx 放逻辑。register 导出单个函数,函数里用 on(event, matcher?, hook) 挂处理器。

社区在几小时内就把常见用途做出来了:悬停时脱敏密钥、内联渲染 Mermaid 图、自定义 diff 面板,还有危险命令守卫。也有开发者把可观测性面板、token 燃烧计做进终端,甚至在终端里跑游戏。

🧭 这件事的位置

把 Mods 放回这周的坐标里看更清楚。9 月 29 日 OpenAI 在 DevDay 上给的是 Dots 常驻智能体,1 日 Anthropic 给的是把编码智能体拆成可编程平台,2 日 Apple 宣布收紧 macOS 的完全磁盘访问权限,理由里直接点了 AI 智能体。

三件事指向同一个前提:智能体正在从"你给它一个提示词"变成"它常驻在你机器上操作文件"。前提一旦成立,权限边界就必须从提示词层挪到代码层。

Mods 的具体做法有三条值得盯:

  • Anthropic 说 Mods 不被沙箱化,同时提供 sec-default 作为托管环境的兜底层。这是把治理成本推给平台团队的典型做法,效果取决于企业用不用。
  • 界面层开放意味着 Claude Code 的交互形态可以被第三方改写,这是差异化能力的来源,也是行为不可预测的来源。
  • 官方示例全部在 80 到 150 行这个量级。门槛低到单人可写,企业安全团队要面对的问题就从"要不要用 Mods"变成"审核哪些 Mods"。
对正在评估 Claude Code 的团队,有一条操作性的建议:把已安装 Mods 的审查当成审查本地安装代码同级别的事情。


信源与限定

  • Anthropic 官方公告,2026-10-01;claude-code 仓库 mods README 与 changelog 2.1.287 / 2.1.288。
  • Thariq Shihipar(Anthropic Claude Code 团队)在播客中说明的三项进程内能力。
  • 生态细节(社区 Mods、claudemod.com、Claude.dev showcase)来自二手报道,未逐一核实。
  • 未核到 Claude 目录提交 Mods 的审核流程,文中已标注。
  • Mac Herald 对 sec-default 加载条件的表述有修正,以 Anthropic 公告为准:Team 与 Enterprise 计划,或任何带托管设置的机器。
暂无表态

想参与讨论或点赞?登录后使用完整功能

讨论回复(0)

暂无回复,登录后可参与讨论
合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens