Claude Code mod 可以添加实时仪表盘、拦截 Shell 命令,甚至改变模型看到的内容。Anthropic 在官方公告中表示,mod 是以插件形式分发的 TypeScript 扩展,拥有与 Claude Code 相同的机器访问权限;目前 API 仍处于早期访问阶段。
先搞清楚信任边界,再运行安装命令
Claude Code mods 本质上是封装在 Claude Code 插件中的小型 TypeScript 函数。它们可以监听事件、在默认行为执行前改写事件,也可以直接返回结果。Anthropic 给出的示例包括上下文追踪、命令影响预览、编辑回放,以及后续提示建议。
Mods 并不运行在沙箱中。因此,第三方 mod 应该被视为一段安装到本机的代码,而不是无害的主题文件或提示词文件。
“Mods 对你机器的访问权限,与 Claude Code 本身相同。”——PJFP 于 2026 年 10 月 1 日发布的指南
一项针对真实用户的扫描检查了 31 个 mod,重点关注这些扩展能否执行命令、访问网络,以及查看提示词和工具调用(u/wh4avy)。安装前,务必先确认每个 mod 的权限范围。
Claude Code mods 到底能改变什么
Mod 位于插件的 hooks 模块中,并导出一个 register 函数。这个函数会为 tool.call、turn.start、turn.complete、command.run 和 ui.render 等事件注册带类型的处理器,具体定义可参考社区学习文档。
它主要有三种工作模式:
- 观察:检查事件,调用
next(e),不改变结果。 - 改写:修改事件后再转发,例如为命令添加保护规则。
- 直接响应:直接返回结果,例如拒绝某次工具调用,不再将其继续传递。
官方展示页展示了这些能力的实际效果。Token Weather 会显示上下文使用量;Blast Radius 会在执行前显示 rm -rf build 将影响 9 个文件和 1.1 MB,并提供 Proceed 或 Cancel 选项;Replay Theater 则会以五步流程展示跨越三个文件的编辑过程。
Mod、插件、传统 hook、MCP 服务器和 skill 有什么区别
这些概念确实有重叠,但它们解决的是不同的扩展需求。
| 机制 | 可以理解为 | 主要用途 | 关键限制 |
|---|---|---|---|
| Mod | 使用 TypeScript 函数 hook 的插件 | 拦截引擎事件并绘制 UI | 处于早期访问阶段;不在沙箱中运行 |
| Plugin | 包含多种扩展的打包组件 | 打包 skills、agents、hooks、MCP servers 或 mods | 插件不会自动具备 mod 行为 |
| Classic hook | 经过配置的生命周期处理器 | 在特定事件发生时运行 Shell 命令、HTTP 端点、提示词或子代理 | 缺少直接的类型化控制,通常依赖处理器输出或退出码 |
| MCP server | 外部工具或数据连接 | 让 Claude 访问 issue tracker、数据库或 API | 不是用于拦截引擎事件的层 |
| Skill / slash command | 为某个流程加载的指令 | 教 Claude 执行可重复的工作流 | 无法直接控制工具执行或 UI 渲染 |
所有 mod 都是插件,但并非所有插件都是 mod。如果外部命令已经够用,就选择传统 hook;需要接入外部工具或数据时使用 MCP;只有在需要进程内事件控制或持久化 UI 时,才选择 mod。
安装 mod,别让访问权限在不知不觉中扩大
Anthropic 表示,mods 可以通过 Claude directory 或 /plugin 安装,也可以指定运行于 CLI、桌面应用,或两者同时运行。具体命令可能取决于你使用的 Claude Code 版本,因此请先查看插件当前的 README 和官方文档。
典型的 marketplace 流程如下:
/plugin marketplace add your-org/my-mods
/plugin install token-weather@my-mods
/reload-plugins
在本地开发时,官方公告中的工作流支持在当前会话中创建或加载插件。也可以通过下面的命令加载本地目录:
claude --plugin-dir ./token-weather
将插件源代码纳入版本控制,固定使用经过批准的版本。如果发布者在没有提供可审查版本的情况下改变了行为,就应移除该插件。
一个最小化的函数 hook 结构
一个简单的 TypeScript 观察器可以写成这样:
export function register(on) {
on("tool.call", { tool: "Bash" }, async ($, e, next) => {
return next(e)
})
}
这段代码会原样转发 Bash 事件,不做任何修改。如果要改写事件,可以将修改后的事件传给 next;如果要拒绝调用,则应直接返回拒绝结果。不要把这段示例当成永久不变的接口:函数 hook API 可能会随 Claude Code 版本更新而变化。
按可触达范围审查 mod
Awesome Claude Code Mods scanner 在 2026 年 9 月 17 日的快照中报告了 72 个 mod:30 个会运行宿主进程,11 个会写入文件,24 个会读取文件,14 个会访问网络,24 个可以看到每次工具调用,23 个可以看到每条提示词。
它将权限范围分为几个等级:L0 表示绘制和记忆;L1 表示读取;L2 表示写入文件或运行进程;L3 表示访问网络。这些等级描述的是权限 footprint,而不是质量。真正需要确认的是:每项能力是否确有必要、是否透明可见、是否能够审查。
启用 mod 前,请检查:
- 它会 hook 哪些事件:提示词、工具调用、命令,还是仅限 UI?
- 它能否写入文件、运行进程、访问网络或启动 agents?
- 它是否会在脱敏前读取密钥等敏感信息?
- 代码仓库是否公开、是否有许可证,以及维护者身份是否明确?
- README 是否说明哪些数据会离开本机?
- 是否提供适用于你当前 Claude Code 版本的测试或验证命令?
- 禁用或移除它后,是否会在设置或凭据中留下残留?
Mods 适合做什么,以及我暂时不会用它做什么
比较适合作为第一批项目的,是范围明确的保护和可见性工具:用于生产命令的确认面板、密钥脱敏工具、上下文或成本计量器、CI 状态面板,或者可回放的编辑视图。这些项目都有清晰的事件边界,也能带来直观的用户收益。
不要一开始就使用会静默改道网络流量、自动批准权限,或在没有明确必要性的情况下读取每条提示词的 mod。这些做法会在你测试扩展之前,就扩大信任边界。
对于团队使用,建议先从获批 marketplace 中选择一个小型 mod,记录已批准的版本,测试后续 mod 是否能够绕过拒绝规则,并保留回滚路径。
Claude Code mods 常见问题
Mod 和插件有什么区别?
Mod 是使用 TypeScript 函数 hook 实现行为的插件。普通插件则可以打包 skills、agents、传统 hooks 或 MCP servers。
Mods 能在 CLI 和桌面应用中运行吗?
Anthropic 表示,mods 可以面向 Claude Code CLI、桌面应用,或同时面向两者。具体插件实际支持哪些环境,要看它的 manifest 和文档。
Claude Code mods 是否运行在沙箱中?
不运行。Anthropic 表示,mods 拥有与 Claude Code 相同的机器访问权限。安装前请审查源代码和权限。
Claude Code 能生成 mod 吗?
Anthropic 表示,Claude Code 可以生成 TypeScript、安装 mod,并将其热重载到当前会话中。但生成的代码仍然需要进行源代码审查和测试。
Claude Code mods 是否需要额外付费?
官方公告没有列出 mods 的单独费用。不过,某个 mod 仍可能调用带有自身费用的外部服务或 API。
最安全的第一个 mod 应该是什么?
选择范围小、行为可观察的工具,例如上下文计量器、用于审查破坏性命令的面板,或 CI 状态显示工具。在完全了解其权限范围之前,避免使用广泛拦截提示词或自动批准权限的 mod。
可以先通过 claude --plugin-dir 在本地安装,检查它申请的能力并完成验证,再将其放入共享 marketplace。