Claude Code 插件
插件把 Claude Code 扩展打包成可共享单元,便于团队分发 skills、subagents、hooks 和 MCP servers,并支持版本管理和 marketplace 安装。
- 最近核验
- 适用版本
- Claude Code 2.1.x。本机使用 2.1.198 核对 CLI 拼写;官方文档可能描述更新的 2.1.x 行为。
- 核验方式
- 本机 CLI help 和官方文档核对 plugin validation、local loading、namespacing 与 trust boundary;未修改 marketplace、remote archive 或 user plugin directory。
可复现实践
Marketplace 安装前在本地验证最小 Plugin
从一次性目录证明 manifest structure、namespace 和 local load,不改变用户 plugin state。
准备
- Claude Code 提供 `plugin validate` 和 `--plugin-dir`。
- 唯一临时目录。
- 没有 remote plugin URL 或未审查 executable component。
执行步骤
创建最小 local plugin
Manifest 和 skill 放在官方 plugin-root 位置。
步骤 1 PLUGIN_LAB=$(mktemp -d "${TMPDIR:-/tmp}/claude-plugin.XXXXXX") printf '%s\n' "$PLUGIN_LAB" mkdir -p "$PLUGIN_LAB/.claude-plugin" "$PLUGIN_LAB/skills/hello" printf '%s\n' '{"name":"local-audit","version":"0.0.1","description":"Disposable validation fixture","author":{"name":"Local fixture"}}' > "$PLUGIN_LAB/.claude-plugin/plugin.json" printf '%s\n' '---' 'description: Return a fixed local test greeting.' 'disable-model-invocation: true' '---' '' 'Say: local plugin fixture loaded.' > "$PLUGIN_LAB/skills/hello/SKILL.md"不安装地验证
对精确临时路径使用 CLI validator。
步骤 2 claude plugin validate "$PLUGIN_LAB"只加载一个 session
通过 `--plugin-dir` 启动并查看 `/help`,不需要 marketplace 或 persistent install。
步骤 3 claude --plugin-dir "$PLUGIN_LAB"分发前审查
考虑 marketplace 前检查 hooks、MCP、binaries、settings、license 和 update source。
预期结果
Validation 通过,skill 在单一 session 以 `local-audit` namespace 出现,没有持久安装 plugin。
验证
- 每次 manifest 改动后运行 `claude plugin validate`。
- 确认没有意外 hooks、MCP servers、monitors 或 binaries。
- 列出 installed plugins,确认 fixture 未持久化。
失败处理
Validation 失败
修正报告的 manifest/layout 错误,不通过安装绕过。
意外 component 加载
立即退出,检查 plugin root 后再开 session。
清理或回退
- 退出 local session,确认 PLUGIN_LAB 是打印出的 mktemp 路径,只删除该目录。
- 真实 plugin 已安装时先 disable 再 uninstall,并保留 incident evidence。
边界与不适用场景
- Plugin 可携带 hooks、MCP、binaries、agents 和 settings,安装应视为执行代码。
- Valid manifest 只证明结构,不证明来源可信或 runtime 安全。
插件 vs 独立 .claude 配置
`.claude/` 下的独立配置适合个人试验。插件更适合需要共享、命名空间、更新和多仓库复用的场景。
插件可以包含什么
插件目录可包含 manifest,以及 skills、agents、hooks 和 MCP server 定义。marketplace 可让组织 curated 批准后的插件供开发者安装。
| Command | Description |
|---|---|
/plugin | 在会话内打开插件管理器。 |
claude plugin install | 从 marketplace 或本地路径安装插件。 |
claude --plugin-dir | 加载本地插件目录做测试。 |
{
"name": "my-first-plugin",
"description": "Team workflow helpers",
"version": "1.0.0"
}构建与测试插件
创建插件目录,在 `.claude-plugin/plugin.json` 写入 manifest,把 skills 或 hooks 放进插件树,发布前用 `--plugin-dir` 本地验证。
插件生态连接
插件常打包其他主题文档中的能力。插件异常或需要扩展时,应知道去哪里查找。
插件内的 Skills
插件 skill 使用命名空间 Slash commands,例如 `/my-plugin:deploy`。
阅读指南插件内的 Hooks
随插件 manifest 一起分发校验或格式化 hooks。
阅读指南MCP servers
打包组织批准的 MCP servers,保证外部工具访问一致。
阅读指南Subagents
打包 review 或 research agents,支持团队并行工作流。
阅读指南插件最适合的场景
插件特别适合 code review 套件、安全指导、发布自动化、设计系统工作流,以及多个仓库都需要相同扩展能力的场景。
插件检查
先做 standalone
在 `.claude/` 中验证 skills 和 hooks,再打包插件。
阅读指南接受命名空间
插件 skill 通常形如 `/plugin-name:skill`,用于避免冲突。
阅读指南维护 manifest 版本
行为变化时 bump 版本,便于团队跟踪升级。
阅读指南用 --plugin-dir 测试
发布到 marketplace 前先本地验证插件。
阅读指南