创建插件
一句话
创建自定义插件来扩展 Claude Code 的功能,包括技能、代理、钩子和 MCP 服务器。
什么时候翻这页
- 需要创建自定义技能、代理或钩子来扩展 Claude Code 功能
- 想要分享自定义功能给团队成员或社区
- 需要在多个项目中重用相同的技能/代理
- 希望通过版本控制和简单更新来管理扩展
核心概念
- 插件(Plugins):可共享的自定义功能包,包含技能、代理、钩子和 MCP 服务器
- 技能(Skills):模型调用的功能,Claude 根据任务上下文自动使用
- 代理(Agents):自定义的 AI 助手,具有特定的系统提示和工具限制
- 钩子(Hooks):事件处理器,在特定操作后自动执行命令
- MCP 服务器:通过模型上下文协议(Model Context Protocol)连接的外部工具
- LSP 服务器:语言服务器协议插件,提供实时代码智能
- 后台监控(Monitors):在后台监控日志、文件或外部状态并通知 Claude
- 插件清单(Plugin manifest):定义插件元数据的 JSON 文件(plugin.json)
怎么做
创建第一个插件
- 创建插件目录:
mkdir my-first-plugin - 创建插件清单目录:
mkdir my-first-plugin/.claude-plugin - 创建 plugin.json 文件,包含名称、描述和版本
- 添加技能:创建
skills/hello/目录和SKILL.md文件 - 使用
--plugin-dir标志测试插件:claude --plugin-dir ./my-first-plugin - 尝试使用技能:
/my-first-plugin:hello
添加技能参数
- 在 SKILL.md 中使用
$ARGUMENTS占位符捕获用户输入 - 运行
/reload-plugins加载更改 - 测试带参数的技能:
/my-first-plugin:hello Alex
开发更复杂的插件
- 添加 LSP 服务器:创建
.lsp.json配置文件 - 添加后台监控:创建
monitors/monitors.json文件 - 添加默认设置:创建
settings.json文件 - 组织复杂插件:按功能组织目录结构
分享插件
- 添加文档:包含
README.md文件 - 选择版本控制策略:设置显式版本或使用 git 提交 SHA
- 创建或使用插件市场
- 测试并分发插件
命令 / 配置速查
| 命令/配置 | 用途 |
|---|---|
claude --plugin-dir <目录> | 加载本地插件进行测试 |
claude --plugin-url <URL> | 从 URL 加载插件 ZIP 文件 |
claude plugin init <名称> | 在技能目录中初始化插件 |
claude plugin validate | 验证插件配置 |
/reload-plugins | 重新加载插件而不重启 Claude Code |
/plugin marketplace add <名称> | 添加插件市场 |
.claude-plugin/plugin.json | 插件清单文件 |
skills/<名称>/SKILL.md | 技能定义文件 |
.lsp.json | LSP 服务器配置 |
monitors/monitors.json | 后台监控配置 |
settings.json | 插件默认设置 |
初学者易错点
- 目录结构错误:不要将
commands/、agents/、skills/或hooks/放在.claude-plugin/目录内,只有plugin.json应该放在那里 - 命名空间冲突:插件技能总是使用命名空间(如
/my-plugin:hello)以防止多个插件间的名称冲突 - 忘记重新加载:修改插件后需要运行
/reload-plugins来加载更改,无需重启 Claude Code - 技能描述缺失:技能应包含描述字段,以便 Claude 知道何时使用该技能
- LSP 服务器未安装:使用 LSP 插件时,用户必须在机器上安装相应的语言服务器二进制文件
相关词条
skills技能开发指南sub-agents自定义代理配置hooks事件处理和自动化mcp外部工具集成discover-plugins发现和安装插件plugin-marketplaces创建和分发插件市场