教程

Claude Code 插件开发指南:从 plugin.json 到 Skills/Agents/Hooks 打包发布全流程

Claude Code Plugin 开发完整指南:独立配置 vs Plugin 选型(短名称 vs 命名空间)、5 分钟创建第一个 Plugin(plugin.json Manifest + SKILL.md)、Plugin 目录结构(skills/agents/hooks/settings/lsp)、LSP 服务器集成、随 Plugin 发布默认 Hooks 设置、--plugin-dir 本地测试、从独立配置迁移(名称变化说明)、Git/npm 发布方式,以及 /plugin install/list/enable/disable/remove 用户命令。

2026/3/65分钟 阅读ClaudeEagle

Claude Code Plugins 是将 Skills、Agents、Hooks、MCP 服务器打包为可共享单元的标准方式。本文是从零开发和发布 Plugin 的完整指南。

独立配置 vs Plugin:如何选择

方式Skill 命名适合场景
独立配置.claude/ 目录)/hello(短名称)个人工作流、项目特定定制、快速实验
Plugin(带 .claude-plugin/plugin.json/plugin-name:hello(命名空间)与团队共享、跨项目复用、版本化发布、Marketplace 分发

先用独立配置快速迭代,再转为 Plugin 分享。

5 分钟创建第一个 Plugin

前置要求

  • Claude Code v1.0.33 或更高(claude --version 确认)

第一步:创建目录结构

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

第二步:创建 Plugin Manifest

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

json
{
  "name": "my-first-plugin",
  "description": "A greeting plugin to learn the basics",
  "version": "1.0.0",
  "author": {
    "name": "Your Name"
  }
}
字段作用
name唯一标识符,也是 Skill 的命名空间前缀(如 /my-first-plugin:hello
descriptionPlugin Manager 中显示的说明文字
version使用语义版本(SemVer)追踪发布
author可选,用于署名

可选字段:homepage(主页)、repository(仓库)、license(授权协议)。

第三步:添加 Skill

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

markdown
---
description: Greet the user with a friendly message
disable-model-invocation: true
---

Greet the user warmly and ask how you can help them today.

skills/hello/ 目录名 hello + 插件名 my-first-plugin → Skill 命令为 /my-first-plugin:hello

第四步:本地测试

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

在 Claude Code 中运行:

/my-first-plugin:hello

Plugin 目录结构

my-plugin/ ├── .claude-plugin/ │ └── plugin.json # 必须:Plugin Manifest ├── skills/ # Skills(每个子目录 = 一个 Skill) │ ├── review/ │ │ └── SKILL.md │ └── deploy/ │ ├── SKILL.md │ └── scripts/ │ └── deploy.sh ├── agents/ # Subagents(每个子目录 = 一个 Subagent) │ └── code-reviewer/ │ └── AGENT.md ├── hooks/ # Hooks(settings.json 格式) │ └── settings.json ├── settings/ # 默认设置 │ └── settings.json └── lsp/ # LSP 服务器(代码智能) └── my-lsp-server

开发进阶功能

添加更多 Skills

markdown
<!-- skills/review/SKILL.md -->
---
description: Review code for quality, security, and best practices
disable-model-invocation: false
---

# Code Review Checklist

## Quality
- [ ] Code is readable and well-commented
- [ ] Functions have single responsibility
- [ ] No magic numbers or hardcoded strings

## Security  
- [ ] Input validation present
- [ ] No SQL injection vulnerabilities
- [ ] Secrets not hardcoded

## Tests
- [ ] New code has unit tests
- [ ] Edge cases covered

使用:/my-plugin:review

添加 LSP 服务器

LSP 服务器为 Claude 提供代码智能(类型错误、跳转到定义、查找引用):

json
// .claude-plugin/plugin.json
{
  "name": "my-plugin",
  "lspServers": [
    {
      "name": "my-lsp",
      "command": ["./lsp/my-lsp-server", "--stdio"],
      "languages": ["python", "typescript"]
    }
  ]
}

随 Plugin 发布默认设置

settings/settings.json(在安装此 Plugin 的项目中自动应用):

json
{
  "hooks": {
    "PostToolUse": [{
      "matcher": "Edit|Write",
      "hooks": [{
        "type": "command",
        "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write"
      }]
    }]
  }
}

复杂 Plugin 的目录组织

对于大型 Plugin,可以在 skills/ 下创建子目录分组:

my-plugin/ └── skills/ ├── code/ │ ├── review/SKILL.md │ └── refactor/SKILL.md └── devops/ ├── deploy/SKILL.md └── rollback/SKILL.md

本地测试

bash
# 加载单个 Plugin 目录
claude --plugin-dir ./my-plugin

# 加载多个 Plugin 目录
claude --plugin-dir ./plugin-a --plugin-dir ./plugin-b

# 在会话中验证安装
/plugin list

调试 Plugin 问题

bash
# 查看详细加载信息
claude --plugin-dir ./my-plugin --debug plugin

# 检查 Skill 是否已注册
/skills  # 列出所有已加载的 Skills,包括 Plugin 提供的

从独立配置迁移到 Plugin

已有 .claude/skills/.claude/agents/ 中的配置,迁移步骤:

bash
# 1. 创建 Plugin 目录结构
mkdir my-plugin/.claude-plugin

# 2. 创建 Manifest
cat > my-plugin/.claude-plugin/plugin.json << 'EOF'
{
  "name": "my-plugin",
  "description": "My custom workflow tools",
  "version": "1.0.0"
}
EOF

# 3. 复制已有配置
cp -r .claude/skills my-plugin/
cp -r .claude/agents my-plugin/

# 4. 测试
claude --plugin-dir ./my-plugin

迁移后的变化

  • Skill 命令从 /review 变为 /my-plugin:review(加了命名空间前缀)
  • Skill 不再自动加载(需显式调用或通过描述触发)
  • 可以通过 Plugin Manager 安装/卸载,而不是手动复制文件

发布和共享

共享 Plugin 的方式

bash
# 方式一:Git 仓库
git init my-plugin
git add .
git commit -m "Initial release"
git push origin main
# 用户通过 /plugin install <git-url> 安装

# 方式二:npm 包(便于版本管理)
npm init -y
# 发布到 npm
npm publish

提交到官方 Marketplace

官方 Plugin Marketplace 的要求:

  1. 公开 Git 仓库(GitHub/GitLab)
  2. 完整的 plugin.json(含 description、version、homepage)
  3. README.md(说明用途、安装方式、使用示例)
  4. 遵循 Anthropic 使用政策

提交地址:参考 Plugins Marketplace 文档

用户安装 Plugin 的方式

/plugin install <plugin-name> # 从 Marketplace 安装 /plugin install <git-url> # 从 Git 仓库安装 /plugin install <local-path> # 从本地路径安装 /plugin list # 查看已安装插件 /plugin enable <plugin-name> # 启用插件 /plugin disable <plugin-name> # 禁用插件 /plugin remove <plugin-name> # 卸载插件

原文:Create plugins | 来源:Anthropic 官方文档

相关文章推荐

教程Claude Code 插件开发指南:plugin.json 结构、Skills/Hooks/MCP 集成与官方市场提交Claude Code 插件开发完整指南:独立配置 vs 插件对比(命名空间/适用场景)、5 步快速创建(目录/plugin.json 清单字段/Skill/本地 --plugin-dir 测试/分享)、完整插件目录结构(.claude-plugin/commands/skills/agents/hooks/mcp/.lsp.json/settings.json)、各组件配置示例(Skills SKILL.md/LSP 服务器.lsp.json/默认 settings.json agent 键)、从独立配置迁移步骤对比表、三步调试方法,以及通过 claude.ai 和 Console 提交官方市场的方式。2026/3/8教程OpenClaw Skills 开发指南:从零打造你的专属 AI 工作流插件OpenClaw Skills 完整开发教程:Skills 工作原理、SKILL.md 文件格式、触发机制(关键词/描述匹配)、脚本和资源文件组织、发布到 ClaWHub 市场,以及 5 个实用 Skill 开发案例(天气/代码审查/日报生成/数据监控/自动翻译)。2026/3/15教程Claude Code Skills 自定义命令:打造你的团队专属 AI 工作流Claude Code Skills 自定义命令完整教程:Skills vs CLAUDE.md 使用场景对比、内置 Skills 速览(/batch/simplify/loop)、SKILL.md 文件格式与 Frontmatter 配置、四大实用 Skills 示例(代码审查/部署检查/功能开发/团队 OnBoarding)、传参方式、子代理执行与 Git 团队共享。2026/3/14教程Claude Code Skills 完全指南:创建自定义技能、Bundled Skills 与高级模式Claude Code Skills 完全指南:5 个内置 Bundled Skills(/simplify 并行 3 Agent/\batch Git Worktree 并行/\debug 会话日志/\loop 定时执行/\claude-api 自动激活)、3 步创建自定义 Skill(目录/SKILL.md/测试)、存储位置与优先级(Enterprise/Personal/Project/Plugin 命名空间)、Frontmatter 完整配置(name/description/disable-model-invocation/tools)、两种内容类型(参考型内联/任务型手动)、高级模式($ARGUMENTS 字符串替换/支持文件目录/动态注入上下文/子 Agent 执行),以及三种共享方式和故障排查。2026/3/8教程Claude Code 插件市场创建与分发:marketplace.json 完整 Schema、私有仓库与企业限制Claude Code 插件市场创建与分发完整指南:四步创建流程(插件/marketplace.json/Git 托管/分享用户)、快速上手本地市场示例(/review 代码审查技能)、marketplace.json 完整 Schema(必填/Owner/可选元数据/插件条目)、五种插件来源类型(相对路径/GitHub/Git/子目录/npm)、托管分发(GitHub 推荐/私有仓库认证)、版本与发布频道配置(stable/beta/nightly)、企业 Managed 限制(strictKnownMarketplaces 白名单/blockedMarketplaces 黑名单/pluginTrustMessage),以及七大常见故障排查。2026/3/7教程Claude Code Skills 进阶指南:四大内置技能、动态上下文注入、Subagent 运行与参数传递Claude Code Skills 进阶完整指南:四大内置 Skill(/simplify 三 Agent 并行优化/batch 5-30 单元并行大规模变更//debug 会话调试//claude-api 自动加载 API 参考)、目录结构和四级存储位置(优先级规则)、完整 Frontmatter 字段(disable-model-invocation/context/tools.allow/deny)、参考型 vs 任务型内容对比、动态上下文注入($GIT_STATUS/$CURRENT_SCHEMA)、context:fork 在 Subagent 运行、$ARGUMENTS 参数传递。2026/3/6