一句话总结
Anthropic 把 Claude Code 从一个「你只能等官方更新」的闭源 Agent,改成了一个可以在运行时被改写的运行时:一个 Mod 就是几行 TypeScript,挂到 Claude Code 的内部事件上,就能在提示词送进模型之前改掉它、拦下或重试一次工具调用、自行批准或拒绝一次权限请求、在 Claude 读到工具输出之前把密钥抹掉,甚至替换它画在终端里的一块界面。多个 Mod 抢同一个事件时按加载顺序排成一条中间件链,内置功能也开始一个一个搬出去变成 Mod —— 但官方把丑话说在前面:Mod 没有沙箱,它和 Claude Code 本身拥有同样的机器权限。
数据来源:Anthropic 官方产品博客《Customize Claude Code with mods》(2026-10-01)与 Claude Code 官方文档的 Mods 事件参考(/docs/en/plugins/mods/events、/docs/en/plugins/mods/reference);社区目录 claudecodemods.com;Gate News 关于发布与「预览阶段代号 Function Hooks」的报道(2026-10-02)。
先说清楚:Mod 到底是什么
如果把 Claude Code 看成一台还在持续进化的机器,那这次发布做的事情是在机器上开了一排检修口。

官方对它的定义很短:Mod 是小的 TypeScript 函数,用来改变 Claude Code 的工作方式 —— 可以重写一个提示词、加一段新界面、替换掉一个内置功能,或者加一整套原本不存在的能力。它住在**插件(plugin)**里,所以安装和分享的方式跟你现在装插件没有区别,CLI 和桌面端都支持。
真正关键的一句话是它为什么会出现。官方说,开发者早就想要更多控制权,但不想等官方把功能排期做出来。旧版的 hooks 给了一部分控制权,但 hooks 改不了事件、画不了新界面、也替换不了功能;Mod 可以。
这就是「Mods 和 hooks 到底差在哪」的标准答案:hooks 是在固定位置跑一条 shell 命令;Mod 是接管事件本身的函数,能读、能改、能代答。
它怎么工作:事件、中间件链,一个函数做四件事
Mod 的模型其实只有一个概念,叫事件。Claude Code 每准备做一件事就发出一个事件 —— 官方举的三个例子是:调用一个工具、请求一次权限、绘制一部分屏幕。Mod 就是一个挂在这些事件上的函数,它可以选择在事件前跑、在事件后跑、取代事件本身,或者把事件包起来(前后各跑一次)。

官方文档给出了具体的 API 形状:用 on(eventName, handler) 注册,handler 收到三个参数 —— mods API(写作 $)、事件本身(e)、以及下一个处理器 next。所有挂在同一事件上的 handler 构成一条中间件链,next(e) 表示「交给下一个 Mod,或者走到链尾交给 Claude Code 自己」,并把结果 resolve 回来。你怎么用 next,决定了你是「观察」「改写」还是「代答」:
// 观察:跑完之后记一行,结果原样交回去
on('tool.call', async ($, e, next) => {
const result = await next(e)
$.ui.log(e.tool + ' finished')
return result
})
// 改写:把改过的一份事件副本往下传,后面的 Mod 和 Claude Code 再也看不到原文
on('prompt.submit', async ($, e, next) => {
return next({ ...e, text: e.text.trim() })
})
这里有一个设计细节值得单独拎出来:事件对象是深度冻结(deeply frozen)的,直接给它赋值会抛错。 想改就必须显式造一份副本往回传。这是个很克制的选择 —— 它让「谁改了这段提示词」这件事在代码里是显式的,而不是某个 Mod 偷偷把别人的事件改了。
一个函数能做的事,官方列了四条:重写提示词(在送进模型前)、阻止、重写或重试一次工具调用、批准或拒绝一次权限请求、在 Claude 读到工具输出之前把密钥抹掉。最后一条是那种「本来得靠规范约束、现在能靠代码强制」的能力。

而事件本身远不止三个。官方参考手册按主题把事件分了组,覆盖面比「工具调用」这一件事大得多:
| 事件组 | 代表事件 | 挂上去能干什么 |
|---|---|---|
| 工具 | tool.call、tool.check、tool.describe | 改工具描述、阻止/改写/重试调用,或直接返回结果 |
| 提示词与上下文 | prompt.submit、prompt.section、prompt.context | 改用户提示、增删系统提示的某个小节、改首条消息的上下文 |
| 命令与配置 | command.run、config.set、config.describe | 拦截命令、改 /config 里某一行的值与说明 |
| 回合 | turn.start、turn.step、turn.complete | 在单次请求发往模型前换模型或推理强度 |
| 会话 | session.start、session.compact、session.append、session.send/receive | 改写要存进对话的每一行、跳过压缩、甚至让两个会话互相发消息 |
| 子 Agent | agent.offer、agent.spawn | 不给 Claude 提供某个子 Agent 类型,或换掉它的模型 |
| 界面 | ui.render、ui.press、ui.input | 往指定渲染点画东西、接管按钮与输入 |
session.send / session.receive 这组特别有意思 —— 它意味着 Mod 不只是改本地行为,还能让两个 Claude Code 会话之间互相传消息。加上 turn.step 能换模型、effort 能换推理强度,这套 API 实际上把「Agent 循环的每一个关节」都开放出来了。
一个 Mod 能改什么,边界又在哪
把上面的能力收拢成一张图,就是下面这样:

