当前位置: 首页 > news >正文

LLM之Agent(五十四)|Claude Code Plugins指南 —— 把超级英雄集结成复仇者联盟

你有没有遇到过这种情况:在 Claude Code 里配好了一堆 Slash Command、Skill、Hook,换台机器就得重新来一遍?新项目开张,又得从头搭建工作流?想跟团队分享一套好用的配置,只能靠「手动复制 → 粘贴 → 祈祷不要漏文件」?

如果你点头了,那你需要的就是Plugin(插件)

在这之前,我们用一系列文章聊过怎么用 CLAUDE.md 给项目设定上下文、用 Slash Command 和 Skill 把重复任务变成可靠工作流、用 Hook 在关键执行节点卡住行为边界。这些能力单拎出来都很强——像钢铁侠、蜘蛛侠、雷神,各自能打。但拯救世界需要的是复仇者联盟。Plugin 就是那个把各路英雄集结在一起的机制。

本文会从插件的基本概念、安装使用、开发调试,到它的局限性、竞品对比和未来走向,一口气讲清楚。


01 什么是 Plugin?

Claude Code 官方对 Plugin 的定义很清晰:

Plugin 是一种轻量级的方式,可以将 Slash Command、Subagent、MCP Server、Hook 的任意组合打包和分享。

官方文档还特别强调:

Plugin 将是我们打包和分享 Claude Code 自定义功能的标准方式,随着更多扩展点的加入,这个格式会持续演进。

说白了,Plugin 就是给 Claude Code 装上一个「应用商店」机制。它不创造新能力,而是把已有的能力——命令、技能、子代理、钩子——打包成一个有名字、有版本号、结构清晰的可分发单元。

为什么需要 Plugin?

核心原因是复用。

场景

没有 Plugin

有 Plugin

换机器工作

手动复制 .claude/ 目录,容易漏

一条命令安装,版本一致

新项目启动

重新配置一遍,痛苦

/plugin install 搞定

团队协作

靠口头或文档传配置

项目级安装,继承进仓库

更新能力

不知道谁用的是哪个版本

manifest 里的版本号一目了然

避免冲突

两个团队都定义了 /review 命令

命令自动带上命名空间

更关键的是命名空间机制。每个 Plugin 都用自身名称作为组件的前缀。比如某个插件里的命令是/team-plugin:hello而不是/hello,即使多个来源的插件有同名的组件,也不会打架。

想象一下,如果你的 .claude/ 目录里有两个同名 Skill 会发生什么——混乱。Plugin 的命名空间机制从根上解决了这个问题。


02 安装和使用 Plugin

要理解安装流程,先得分清两个概念:Marketplace(市场)Plugin(插件)

简单来说,Marketplace 是目录,Plugin 是应用。一个 Marketplace 本身不包含任何能力,它只是告诉 Claude Code「这里有这些插件可以装」。就像手机里的应用商店——你先打开商店,再选 App 下载。

安装步骤

第一步:添加 Marketplace(如果需要)

Anthropic 的官方市场claude-plugins-official在 Claude Code 启动时就自动可用了,不需要手动添加。

对于第三方市场,你得先告诉 Claude Code 去哪儿找。最常见的方式是用 GitHub 仓库地址:

/plugin marketplace add OthmanAdi/planning-with-files

也支持各种其他来源:

# 任何 Git 仓库(GitLab、Bitbucket、自建仓库都可以)/plugin marketplace add https://gitlab.com/my-team/ai-plugins.git# 指定分支或标签/plugin marketplace add https://gitlab.com/my-team/ai-plugins.git#dev/plugin marketplace add https://gitlab.com/my-team/ai-plugins.git#v1.0.0# 本地目录/plugin marketplace add /Users/jimmy/work/ai-plugin-marketplace# 远程 marketplace.json/plugin marketplace add https://example.com/marketplace.json

所有仓库源的共同要求是:必须包含.claude-plugin/marketplace.json文件。

第二步:安装插件

# 官方市场插件(市场名自动可用) /plugin install frontend-design@claude-plugins-official # 第三方市场插件 /plugin install planning-with-files@planning-with-files

安装后记得运行/reload-plugins激活。

安装范围

安装时你可以选择作用域:

  • user 范围:对你所有项目都有效(默认)

  • project 范围:写入.claude/settings.json,可随仓库分享给协作者

  • local 范围:只对你在当前仓库生效

