今天我们推出了Mods,这是一种小型的TypeScript函数,可以改变Claude Code的工作方式。一个Mod可以重写提示语,添加新的用户界面,替换内置功能,或者增加全新的功能。你可以自己编写Mod,也可以让Claude Code帮你写。Mods作为插件的一部分发布,因此你可以像安装和分享任何插件一样安装和分享Mods。它们支持Claude Code的命令行界面和桌面应用。
Mods拥有与Claude Code相同的机器访问权限。它们不受沙箱限制,因此你应当只从可信来源安装Mods,就像安装任何代码一样谨慎。
想了解Mods能做什么,可以阅读我们的入门指南。
我们为什么开发Mods
开发者希望能更灵活地控制Claude Code的行为,而不必等待我们发布新功能。Hooks提供了一部分控制能力,但它们无法重写事件、绘制新界面或替换功能,而Mods可以做到这些。
我们希望Claude Code能真正属于你,让你根据自己的工作方式定制它。我们在GitHub上分享了Mods的设计方案,感谢所有提供反馈的开发者。
Mods的工作原理
每当Claude Code执行操作时,都会触发一个事件,比如调用工具、请求权限或绘制界面。Mod是钩入这些事件的函数。它可以在事件之前、之后或替代事件执行,也可以包裹事件,在事件前后运行代码。通过一个函数,Mod可以:
- 在提示语传递给模型前重写它。
- 阻止、重写或重试工具调用。
- 批准或拒绝权限请求。
- 在Claude读取工具输出前,编辑或删除敏感信息。
Mod还能改变你看到的内容,比如编辑或替换Claude Code绘制的界面部分(工具结果或Claude的问题),添加按钮和输入框,其他Mods可以响应这些交互。目前,Mods可以针对终端、桌面应用或两者。
当多个Mods钩入同一事件时,它们按加载顺序依次执行,先加载的Mod先看到事件,最后得到结果,这样可以叠加不同作者的Mods。
你还可以用Claude Code来修改Claude Code。让Claude帮你创建Mod,它可以编写TypeScript代码,安装并在会话中热加载。
用自己的功能替换内置功能
Claude Code的一些内置功能现在也以Mods形式发布。例如,内置的/diff功能现在是一个Mod,你可以在/plugin中关闭它,或者用自己的版本替换。未来我们计划将更多内置功能转成Mods,让Claude Code保持精简核心,只加载你需要的功能。
团队和企业的Mods
Mods作为插件发布,因此你现有的插件管理权限同样适用。管理员可以允许或阻止插件市场。在团队和企业计划中,管理员可在管理控制台设置权限;在Claude API和第三方API计划中,管理员可以推送管理配置到用户设备。
在团队和企业计划以及任何启用管理配置的设备上,内置的sec-default(安全默认)Mod会优先加载,防止用户安装的Mods执行危险操作,比如覆盖权限拒绝规则。你可以查看它的源码了解具体限制。管理员也可以优先加载自定义Mods,但如果这样做,建议将sec-default加入列表以保留其安全限制。
团队还可以利用Mods构建自定义控制和功能,例如:
- CI/CD状态显示:在对话旁边显示流水线状态,自动更新构建结果。
- 生产环境保护:执行任何影响生产配置的命令前要求确认。
- 审计日志:优先加载的Mod记录所有其他Mods的调用。
快速开始
Mods现已支持Claude Code的CLI和桌面应用。你可以从Claude目录安装包含Mods的插件,或在CLI中运行/plugin命令安装。要分享Mod,请将其打包成插件并提交到目录。


