METAL LAB

Claude Code支持将团队设置打包成一个插件

Anthropic通过讲座公开了如何用一行安装命令分发技能、钩子、MCP服务器组合

Claude Code支持将团队设置打包成一个插件

摘要

  • Anthropic通过Claude Academy讲座公开了如何将Claude Code设置以技能、子代理、钩子、MCP服务器为单位打包,做成一个插件来分发
  • 个人安装用 /plugin install 组织名@插件名 命令,团队分发则通过 /plugin marketplace add 组织名/仓库名 命令来处理
  • 讲座指出,插件以用户权限运行,钩子会在每次工具调用时自动触发,因此安装前需要仔细核实
Claude Code Plugins: Package a Setup and Ship It to Your Team

曾经靠复制粘贴分发的设置,如今可以打包了

Anthropic官方网站

分散的技能、钩子、MCP设置被打包成一个插件,这个插件通过一行命令安装。图中用箭头展示了安装完成后,钩子在没有确认环节的情况下、每次工具调用都会自动执行的流程。分散的技能、钩子、MCP设置被打包成一个插件,这个插件通过一行命令安装。图中用箭头展示了安装完成后,钩子在没有确认环节的情况下、每次工具调用都会自动执行的流程。

打造ClaudeAnthropic公开了一份讲座,内容是如何将Claude Code的整套设置打包,分发给整个团队。这是Claude Academy课程"Claude Code in Action"的第9讲,讲的是如何把技能、子代理、钩子、MCP服务器捆绑成一个整体,让团队成员只需安装一次就能拿到全部配置。

具体来说,Claude Code可以通过技能、子代理、钩子、MCP服务器来定制不同的行为,而把这整套组合打包成一个文件集合,就是所谓的插件。Anthropic此前已经把社区制作的插件列表每晚镜像到一个GitHub仓库(anthropics/claude-plugins-community)里,而这次的讲座讲的是相反的一面——团队如何自己动手做插件、拿来共享。

为什么现在需要打包

讲座从Claude Code团队常遇到的一个问题说起。哪怕一个人做出了好用的配置文件,想分享给其他团队成员时,往往也只能一个个文件复制粘贴过去。技能文件夹、子代理的Markdown文件、钩子配置、MCP服务器配置各自搬运的过程中,版本很容易对不上,或者漏掉某一部分。插件把这整个流程压缩成一个安装单位,只需一行安装命令,就能把完整配置原样传递过去。

一个插件里能装下什么

组成部分打包形式
技能一个文件夹对应一个技能
子代理一个Markdown文件对应一个
钩子在hooks/hooks.json中定义,每次工具调用都会执行
MCP服务器在mcp.json中定义
部分设置settings.json中仅agent、statusline字段生效

除此之外,还能加入语言服务器协议(LSP)服务器、后台监控程序、主题等内容。清单文件放在.claude-plugin/plugin.json里,其中只有name字段是必填项,version、description、author都是可选的。即便完全不做清单文件,Claude Code也能仅凭文件夹结构自动识别各个组成部分。

具体怎么使用

安装和打包各自对应不同的命令。

方式命令适用范围
个人安装/plugin install 组织名@插件名立即安装到当前会话
团队分发/plugin marketplace add 组织名/仓库名此后所有安装都经由该市场进行

想使用别人做的插件,只需在会话中输入一行斜杠命令即可。如果要分发给整个团队,则要先注册一次私有市场,之后所有安装都会经过集中式的检索、版本追踪和更新管理。

自己动手制作时,可以直接沿用已经在用的.claude目录结构。把skills文件夹、agents文件夹、hooks.json、mcp.json放到插件根目录,再用plugin.json起个名字就完成了。名字本身就成为命名空间,采用"公司名/技能名"的形式,就不会和其他插件的技能发生冲突。举例来说,如果一个团队已经把内部代码审查规范和部署检查清单做成了技能和钩子,那么只需在现有结构上加一个清单文件,就能通过一行安装命令交给新入职的团队成员。

钩子在悄悄运行

讲座也提到了这份便利背后的风险。插件以用户权限原样执行代码,而钩子会在符合条件的所有工具调用中自动触发。哪怕只是为了用某个技能而安装插件,该插件里的pre_tool_use钩子和stop钩子也会一并跟着来,即使你从没读过它们的内容。

讲座指出,社区插件可能包含一个退出钩子,在设置界面上不会有任何警告,却会调用某个网络接口。

不同的安装路径,审核力度也不一样。通过应用内提交表单上传的插件,会经过Anthropic的自动审核后才进入社区市场,而官方市场则是由Anthropic另行手动筛选。不过,"通过审核"和"值得信赖"是两回事,用户仍需自行确认插件附带了哪些钩子、代理、MCP服务器。由于插件不会覆盖原有设置,而是与之并存运行,钩子之间会相互叠加,导致同一次工具调用可能同时触发多个钩子。

编辑视角

这次讲座讲的不是新功能,而是把已有功能扩展到团队规模的方法。Anthropic上个月把社区插件镜像到GitHub、打通了分发渠道,这次则补上了渠道里要流通的"货物"——也就是把个人设置打包的具体流程。从先后顺序看,能读出Anthropic的策略:先铺好流通渠道,再扩大生产者规模。

从npm安装转向脚本安装,以及把社区市场镜像到仓库,指向的其实是同一个方向:把Claude Code从个人工具推向团队标准工具。在这个趋势下,实际使用的组织更该关心的不是工具本身,而是核查的习惯。为了用一个技能而安装的插件,却顺带把钩子也带进来了,这一点不能轻描淡写地略过。尤其是像处理内部代码库这类敏感数据的团队,更应该把"安装前打开清单文件和hooks.json、确认哪个工具会向哪里发出调用"定为标准流程。

从实际把编码代理工具用于工作场景的经验来看,每当便利功能增加,核查环节总容易被往后推。这次的插件结构也不例外。安装越是靠一行命令变得轻松,团队就越需要养成查看这行命令背后到底带来了什么的习惯,才能避免出事。可以预见,接下来几周里,会有更多团队做出并分发内部标准插件的案例,但与此同时,直接安装未经核实的社区插件而出问题的案例,恐怕也会随之增多。

评论