# 从终端安装 claude plugin install planning-with-files@planning-with-files # 指定作用域 claude plugin install planning-with-files@planning-with-files --scope project

两种管理方式

方式一:在 Claude Code 内部使用/plugin命令会打开一个交互式界面,四个 Tab 页,适合浏览和选择。

方式二:在终端使用claude pluginCLI 命令适合脚本和批量操作,不用进交互界面。

加载本地插件

开发调试时,可以直接用--plugin-dir加载本地目录:

claude --plugin-dir /Users/jimmy/work/dev-helper# 也支持直接加载 .zip 压缩包claude --plugin-dir /Users/jimmy/work/dev-helper.zip

--plugin-dir加载的插件与已安装的插件重名时,当前会话优先使用本地版本——方便在不卸载已安装版本的情况下测试修改。

日常管理

# 启用/禁用后记得重载 /plugin disable <plugin-name> /plugin uninstall <plugin-name> /reload-plugins # 应用更改

⚠️一个重要警告:删除 Marketplace 会同时卸载从该市场安装的所有插件。


03 开发 Plugin

开发 Plugin 的门槛比你想象的低。最小的插件只需要一个目录,里面放一个清单文件。

最小插件结构

my-plugin/ ├── .claude-plugin/ │ └── plugin.json # 唯一允许放在此目录的文件

plugin.json的内容:

{ "name": "my-first-plugin", "description": "A greeting plugin to learn the basics", "version": "1.0.0", "author": { "name": "Your Name" } }

各字段的含义:

  • name:既是唯一标识符,也是执行命令时使用的命名空间

  • version:使用语义化版本号管理发布

  • description:在插件管理器中显示

添加能力

有了身份之后,就可以往插件里加料了。能力放在特定目录下:

my-plugin/ ├── .claude-plugin/ │ └── plugin.json ├── commands/ # Slash Command ├── skills/ # Skill ├── agents/ # Subagent ├── hooks/ │ └── hooks.json # Hook 配置 └── .mcp.json # MCP 服务器配置

如果需要代码智能,还可以加.lsp.json

💡最容易踩的坑:除了plugin.json.claude-plugin/里面,其他目录和文件都必须放在插件根目录,不能放进.claude-plugin/目录下,否则 Claude Code 不会加载。

什么是 LSP?

LSP(Language Server Protocol)代码智能连上语言服务器后,可以提供跨文件的项目级代码理解:跳转到定义、查找引用、类型信息、符号分析。这能帮 Claude Code 更准确地读写代码。

开发中的重要变量

插件安装后会被复制到缓存目录。如果你的 Hook 脚本需要引用插件自带的文件,不能硬编码路径。必须用${CLAUDE_PLUGIN_ROOT}来定位插件根目录:

"${CLAUDE_PLUGIN_ROOT}/hooks/run-hook.cmd"

这样无论在什么机器、什么缓存路径下安装,脚本都能被正确找到。

调试最佳实践

写完后怎么调试?最简单的方式是--plugin-dir

claude --plugin-dir ./my-plugin

加载多个就这样:

claude --plugin-dir ./my-plugin --plugin-dir ./another-plugin

发现 bug 修完代码后,在 Claude Code 里运行/reload-plugins就能重载改动,不用来回重启

从已有配置迁移

如果你已经在.claude/下有了命令和 Skill,迁移成 Plugin 也很直接:

  1. 创建插件目录,写好plugin.json

  2. .claude/commands/.claude/agents/.claude/skills/的内容复制进去

  3. settings.json里的 hooks 对象移到hooks/hooks.json(格式不变)

这样就完成了从零散配置到插件的迁移。稳定之后加上marketplace.json放到市场仓库里,别人就能安装了。


04 Plugin 的局限和不足

Plugin 作为分发机制虽然方便,但它还是个相对早期的能力。一旦用于团队协作和复杂工作流,几个明显的问题就暴露出来了。

插件内 Subagent 能力受限

这是最需要注意的一点。即使 Subagent 的 frontmatter 里写了 hooks、mcpServers、permissionMode,插件里的 Subagent 运行时会忽略这些字段

原因也不难理解:Subagent 本身就是更受限的执行单元。如果允许它在插件里注册 Hook、附加 MCP 服务器或修改权限模式,等于让一个低权限角色能修改执行流程的控制规则——这从根本上突破了安全边界。

