生活分享

Claude Code 推出 mods:用 TypeScript 改写行为与界面,装在 plugin 里

Anthropic 在 2026 年 10 月 1 日发布 Claude Code mods:装在 plugin 里、在 Claude Code 进程内运行的 TypeScript 或 JavaScript 函数,可改写提示、管理工具调用、绘制新界面。Anthropic 说 CLI 与桌面应用都能用、mods 没有沙箱,文档写需要 v2.1.287 以上(2026 年 10 月查证)。

阅读时间约 8 分钟

原创插图:左边一个代表事件的方块,经过中间一张代表 mod 的卡片(两侧各有一个接点),右边的终端窗口显示对话文字与 mod 加上的一块窗格;下方两张虚线卡片代表依次加载的其他 mod;不含商标或界面截图。
图片:Mokaair (© Mokaair)

Anthropic 在 2026 年 10 月 1 日发布 mods(改写 Claude Code 行为与界面的小型程序):用 TypeScript 或 JavaScript 写的函数,装在 plugin 里,在 Claude Code 进程内运行。Anthropic 说 CLI 与桌面应用都能用。

这一篇的数据在 2026 年 10 月 4 日查证,依据 Anthropic 的博客与三页文档。本站没有安装或运行任何 mod,下面的功能与限制都是 Anthropic 的说法。

mods 是什么:装在 plugin 里、在 Claude Code 进程内运行的函数

Anthropic 说 Claude Code 每做一件事就发出事件,mod 是挂在事件上、在事件之前、之后或取代它运行的函数。文档写一个小 mod 有三个文件:.claude-plugin/plugin.json、hooks/hooks.json 与 hooks/register.js;hooks.json 的 modules 字段指向代码文件,有它才算 mod。

文档写 Claude Code 把两种都叫 hooks:设置文件里的 shell 命令、HTTP 请求或提示,下面叫“设置文件 Hook”;在 Claude Code 内部运行的处理函数,叫“mod 的事件函数”。

加载时 Claude Code 调用 register(on),用 on 注册事件函数;每个函数拿到 $(mods API)、e(事件数据)与 next(交给其他 mods 与 Claude Code 原本的行为)。文档列出三种处理方式:观察、改写,以及接手(自己处理,原本的行为不运行)。

能做什么:改提示、管工具调用、绘制界面、添加命令

Anthropic 列出的能力有:在提示送到模型前改写它;拦下、改写或重试工具调用;批准或拒绝权限请求;在 Claude 读到之前遮掉工具输出里的机密;修改或取代部分界面,并添加按钮和输入框。文档补充可绘制窗格与提示框上方的横条,添加不经过 Claude 回合的 /command。

多个 mods 挂在同一个事件上时按加载顺序运行,最先加载的最先看到事件、最后看到结果。内置的 /diff 现在是 mod,可在 /plugin 关掉,或换成自己的版本;文档说停用后 /diff 还在,由内置版本回应。Anthropic 说设置文件 Hook 不能改写事件、绘制新界面或取代功能,mods 可以;文档则写设置文件 Hook 照常运行,没有任何一项被淘汰。下表四者中只有 mod 能绘制界面。

mod、设置文件 Hook、skill 与 MCP server 的比较,依 Claude Code 文档 mods 总览页的比较表缩短,查证日 2026 年 10 月 4 日。
种类是什么能改什么写什么
modplugin 里的函数,由 Claude Code 在自己的进程内调用工具调用、提示、命令、回合,以及界面绘制什么JavaScript 或 TypeScript
设置文件 HookClaude Code 在生命周期事件上运行的 shell 命令、HTTP 请求或提示工具调用或提示放不放行、参数与结果、加给 Claude 的上下文一个脚本,加 settings.json 里的一条设置
skillClaude 读取的 SKILL.md 指示文件Claude 知道什么、做什么Markdown
MCP server给 Claude 提供工具的外部进程或服务Claude 有哪些工具任何语言写的服务器

用在哪:团队的管控与示例 mod

博客举了三个团队可以用 mods 自己做的例子:在对话旁的窗格显示 CI/CD 状态;命令碰到 production 配置前要求确认;由最先加载的 mod 记下其他每个 mod 的每次调用。

文档的三个示例 mod 在 claude-code-playground 仓库,照原样分享、不提供支持:token-weather 在提示框上方绘制上下文窗口的预报;blast-radius 拦下 rm -rf 或 force push 这类高风险命令,显示会改动什么;replay-theater 添加 /replay 命令,逐步重放 Claude 上一轮的文件修改。

内置的 mods 列在 /plugin 的 Installed 标签页 Built-in 底下,例如接手 /diff 的 cc-plugin-diff 与最后一节的 cc-plugin-sec-default;cc-plugin-you-should-know 默认关闭,文档写“if available for your org”才会列出。

