教程

Claude Code Plugin 开发指南:创建可共享的扩展包

Claude Code Plugin 开发指南:插件将技能、Subagent、Hooks 和 MCP 服务器打包成可分享的扩展。本文涵盖独立配置 vs 插件的选择标准、四步创建第一个插件(清单/技能/测试)、完整目录结构、代码审查插件实战、发布到 npm/GitHub 的方法,以及插件开发最佳实践。

2026/2/275分钟 阅读ClaudeEagle

Plugin(插件)让你能够将自定义技能(Skills)、子 Agent、Hooks 和 MCP 服务器打包成可分享的扩展,供团队或社区使用。本文介绍如何从零开始创建 Claude Code 插件。

独立配置 vs 插件:如何选择?

方式技能命名格式适用场景
独立配置.claude/ 目录)/hello个人工作流、单项目定制、快速实验
插件.claude-plugin/plugin.json/plugin-name:hello团队共享、社区分发、版本管理、跨项目复用

使用独立配置

  • 为单个项目定制 Claude Code
  • 个人使用,无需共享
  • 在打包前快速实验新技能
  • 想要简短的技能名称

使用插件

  • 与团队或社区共享功能
  • 在多个项目中使用相同的技能/Agent
  • 需要版本控制和便捷更新
  • 通过市场分发

建议先用独立配置快速迭代,满意后再转换为插件分发。

快速上手:创建第一个插件

前置条件

  • Claude Code 已安装并认证
  • Claude Code 版本 1.0.33 或更高(运行 claude --version 检查)

Step 1:创建插件目录

bash
mkdir my-first-plugin

Step 2:创建插件清单

插件清单(.claude-plugin/plugin.json)定义插件的身份:

bash
mkdir my-first-plugin/.claude-plugin

创建 my-first-plugin/.claude-plugin/plugin.json

json
{
  "name": "my-first-plugin",
  "description": "一个学习基础知识的问候插件",
  "version": "1.0.0",
  "author": {
    "name": "你的名字"
  }
}
字段用途
name唯一标识符和技能命名空间(技能会带此前缀,如 /my-first-plugin:hello
description在插件管理器中显示
version使用语义化版本控制
author可选,用于署名

Step 3:添加技能

技能存放在 skills/ 目录中,每个技能是包含 SKILL.md 的文件夹:

bash
mkdir -p my-first-plugin/skills/hello

创建 my-first-plugin/skills/hello/SKILL.md

markdown
---
name: hello
description: 用友好的消息问候用户
---

用热情的方式问候用户,并询问今天如何帮助他们。

Step 4:本地测试

bash
# 使用 --plugin-dir 标志加载插件
claude --plugin-dir ./my-first-plugin

在 Claude Code 中测试:

text
/my-first-plugin:hello

插件目录结构

完整的插件结构示例:

text
my-plugin/
├── .claude-plugin/
│   └── plugin.json          # 插件清单(必需)
├── skills/
│   ├── code-review/
│   │   ├── SKILL.md          # 代码审查技能
│   │   └── checklist.md     # 辅助文件
│   └── doc-gen/
│       └── SKILL.md          # 文档生成技能
├── agents/
│   └── security-agent.md    # 安全审查 Agent
├── hooks/
│   └── settings.json        # Hook 配置
└── README.md

创建完整功能的代码审查插件

插件清单

json
{
  "name": "code-quality",
  "description": "代码质量工具套件:审查、安全检查和文档生成",
  "version": "1.0.0",
  "author": {
    "name": "Your Company",
    "email": "dev@yourcompany.com"
  },
  "homepage": "https://github.com/yourcompany/claude-code-quality",
  "license": "MIT"
}

代码审查技能

markdown
---
name: review
description: 对代码进行全面的质量审查,包括可读性、性能和安全性
---

审查提供的代码,检查以下方面:

1. **代码可读性**
   - 变量和函数命名是否清晰?
   - 是否需要添加注释?
   - 是否遵循项目编码规范?

2. **性能问题**
   - 是否有 N+1 查询问题?
   - 是否有不必要的计算或内存分配?

3. **安全风险**
   - 输入验证是否充分?
   - 是否有 SQL 注入、XSS 等常见漏洞?

4. **测试覆盖**
   - 关键逻辑是否有测试?
   - 边界条件是否覆盖?

对每个问题提供:当前代码、问题说明和改进建议。

自动提交检查 Hook

json
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash(git commit *)",
        "hooks": [
          {
            "type": "command",
            "command": "hooks/pre-commit-check.sh"
          }
        ]
      }
    ]
  }
}

安装插件

从本地路径安装

bash
# 使用 --plugin-dir 临时加载
claude --plugin-dir /path/to/my-plugin

