- Skills:Claude 自主调用的功能。你也可以使用
/plugin-name:skill-name直接调用 plugin skill。 - Agents:用于特定任务的专门子 agents
- Hooks:响应工具使用和其他事件的事件处理程序
- MCP servers:通过 Model Context Protocol 的外部工具集成
加载 plugins
通过在选项配置中提供本地文件系统路径来加载 plugins。type 字段必须是 "local",这是 SDK 接受的唯一值。SDK 支持从不同位置加载多个 plugins。
要使用通过 marketplace 或远程存储库分发的 plugin,请先下载它并提供本地目录路径。有关 plugin 需要的目录布局,请参阅下面的 Plugin 结构参考。
路径规范
Plugin 路径可以是:- 相对路径:相对于
cwd选项解析(例如,"./plugins/my-plugin") - 绝对路径:完整文件系统路径(例如,
"/home/user/plugins/my-plugin")
路径应指向 plugin 的根目录:
skills/、agents/、hooks/、commands/ 或 .claude-plugin/ 的父目录。验证 plugin 安装
当 plugins 成功加载时,它们会出现在系统初始化消息中。你可以验证你的 plugins 是否可用:使用 plugin skills
来自 plugins 的 skills 会自动使用 plugin 名称进行命名空间划分,以避免冲突。要直接调用一个,请在提示中发送/plugin-name:skill-name。
如果你通过 CLI 安装了 plugin(例如,
/plugin install my-plugin@marketplace),你仍然可以通过提供其安装路径在 SDK 中使用它。检查 ~/.claude/plugins/ 以查找 CLI 安装的 plugins。完整示例
这是一个演示 plugin 加载和使用的完整示例:Plugin 结构参考
Plugin 目录通常包含一个.claude-plugin/plugin.json 清单文件。清单是可选的。省略时,Claude Code 会从目录布局自动发现组件。该目录可以包括:
commands/ 目录包含作为平面 Markdown 文件的 skills。对于新 plugins,请使用 skills/。Claude Code 支持两个位置。多个 plugin 源
组合来自不同位置的 plugins:SDK 不会展开波浪号路径,如
~/plugins。如果 plugin 路径不存在,SDK 会跳过该 plugin,会话继续,因此请检查初始化消息中的 plugins 列表以确认每个 plugin 已加载。故障排除
Plugin 未加载
如果你的 plugin 未出现在初始化消息的plugins 列表中,请检查其 plugin_errors 字段以了解原因,然后按照以下检查步骤进行:
- 检查路径:确保路径指向 plugin 根目录,即
skills/、agents/、hooks/、commands/或.claude-plugin/的父目录 - 验证 plugin.json:如果你的 plugin 包含清单文件,确保它具有有效的 JSON 语法
- 检查文件权限:确保 plugin 目录可读
- 确认目录存在:SDK 会跳过不存在的路径,plugin 不会出现在初始化消息的
plugins列表中
Skills 未出现
如果 plugin skills 不起作用:- 使用命名空间:调用 plugin skills 时使用
/plugin-name:skill-name格式 - 检查初始化消息:验证 skill 是否以正确的命名空间出现在
skills列表中 - 验证 skill 文件:确保每个 skill 在
skills/下的自己的子目录中都有一个SKILL.md文件,例如skills/my-skill/SKILL.md
另请参阅
- Plugins - 完整的 plugin 开发指南
- Plugins reference - 技术规范
- Commands - 在 SDK 中调度命令
- Subagents - 使用专门的 agents
- Skills - 使用 Agent Skills