s11
插件系统
集成层Marketplace 分发与组件化扩展
plugin.json 声明 → Marketplace 安装 → 组件加载(commands/agents/hooks/MCP)插件是 commands + agents + hooks + MCP 服务器的打包单元,通过 Marketplace 分发和版本管理
Marketplace 分发与组件化扩展
plugin.json 声明 → Marketplace 安装 → 组件加载(commands/agents/hooks/MCP)插件是 commands + agents + hooks + MCP 服务器的打包单元,通过 Marketplace 分发和版本管理
Claude Code 需要一种标准化的方式让第三方开发者扩展其功能——添加自定义命令、Agent 类型、生命周期钩子和 MCP 服务器。插件必须安全(不能冒充官方来源)、版本化(支持升级回滚)、且对用户透明(声明式清单而非隐式副作用)。
PluginManifest — 插件声明式清单
// plugin.json 结构
interface PluginManifest {
name: string; // 插件唯一标识
version: string; // 语义化版本
description: string; // 简短描述
publisher: string; // 发布者(防冒充校验)
components: {
commands?: CommandDef[]; // 斜杠命令
agents?: AgentDef[]; // Agent 类型定义
hooks?: HookDef[]; // 生命周期钩子
mcpServers?: McpDef[]; // MCP 服务器配置
};
permissions?: string[]; // 所需权限声明
}插件发现与加载流水线
// 插件来源优先级:
// 1. 官方 Marketplace(anthropic, community)
// 2. Git 仓库(URL 直接安装)
// 3. 本地目录(开发模式)
// 加载流程:
// discover() → 扫描已安装插件目录
// validate() → Zod schema 校验 plugin.json
// checkPublisher() → 防冒充:只有官方 Marketplace 能声明官方 publisher
// loadComponents() → 按类型分别加载 commands/agents/hooks/mcpServers
// register() → 注入到全局注册表