左边一半是能力:改写提示词、拦截工具调用、审批权限、清洗工具输出、改界面、加新功能。右边两条是边界,而且这两条边界比能力更值得记住。
第一条边界:没有沙箱。 官方原话是 Mod「与 Claude Code 本身拥有同样的机器访问权限」,它们不被沙箱隔离,所以只应从你信任的来源安装 —— 就像你安装任何一份代码到电脑上一样。翻译一下:装一个来路不明的 Mod,约等于让它以你 Claude Code 的身份在你机器上跑任意代码。这一点发布当天就有独立报道专门标了出来,社区目录 claudecodemods.com 也反复强调它的「Source verified」只是确认来源可访问,不是安全审计。
第二条边界:内建 Mod 先加载。 在 Team / Enterprise 方案以及任何被托管设置(managed settings)管理的机器上,一个叫 sec-default(security default) 的内建 Mod 会最先加载,专门挡住用户自己装的 Mod 去做危险动作,比如覆盖组织的权限拒绝规则。管理员也可以选择加载自己的 Mod 来代替它,官方提醒那样做时要补上 sec-default。这条设计等于把「组织策略」放在了「个人插件」的前面 —— 加载顺序这件事在这里第一次有了安全含义。
顺带一个容易被忽略的治理细节:Mod 是随插件走的,所以现有的插件管控直接适用。管理员可以允许或禁止某些插件市场;Team / Enterprise 的 owner 在管理控制台里设置;Claude API 与第三方 API 方案的机器则由管理员把托管设置推到用户机器上。
内置功能正在搬出去:把 Claude Code 削成一个「小核心」
这次发布里,最能说明长期方向的一句话是:一些原本内建的功能现在就以 Mod 的形式发布。 官方点的例子是内置的 /diff(会话里未提交改动的、按文件与 hunk 排列的对照面板)—— 可以保留它、也可以换成自己的版本。官方的计划是继续把更多内建功能迁移成 Mod,让你能把 Claude Code 削到「一个很小的核心」,然后只把自己要的部分加回来。
这背后是一种很明确的架构取向:与其让每一个用户都背着一台长满功能的整机,不如让核心保持小,其余全部可插拔。对团队来说还有一层现实好处 —— 想要的功能不用等官方排期。
官方顺手给了三个「团队可以自己搭的信号量」的例子,正好对应三种典型诉求:
- CI/CD 状态:一个 Mod 在对话旁边开一块面板,显示流水线状态,构建成功或失败时实时更新;
- 生产保护:一个 Mod 要求任何碰到生产配置的命令都必须先确认;
- 审计日志:一个最先加载的 Mod,可以把其他所有 Mod 发出的每一次调用都记下来 —— 这正好利用了「先加载者先看到事件、最后拿到结果」的顺序语义。
最后这条差不多是把「加载顺序」当成了权限模型在用:谁先加载,谁就能看得见所有人。
生态:官方只发了 4 个,社区目录已经挂出 35 条
发布当天,社区就自发组织起了目录。claudecodemods.com 把自己定位为「Claude Code 的 mod / 插件 / 技能 / agent / hooks / MCP 服务器」社区索引,每条都链到源码,并标注「Built in(内建)」或「Source verified(来源已验证)」。它页面上显示「35 条结果里的 5 条」,其中 4 条是 Anthropic 随 Claude Code 一起发布的内建 Mod:

agents-md:让 Claude Code 把AGENTS.md当作项目指令来读,就像它读CLAUDE.md那样;diff:就是那个搬到 Mod 里的/diff;sec-default:前面说的安全默认值;telemetry:在引擎的create折叠点加$.telemetry,让内建插件能记录第一方分析数据、批量上报,并拒绝已安装的第三方插件使用。
(telemetry 拒绝第三方插件这一条,配合前面的 sec-default,基本能看出 Anthropic 对「谁能拿数据、谁能改策略」的答案:先加载的几个内建 Mod 拿着钥匙。)
社区那边的进展速度也值得一提:据当日的行业汇总,发布 24 小时内就出现了 token 用量面板、循环(loop)检测、内联 Mermaid 渲染、悬停时遮盖密钥、停靠式 diff 面板等 Mod,甚至有人在 Claude Code 会话里跑起了俄罗斯方块。Anthropic 自己在官方公告发布前就把 Mods 的设计放到了 GitHub 上征集意见 —— 这也解释了为什么生态起量这么快。
还有一个几乎是「元」的用法:你可以用 Claude Code 给 Claude Code 写 Mod。 官方明确说,直接让 Claude 创建一个 Mod,它可以写完 TypeScript、装好,并在当前会话里热加载生效。写一个扩展去扩展你正在用来写扩展的工具,这条循环在一句话里合上了。
那根刺:能力越顺手,风险越不像风险
抛开架构不谈,这次发布最需要读者自己掂量的是能力与风险的对称性。
Mod 能做的四件事里,每一件都有一个「反面用法」:能重写提示词,就能偷偷改掉你给模型的约束;能拦截或重写工具调用,就能让一条命令看起来跑了、其实被换成了别的;能批准权限请求,就能让本该弹出确认的动作悄悄通过;能在 Claude 读到之前清洗工具输出,也就能往工具输出里塞内容。而所有这些都发生在你完全信任的那个终端里、没有沙箱、和 Claude Code 同权限。
官方不是没意识到:sec-default、插件市场管控、托管设置这几样都是冲着这个来的。但它们的保护范围也很清楚 —— 主要面向 Team / Enterprise 与有托管设置的机器,个人用户在本地随手装的一个 Mod,落到的就是那句「只从可信来源安装」上。
所以这一节的结论其实很朴素:Mod 把「Claude Code 有多好」和「你装的代码有多可信」绑在了一起。 在 hooks 时代,风险大致等于「某条 shell 命令会不会乱来」;在 Mod 时代,被开放的是一整个 Agent 循环的事件面。
对开发者意味着什么
把它放回趋势里看,这次发布和最近一个月 Agent 工具线的几个动作是同一个方向的两面:
- 一边是把 Agent 内部状态开放出来(Claude Code 的 Mods、Claude Code 自己的
/agents视图、会话间的消息通道); - 另一边是给 Agent 加上外部的安全壳(比如 NVIDIA 那套把 agent 关进 OpenShell、用 Sentry 在宿主机外面盯着它的方案)。
两边的回答其实互为补集:框架层面开放更多接口,就意味着必须有另一层来兜住「开放」带来的风险。 Claude Code 这次先做了开放,兜底只给了企业侧。
对普通开发者,可立刻变现的点有三个:一是把团队规范变成代码(生产保护、审计日志这两类需求,过去靠 code review 和自觉,现在能写成 Mod);二是省掉等官方排期的成本(一个面板、一个渲染点,自己就能加);三是做一件以前做不到的事 —— 让两个 Agent 会话直接对话,这在多 Agent 协作里是个新的基础件。
但要提醒自己一句:装上别人写的 Mod,性质上等同于 git clone 一个仓库然后 npm install。 官方文档里那句「就像你安装任何一份代码到你的电脑上一样」,读起来轻描淡写,其实是这次发布里最需要认真对待的一句话。
总结
- 一句话:Mod 是挂在 Claude Code 事件上的 TypeScript 函数,能观察、改写或代答事件,装法就是插件;CLI 与桌面端今天可用。
- 机制:
on(eventName, handler)+( $, e, next )中间件链,事件深度冻结、修改必须显式造副本;覆盖工具、提示词、命令配置、回合、会话、子 Agent、界面七组事件。 - 方向:内置功能持续迁出成 Mod,官方希望你把 Claude Code 削成一个小核心、按需加回。
- 代价:没有沙箱,与 Claude Code 同权限;保护措施(
sec-default、插件市场管控)主要落在 Team / Enterprise 侧。 - 生态:官方先发 4 个内建 Mod(
agents-md/diff/sec-default/telemetry),社区目录当天已滚到 35 条,24 小时内出现用量面板、循环检测、Mermaid 渲染等 Mod,甚至有人在会话里跑起了俄罗斯方块。 - 怎么用最稳:把它当团队内部的策略层(生产保护、审计、CI 面板)最划算;装第三方 Mod 前先当它是「要在你机器上跑的代码」。
相关阅读:OpenAI 的 Decisions API 为什么被叫作「Jev 克隆」 | Google Gemini 4 Argon 全解
图片出处:封面与流程/能力示意图由 UU AI Hub 自制;产品界面与文档截图取自 Anthropic 官方博客《Customize Claude Code with mods》原文与 Claude Code 官方文档;社区目录截图取自 claudecodemods.com。