第9集:Plugin 解剖 — 一个 Plugin 包含什么

⏱ 预计阅读 4 分钟 更新于 2026/5/7
💡 进群学习加 wx: agentupdate
(申请发送: agentupdate)

Plugin 是 Claude Code 扩展体系的最终形态。它不是一个单一的功能,而是一个“全家桶”,将多种组件打包在一起进行分发。

核心清单:plugin.json

每个 Plugin 的根目录(或 .claude-plugin/ 目录下)都必须有一个 plugin.json

{
  "name": "my-awesome-plugin",
  "version": "1.0.0",
  "description": "这是我的第一个插件",
  "hooks": { ... },       // 定义 Hook
  "commands": [ ... ],    // 定义 Command
  "keywords": [ ... ]     // 关键词
}

组件对比矩阵

不同的插件侧重点不同。通过下表,我们可以看到几个典型插件的组成:

插件名 Skill Hook MCP Command 特色
GSD 137个 9个 0 0 纯指令驱动,工程化极强
caveman 5个 2个 0 3个 超强压缩模式,极致节省 Token
claude-mem 7个 9个 1个 0 带有后台 Worker 服务,具备长期记忆
claude-hud 0 0 0 2个 纯 UI 状态栏增强,编译型项目

典型文件结构

caveman 为例,一个典型的插件目录如下:

caveman/
├── .claude-plugin/
│   └── plugin.json          # 插件清单(定义入口与 Hook)
├── hooks/
│   ├── activate.js          # 会话启动 Hook
│   └── tracker.js           # 消息追踪 Hook
├── skills/
│   └── caveman/
│       └── SKILL.md         # /caveman 斜杠命令
├── commands/
│   └── caveman.toml         # 结构化命令定义
└── CLAUDE.md                # 插件级的项目约束

工作流示意图

graph LR
    P[plugin.json] --> S[Skills]
    P --> H[Hooks]
    P --> M[MCP]
    P --> C[Commands]
    
    S -->|定义| SC[斜杠命令]
    H -->|响应| LE[生命周期事件]
    M -->|提供| ET[额外工具能力]