教程

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 Remote Control 使用指南:手机和浏览器远程继续本地会话Claude Code Remote Control 让你在手机、平板或浏览器中继续本地 Claude Code 会话。代码仍在本机执行,web/mobile 只是连接窗口,可访问本地文件、MCP servers 和项目配置。2026/6/8教程Claude Code Routines 指南:定时、API 和 GitHub 事件触发的云端自动化Claude Code Routines 让 Claude Code 在 Anthropic 管理的云端基础设施上自动运行:可按计划执行、由 HTTP API 触发,或响应 GitHub PR/release 等事件。2026/6/8教程Claude Code Agent Teams 使用指南:多 Claude 会话协作、共享任务列表和直接通信Claude Code Agent Teams 适合需要多个 Claude Code 会话并行探索、互相挑战和协调的复杂任务。它不同于 subagents:teammates 有独立上下文、共享任务列表,并能直接通信。2026/6/8教程Claude Code Dynamic Workflows 完整指南:用脚本编排上百个 SubagentsClaude Code Dynamic Workflows 让编排逻辑从上下文窗口迁移到 JavaScript 脚本,适合代码库审计、500 文件迁移、多源交叉验证研究和可重复质量检查。2026/6/8教程OpenClaw ACP Agents 完整指南:把 Codex、Claude Code、Gemini 接入聊天线程OpenClaw ACP Agents 官方文档中文整理:什么是 ACP runtime、如何把 Codex/Claude Code/Gemini CLI 绑定到聊天、current conversation bind、thread-bound session、持久会话、运行时配置和适用场景。2026/6/4教程Claude Code Dev Container 完整指南:隔离环境、持久认证、网络出口和组织策略Claude Code Dev Container 官方文档中文整理:为什么在容器内运行 Claude Code、devcontainer feature 安装、认证和 settings 持久化、组织 policy、环境变量、网络出口限制、无权限提示模式的风险,以及团队安全落地建议。2026/5/20