# 或使用插件安装命令永久安装
/plugin install /path/to/my-plugin

从 Git 仓库安装

bash
/plugin install https://github.com/yourcompany/claude-code-quality

从插件市场安装

bash
# 搜索插件
/plugin search code-review

# 安装插件
/plugin install code-quality

发布插件

准备发布

  1. 编写清晰的 README.md 说明
  2. 更新 plugin.json 版本号(语义化版本)
  3. 添加 CHANGELOG.md 记录变更
  4. 编写 LICENSE 文件

发布到 npm(推荐)

bash
# 发布前确保 plugin.json 的 name 与 npm 包名匹配
npm publish

# 用户可通过 npm 安装
npx -y your-plugin-name

发布到 GitHub

bash
# 创建 Release
git tag v1.0.0
git push origin v1.0.0

# 用户通过 Git URL 安装
/plugin install https://github.com/yourname/your-plugin

最佳实践

  1. 技能描述要精确:Claude 根据 description 决定何时使用技能
  2. 版本控制:遵循语义化版本,破坏性变更升主版本号
  3. 文档完整:README 包含安装说明、配置选项和使用示例
  4. 测试充分:发布前在多个项目中测试
  5. 安全审查:插件 Hook 和 MCP 服务器的代码要经过安全审查

总结

Claude Code 插件系统提供了强大的扩展和共享机制。从简单的技能集合到包含 Hook、Agent 和 MCP 的完整工作流套件,插件让团队能够将最佳实践封装并复用。从独立配置开始,验证价值后再转换为插件分发。


来源Claude Code 官方文档 - Create Plugins 原文作者:Anthropic Team

相关文章推荐

教程Claude Code MCP 完整使用指南:安装配置主流 MCP 服务器扩展 AI 能力Claude Code MCP(Model Context Protocol)完整使用指南:MCP 是什么(AI 工具扩展标准)、claude mcp 命令管理服务器(add/remove/list)、主流 MCP 服务器安装配置(文件系统/GitHub/PostgreSQL/Brave Search/Slack)、本地 stdio 与远程 SSE 两种连接方式、MCP 服务器安全配置、在 CLAUDE.md 中声明 MCP 工具使用规范,以及自定义 MCP 服务器的快速开发入门。2026/3/18教程Claude Code 输出格式控制完全指南:JSON、流式、结构化输出使用方法Claude Code 和 Claude API 输出格式完整控制指南:--output-format 参数(text/json/stream-json)、非交互模式(-p)的输出控制、结构化 JSON 输出(--json-schema 字段约束)、流式输出(Server-Sent Events)的处理方式、include-partial-messages 流式渐进显示、以及 CI/CD 管道中解析 JSON 输出的实用技巧。2026/3/18教程Claude Code 项目初始化最佳实践:新项目 5 分钟搭建完美 AI 编程环境Claude Code 新项目最佳初始化流程:CLAUDE.md 标准模板(项目背景/技术栈/代码规范/禁止操作)、.claudeignore 初始配置、.claude/commands/ 常用命令预置、settings.json 权限与模型设置、--init 命令的自动化初始化、项目级 vs 全局配置的优先级说明,以及不同类型项目(Web前端/后端API/全栈/开源库)的专项初始化模板。2026/3/18教程Claude Code 权限管理完全指南:精确控制 AI 能执行哪些操作Claude Code 权限系统完整解析:四种权限模式(default/acceptEdits/bypassPermissions/plan)、--allowedTools 和 --disallowedTools 精确工具控制、Bash 命令白名单语法(通配符匹配)、settings.json 持久化权限配置、CLAUDE.md 中的权限规则声明、CI/CD 自动化场景的权限配置、以及如何在效率和安全之间找到平衡点。2026/3/18教程Claude Code 自定义斜杠命令完全指南:用 /命令 封装常用工作流Claude Code 自定义斜杠命令(slash commands)完整教程:命令文件创建位置(.claude/commands/)、Markdown 格式规范、$ARGUMENTS 参数传递、项目级命令 vs 用户全局命令的区别、实用命令示例(/review、/test、/deploy-check、/refactor、/standup)、命令组合调用,以及如何在团队中共享和版本管理自定义命令。2026/3/18教程Claude Code .claudeignore 完全指南:精准控制 AI 读取文件的范围Claude Code .claudeignore 文件完整使用指南:语法规则(与 .gitignore 完全一致)、为什么需要排除文件(隐私/性能/干扰)、推荐排除的文件类型(node_modules/secrets/.env/构建产物)、按项目类型的最佳实践配置(Node.js/Python/Go/单体仓库)、.claudeignore 与 .gitignore 的区别,以及如何验证排除规则是否生效。2026/3/18