四格图解:事件(工具调用、提示、画面)、函数(观察、改写或接手)、界面(窗格、按钮、命令)、管控(sec-default 先加载)
Claude Code 的 mods 接收工具调用、提示与画面等事件,以函数观察、改写或接手,能添加窗格、按钮与命令;在有 managed settings 的电脑或以 Team/Enterprise 方案登录时,内置的 sec-default 先加载。依 Anthropic 博客与 Claude Code 文档整理,查证日 2026 年 10 月 4 日。 · 图片:Mokaair (© Mokaair)

怎么开始用:版本、安装、请 Claude 写或自己写

文档写 mods 需要 Claude Code v2.1.287 或以上、默认开启,用 claude --version 检查。博客说可从 Claude directory 或在 CLI 运行 /plugin 安装含 mods 的 plugin;文档写格式是 /plugin install 名称@marketplace。

自己写不需要 Node.js 或 build step;用 claude --plugin-dir 加目录只在一个会话加载,文件一改就热重载。请 Claude 写时,文档说它依内置的 plugin-authoring skill 把 mod 写在 ~/.claude/dev-mods/ 的会话文件夹,要你批准才加载,超过 cleanupPeriodDays 会被删除。

安装别人的 mod 前,可以先取得 plugin 的文件、运行 claude plugin validate,不必运行 mod 就能列出它处理的事件与调用的方法。

文档写,mod 的界面绘制在终端与桌面应用的 Code 标签页(Code 标签页画不出仅限终端的元素);桌面应用的 WSL 会话不能用 plugins,事件函数不运行;VS Code 扩展的聊天面板、claude -p、Agent SDK 与云端会话(限送得进去的 plugin)只运行不绘制;用 Remote Control 时,事件函数在你电脑上的会话运行、绘制在你电脑的终端。

安全与企业管控:没有沙箱,管理员可以怎么管

文档写 mods 没有沙箱、以你的权限运行:能读取环境变量与设置文件(包括里面的 API key)、在你被询问之前批准工具调用、用你的方案或 API key 调用模型,但改不了权限提示本身;开了沙箱也只隔离 Claude 运行的 Bash 命令,mod 启动的程序在沙箱外。

内置的 sec-default 在电脑有 managed settings,或以 Team、Enterprise 方案登录时加载;用 API key 或 Amazon Bedrock、Google Cloud、Microsoft Foundry 的人,只在有 managed settings 的电脑才有。它只拦下用户的 mod 改动管理员管理的内容(例如受管设置文件 Hook 收到与决定的事、系统提示)与批准 deny 规则拒绝的工具调用,其他都允许;deny 规则也管不到 mod 自己的 $.fs 与 $.process 调用。

管理员的开关包括:allowManagedModsOnly 拦下用户带来的 mods;disableSideloadFlags 拒绝 --plugin-dir、--plugin-url 与 Claude 在会话里写的 mods;prependPlugins 与 appendPlugins 决定组织 mod 的顺序,设置 prependPlugins 要列出 sec-default@builtin 才保留内置 guard;managed settings 的 disableAllHooks 连组织的 mods 与受管的设置文件 Hook 都停。

个人可在 /plugin 的 Installed 标签页停用单个 mod,以 --safe-mode 停掉一个会话的已安装 mods(其他自定义也停),或在 ~/.claude/settings.json 设置 disableAllHooks(设置文件 Hook 与自定义 status line 也停,组织管理的照常);后两者不停内置 mods。

常见问题

要什么版本才能用 mods?

文档写 mods 需要 Claude Code v2.1.287 或以上,默认开启,可以用 claude --version 检查。

写 mod 要不要装 Node.js 或做 build step?

文档写不需要。自己写 mod 不需要 Node.js 或 build step。

mods 会取代设置文件 Hook 吗?

不会。Anthropic 说的是设置文件 Hook 做不到的事,mods 做得到;文档写设置文件 Hook 照常运行,没有任何一项被淘汰。

怎么关掉 mods?

单个 mod 在 /plugin 的 Installed 标签页停用;一个会话用 --safe-mode 启动,其他自定义也停;或在 ~/.claude/settings.json 把 disableAllHooks 设为 true,这会连设置文件 Hook 与自定义 status line 一起停,组织管理的照常。--safe-mode 与 disableAllHooks 都不会停掉内置 mods。

个人方案也能用 mods 吗?

博客只写 mods 在 Claude Code CLI 与桌面应用都能用。这里引用的博客与三页文档,到查证日 2026 年 10 月 4 日都没有逐一写各个方案能不能用。

VS Code 扩展与云端会话能用 mods 吗?

文档写,mod 的事件函数在 VS Code 扩展的聊天面板会运行,云端会话则是对送进云端的 plugin 会运行,但两者都不绘制窗格或横条。

最新旅游情报攻略

资料来源

生活分享