- 克劳德代码 2.1.287 10 月 1 日,Claude Mods 上线,允许 JavaScript 和 TypeScript 插件接入提示、工具调用、权限和界面。
- 模组以插件的形式发布,并以用户的权限运行;它们没有沙盒机制,可以访问文件、进程、网络请求和密钥等机密信息。
- 安全控制包括加载顺序、团队和企业或受管机器的 sec-default 保护、allowManagedModsOnly、claude 插件验证、--safe-mode 和 disableAllHooks。
- Anthropic 的示例模组包括 TokenWeather、Blast Radius 和 Replay Theater,而 /diff 和 AGENTS.md 支持等官方功能已经是基于模组的。
Anthropic 已将Claude Mods 添加到 Claude Code 2.1.287版本中,该版本于 10 月 1 日发布到 npm。此功能允许使用 JavaScript 或 TypeScript 构建的插件连接到编码代理中的内部事件,以便它们可以监视正在发生的事情并改变结果。
该公司将模组描述为比早期自定义选项更深层次的功能。它们以插件的形式安装,旨在同时在命令行界面和桌面应用程序中运行。Anthropic的官方文档警告称,模组以用户权限运行,这使得该功能成为关于可扩展性、信任和控制等更广泛议题的核心。
哪些模组可以修改克劳德代码?
模组由事件处理程序驱动。Claude Code 在调用工具、接收提示、请求权限或重绘屏幕部分内容时会发出事件。根据文档,事件处理程序可以观察事件、修改事件或接管事件。这使得作者能够在提示到达模型之前对其进行重写、阻止或重写工具调用、处理权限请求、替换界面元素或添加新功能。
开发者原本就可以通过多种方式来个性化该工具:配置文件、CLAUDE.md 中的持久化指令、钩子、MCP 服务器、状态行和输出样式。这些方法可以影响指令、权限和可用工具,但无法取代内置功能或重塑界面。而 Mod 的设计理念更进一步,它与决定提示、工具输出和权限在系统中如何传递的事件层处于同一层级。
该机制最初于 9 月初在 GitHub 上以“函数钩子”(function hooks)之名公开讨论。Anthropic 后来将其更名为“Claude Mods”,但仍保留了“函数钩子”作为技术基础。在 2.1.287 及更高版本中,Mods 默认启用,其代码在整个会话期间保持活动状态,这使得它们能够记住事件之间的状态,并支持实时面板、命令、进程或工具,这些功能都暴露给模型。
Anthropic 已经在自己的一些项目中使用了这种架构。/diff面板和 AGENTS.md 支持被描述为基于模块的,其源代码已发布在 Claude Code 代码库中。/diff 功能现在以模块的形式提供,可以禁用或替换。该公司表示,计划随着时间的推移将更多内置功能迁移到这一层,这意味着核心将更加精简,以便生态系统可以对其进行修改。
Claude Code 的创始人 Boris Cherny 将这种改变归结为围绕个人工作流程展开。他在 X 杂志上表示,人们的工作方式各不相同,因此没有理由让每个用户在使用智能助手时都拥有完全相同的体验。他提出的“模组”概念,允许用户通过简单的请求来改变工具的外观和行为,然后将这些更改打包成插件供其他人安装。Anthropic 的技术人员 Addy Osmani 在一篇博客文章中也表达了类似的观点:模组让开发者能够根据自己的工作方式来定制工具,而不是接受单一的固定设置。
安全边界、沙盒和权限提示