所以虽然是合理的限制,但插件开发者需要提前知道:插件里的 Subagent 能力不等于本地的 Subagent。受影响的功能逻辑要用其他方式实现。

市场缺乏分类,插件内容不透明

发现难。当前的市场就像一张扁平的插件列表,没有分类、标签、筛选。浏览主要靠插件名字和描述。插件少的时候还能凑合,等生态长大了,类似功能的插件一多,找对的就越来越难了。

信任难。安装插件意味着在你的机器上引入了一段可以任意执行的代码——它的 Hook 能跑 Shell 命令,MCP Server 能建立外部连接,命令能给上下文注入提示。但在安装之前,你很难看清这个包里到底装了些什么。

官方文档明确说:Anthropic 不控制也无法验证插件里的 MCP 服务器、文件或其他软件。安装之前,确保你信任这个来源

插件粒度问题

看看现在已有的插件,你会发现一个有趣的现象:有些插件极度轻量,可能就包含一个 Skill。一个组件占据整个插件,却要走完整的 plugin.json、目录结构、版本管理的流程。好比用集装箱运一个信封。

实际上,业界已经有更轻的方式安装 Skill:

npx skills add <package>

这是 Vercel Labs 的开源 CLI 工具,定位是 Skill 的包管理器——就像 npm 管理 JavaScript 包一样,它管理 AI Agent 的 Skill 包。最关键是它是跨 Agent 的:同一个 Skill 可以被 Claude Code、Codex、Cursor、Gemini CLI 用,不绑定任何工具。

两者的本质区别在于工作层面不同

维度

Skills(npx skills)

Plugin

本质

内容:SKILL.md + 脚本/资源

容器:Skill + Hook + Subagent + MCP

粒度

单一技能

完整协作约定包

跨 Agent

是,不绑定

否,绑定 Claude Code

适合场景

独立 Skill

整套工作流规范

所以什么时候该用哪个?只有独立 Skill,npx skills就够了。需要分发一整套协作规范,选 Plugin。


05 与其他 Coding Agent 插件系统对比

进入 2026 年后,几乎所有主流 Coding Agent 都在往插件方向走。Claude Code 起步相对早,而 2026 年上半年,Codex、Cursor、Gemini CLI 也都加上了对应机制。插件已经从 Claude Code 的特色,变成了这代 Coding Agent 的标配能力。

维度

Claude Code Plugin

Codex Plugin

Cursor Plugin

Gemini CLI Extension

发布时间

较早

2026 年 3 月

2026 年 2 月(v2.5)

2026 年

核心概念

能力打包分发单元

技能+应用+MCP打包

编辑器深度集成的开发流程包

围绕 MCP 扩展 CLI

清单文件

plugin.json

manifest.json

plugin.json

extension.json

能力结构

skills/, hooks/, .mcp.json

skills/, apps/, .mcp.json

skills/, hooks/, .mcp.json

hooks/, .mcp.json

产品定位

终端 Agent 编码+团队工作流复用

应用连接+跨服务自动化

端到端产品开发(Linear→Figma→代码→部署)

Google Cloud 生态+开箱即用工具

虽然功能架构差不多,但不能直接互换使用。最典型的例子是 Hook:

  • Claude Code 的事件名:UserPromptSubmitPostToolUseStop

  • Gemini CLI 的事件名:BeforeAgentAfterToolSessionEnd

名字都完全不同。换句话说,即使把一个插件目录原样复制过去,大概率跑不起来。


06 插件会重复 GPTs 的轨迹吗?

2023 年底,OpenAI 发布了 GPTs——愿景和今天的 Plugin 如出一辙:任何人都能创建定制 AI 助手,通过 Store 分发甚至变现。但后来大家也看到了:大量 GPTs 只是套了壳的提示词,Store 缺乏有效的质量筛选和发现机制,创作者没有可持续的收入模式。GPTs 至今还在,但远没成为曾经畅想的新生态。

Plugin 身上也有类似的警示信号:

  • 内容同质化风险:大量依赖提示词驱动的 Skill 和 Command

  • 市场发现和审核机制薄弱

  • 开发者缺乏激励:大部分靠社区贡献,没有明确商业化路径

但 Plugin 和 GPTs 有一个本质区别

GPTs 面向的是写文案、做图、查信息这类通用需求。用户试一下就走了,粘性不高。Plugin 面向的是开发团队的刚需:统一编码规范、沉淀领域知识、自动化工作流。一个已经嵌入 CI/CD 管线的代码审查插件,不会因为热度褪去就被抛弃。

所以哪怕长尾热度消退,头部的高价值工作流插件依然有坚实的基础持续使用。

问题最终还是取决于 Anthropic 的态度:他们是真的打算在发现机制、质量标准、开发者激励上持续投入,还是只把 Plugin 当做功能清单上的一个勾?

目前来看,底层的 Plugin 机制是扎实的,但生态基建还有很长的路要走。


总结

Plugin 解决的核心问题,是把 Claude Code 零散的自定义能力变成可管理、可分发的单元。

回顾这个系列,我们走通了 Claude Code 各组件的使用和分发。Plugin 的安装、版本管理、市场分发、组件组织已经有了比较完整的设计。

但往更大的 Coding Agent 生态去看,要把一个插件直接复用到另一个 Agent 里,目前还不太可行。真正的跨工具互通,距离落地还很远。


📚 参考资料

  • Discover and install prebuilt plugins through marketplaces — Claude Code Docs

  • Create plugins — Claude Code Docs

  • Create and distribute a plugin marketplace — Claude Code Docs

  • Claude Code settings — Claude Code Docs

  • Plugins reference — Claude Code Docs

  • Plugins — OpenAI Codex Docs

  • Plugins — Cursor Docs

  • Gemini CLI extensions


💬 聊一聊

你用 Claude Code 开发过插件吗?或者你对 Coding Agent 的插件生态有什么看法?欢迎留言讨论~

http://www.jsqmd.com/news/1069555/

相关文章:

  • 排产引擎跑得很准,经营目标却总差一截——上海斯歌 APS 中 SOP 模块的技术债怎么还?
  • HarmonyOS 6学习:DevEco Testing故障截图与录屏导出全流程实战
  • 【PCB】——嘉立创EDA快速入门
  • RAG索引生成优化篇(上):Multi-representation Indexing(多表征索引)
  • 数学建模备赛
  • C语言学习笔记20260615-有序升序序列合并
  • RAG-9-Milvus介绍及多模态检索实践
  • 精密机械加工量产为何两难?精度和效率如何兼得?
  • 把 SAP PI/PO 通信通道变成可复用资产,从 Channel Template 到 Copy Existing Channel 的实战理解
  • 图像预处理全解|全网独家工况复盘 训练推理预处理对齐、畸变降噪自适应调优、定制流水线搭建、量产避坑指南、助力YOLO检测/OCR识别/工业缺陷/遥感分割全域提准提速
  • 计算机毕业设计之校园社团网络招聘系统
  • SQL练习题-基础查询、条件查询、高级查询、多表查询、常用函数练习题集合
  • 从零开始做一个高校课程资料 AI Agent 问答系统(三)上传资料全流程
  • 算法-k个一组翻转链表
  • 下班回家还要挑灯检查作业?这款AI作业批改工具,把家长从“修行”中解放了
  • LAC容器化授权困境(下篇):K8s环境下的授权锚定实战
  • 机器学习入门:逻辑回归原理、损失函数与梯度下降推导
  • C.3 DRM/TTM 灵魂拷问 100 问: 解释下 AMDGPU_GEM_CREATE_VRAM_CLEARED 标志的作用和实现原理
  • 计算机毕业设计之基于jsp新能源汽车租赁系统
  • 适合小白的嵌入式软件项目(C++)详解-----卡码缓存系统(二)实现最简单缓存
  • 新e选烤火罩异味[主面料] QB/T 4045—2010 5.8 判定符合检测标准与测试条件
  • 使用langchain4j遇到的难题(暂记)
  • 无人机电力营销落地瓶颈深度解析|四大核心壁垒、运维营销业务差异化、实景落地案例、全套YOLOv8电力AI视觉工程实现
  • 从零剖析十路充电桩嵌入式源码----软件开发环境搭建【3.1】
  • ivs-nat与nginx四层代理区别
  • eclipse设置豆沙绿背景色
  • 做 excel 表格用哪个智谱清言软件文档导出,AI 导出鸭专业适配表格导出,结构精准无需手动调整
  • 字符串的格式化问题 字符串的常规操作
  • deepspeed,vllm,llamafactory的使用
  • Kimi Work 来了:月之暗面发布桌面 Agent,知识工作者的“Vibe Working“时代开启