此次发布最敏感的部分在于访问权限。Anthropic 声明,模组并未进行沙盒隔离。即使启用沙盒,Claude 运行的 Bash 命令也会被隔离,但模组启动的进程则不受此隔离限制。模组可以读写文件、启动进程并发出网络请求。它还可以检查环境变量和设置文件,包括存储在其中的 API 密钥。文档建议用户仅从信任的作者和市场安装模组。
Anthropic明确划定了一条界限。模组可以重绘Claude Code的大部分界面样式,但不能更改权限提示或其显示的内容。无论模组重绘多少周围的UI ,审批对话框始终是Claude Code自身的。同时,拥有工具调用审批权限的模组可能会批准一些原本会被普通询问规则质疑的操作,或者一些已被用户PreToolUse钩子阻止的操作。
当多个模组调用同一事件时,加载顺序至关重要。它们按照加载顺序运行,最先加载的模组会最先看到事件,但最后接收最终结果。在团队版和企业版套餐以及任何启用了托管设置的机器上,Anthropic 开发的名为sec-default 的模组会在用户安装的模组之前加载。它的目的是阻止诸如覆盖权限拒绝规则之类的风险行为,Anthropic 表示可以查看其源代码。管理员也可以选择优先加载自己的模组,但该公司建议他们将 sec-default 也添加到加载列表中,以确保其限制生效。
在这些受保护的环境之外,模组可以覆盖某些权限设置。插件市场也受到控制:团队版和企业版所有者在管理控制台中进行配置,而 Claude API 和第三方 API 计划的管理员则将托管设置推送至服务器。这就将部署问题转化为治理问题:哪些模组优先加载,以及由谁决定加载顺序。
安装、验证和关闭模组
模组的分发方式与插件类似,可以通过插件市场(包括 GitHub 代码库)进行共享。在加载模组之前,管理员或用户可以运行`claude plugin validate` 命令来检查插件目录。该命令会列出模组处理的事件以及它请求的操作(例如读取文件或发起网络请求),而不会执行代码。Anthropic 建议在安装模组之前检查其钩子,而不是之后。
有几种方法可以禁用此功能。可以在 `/plugin` 目录下的“已安装”选项卡中禁用或卸载单个插件。使用`--safe-mode`参数启动会话会关闭模组以及其他自定义设置。在 `~/.claude/settings.json` 文件中将 `disableAllHooks` 设置为 `true` 也可以禁用此功能。组织还有一个单独的控件 `allowManagedModsOnly`,它可以阻止用户安装的模组加载,同时保持每个插件的其他部分(包括技能、命令、代理和 MCP 服务器)正常运行。
版本可用性并不统一。Mods 需要 Claude Code 2.1.287 或更高版本,并且默认已启用,但截至 10 月 2 日,npm 注册表的 stable 标签仍然指向 2.1.285。latest 和 next 标签指向 2.1.287,这意味着仅使用 stable 渠道的机器可能尚未安装 mods。更早的 2.1.286 版本已于 9 月 30 日发布,修复了与密文编辑相关的问题。
插件会在会话加载插件的任何位置运行。这包括 VS Code 扩展的聊天面板、claude -p 命令、Agent SDK 以及插件访问的云会话。只有终端和桌面应用程序中的 Code 选项卡才会显示插件的窗格和条带。桌面应用程序中的 WSL 会话不会渲染这些内容,因为插件在 WSL 中不可用。因此,在确认该功能已启用之前,必须检查实际的构建和安装渠道。
示例模组和早期实验
Anthropic 在其 claude-code-playground 代码库中发布了三个示例模组,并按原样分享,不提供任何支持。TokenWeather会在提示符上方绘制一个上下文窗口天气预报。它会在 200,000 万个标记的窗口进行到 18% 时显示“晴朗”,67% 时显示“阵雨”,81% 时显示“暴风雨”,同时还会显示最近的使用情况以及最新回合新增的标记数量。Blast Radius会显示一个风险较高的 shell 命令(例如 rm -rf 或强制推送),并显示该命令将导致哪些更改。Replay Theater添加了一个 /replay 命令,该命令会在一个停靠面板中逐步显示 Claude 在上一回合所做的文件编辑。
这些示例与其他任何模组一样,都使用相同的用户权限运行,因此文档反复提醒用户在安装前检查钩子。公告发布后几个小时内,用户就开始进行实验。一位开发者构建了一个模组,用于将凭据传递给 Claude,而不会在对话历史记录中留下底层密钥。其他想法包括实时显示工具调用次数、运行时间和令牌消耗量,并在任务结束后显示摘要。
此外,它还具备自我修改功能。用户可以请求 Claude Code 创建一个模块,该代理可以在同一会话中编写 TypeScript 代码、安装插件并进行热重载。因此,该工具可以在正常的工作流程中重写其运行所遵循的部分规则。对于合规性和审查团队而言,这改变了审计目标:相关的工件不仅包括开发人员部署的内容,还包括模型在运行时编写和执行的内容。
对于企业级部署,插件启用需要单独的审批步骤。团队应记录插件版本、权限、启用者以及禁用方法。发布公告并未包含独立的安全性审查、审计、采用率或安装量数据,也未包含定价信息。此外,该公告属于厂商产品发布,并未报告任何漏洞或安全事件。由于缺少这些细节,企业必须根据自身的策略、可观测性和变更管理流程来验证插件的修改。
总而言之,Claude Code 的 mods 将插件转化为一个扩展层,它能够在用户自身权限下运行,且不受 Bash 沙箱的限制,从而可以修改提示信息、工具调用、界面元素和权限决策。其安全机制依赖于信任、验证、加载顺序以及企业级控制,例如 sec-default 和 allowManagedModsOnly。由于 10 月 2 日稳定的 npm 标签版本仍停留在 2.1.285,团队在确认 mods 可用之前,应先验证实际构建版本。实际问题不在于 mods 是否有用,而在于谁可以编写 mods、哪些 mods 优先加载以及如何审核其更改。
