引言
"Plugins extend Claude Code with commands, agents, skills, hooks, and MCP servers."
这是"一天一个开源项目"系列的第106篇文章。今天带你了解的项目是 claude-plugins-official。
这是 Anthropic 官方在 GitHub 上维护的 Claude Code 插件目录。如果你最近开始深度使用 Claude Code,一定见过 /plugin install 命令------这个仓库就是这条命令背后的官方插件源。
20.2k Stars,2.5k Forks,669 个 Open Issues。数字背后是一个正在快速成型的生态:Anthropic 内部工程师贡献了 30+ 款插件,涵盖 12 种语言的 LSP 支持、PR 多维评审工具包、Git 工作流自动化、代码质量分析;15 家外部合作伙伴(GitHub、Firebase、Linear、Terraform 等)也已接入。
但这篇文章想讲的不只是"有哪些插件"------更值得关注的是这套插件规范本身的设计:一个 plugin.json 文件、三种扩展方式(Skills/Commands/MCP)、两种触发机制(用户调用 vs 模型自动触发)。理解这套架构,你就理解了 Claude Code 可扩展性的边界和可能性。
你将学到什么
claude-plugins-official的完整插件目录结构(内部插件 vs 外部插件)- Claude Code 插件的标准规范:从
plugin.json到 Skills/Commands/MCP 三种扩展方式 - 五款重点插件的深度解析:
pr-review-toolkit、agent-sdk-dev、code-review、hookify、commit-commands - 如何从零创建一个符合规范的 Claude Code 插件
- 外部合作伙伴插件生态的现状与接入方式
前置知识
- 使用过 Claude Code(了解 slash command 的基本操作)
- 对 MCP(Model Context Protocol)有基本了解
- 有兴趣构建自己的 Claude Code 扩展
项目背景
项目简介
claude-plugins-official 是 Anthropic 维护的官方插件注册表,服务于 Claude Code 的插件生态。它同时承担两个角色:
- 插件注册表 :用户通过
/plugin install <name>@claude-plugins-official安装插件 - 开发规范参考 :
plugins/example-plugin是官方的完整示例,包含所有扩展方式的参考实现
仓库分为两大目录:
/plugins:Anthropic 工程师内部开发,涵盖 LSP、开发工作流、代码质量、输出风格等多个类别/external_plugins:合作伙伴和社区提交,须通过质量与安全审核
作者/团队介绍
这是一个多人协作的 Anthropic 内部项目,各插件由不同工程师主导:
- pr-review-toolkit :Daisy (daisy@anthropic.com)
- agent-sdk-dev :Ashwin Bhat (ashwin@anthropic.com)
- code-review :Boris Cherny (boris@anthropic.com)
- frontend-design:Prithvi Rajasekaran + Alexander Bricken
- commit-commands:Anthropic team
项目数据
- ⭐ GitHub Stars: 20,200+
- 🍴 Forks: 2,500+
- 👁️ Watchers: 147
- 🐛 Open Issues: 669
- 💻 主要语言: Python (31.6%), TypeScript (28.9%), HTML (19.5%), Shell (13.0%), JavaScript (7.0%)
- 🏷️ Topics:
skills,mcp,claude-code - 🌐 仓库: anthropics/claude-plugins-official
- 📖 文档: code.claude.com/docs/en/plu...
主要功能
核心作用
claude-plugins-official 提供了一套标准化的方式来扩展 Claude Code 的能力:
css
Claude Code 原生能力
↓
/plugin install <name>@claude-plugins-official
↓
扩展后的 Claude Code
├── 新增 Slash Commands(用户主动调用)
├── 新增 Skills(模型自动触发)
├── 新增 Agents(专用任务代理)
└── 新增 MCP 工具(外部服务集成)
快速开始
安装插件(命令行方式):
bash
# 安装 PR 评审工具包
/plugin install pr-review-toolkit@claude-plugins-official
# 安装 Git 提交命令套件
/plugin install commit-commands@claude-plugins-official
# 安装 Agent SDK 开发工具
/plugin install agent-sdk-dev@claude-plugins-official
# 安装代码评审插件
/plugin install code-review@claude-plugins-official
# 安装 Hook 管理工具
/plugin install hookify@claude-plugins-official
安装插件(UI 方式):
bash
在 Claude Code 中输入: /plugin
→ 点击 "Discover"
→ 浏览并安装所需插件
安装外部合作伙伴插件:
bash
# GitHub 集成
/plugin install github@claude-plugins-official
# Linear 项目管理集成
/plugin install linear@claude-plugins-official
# Firebase 集成
/plugin install firebase@claude-plugins-official
# Terraform 基础设施集成
/plugin install terraform@claude-plugins-official
插件目录总览
内部插件(/plugins)
| 类别 | 插件 |
|---|---|
| LSP 语言支持 | clangd-lsp, csharp-lsp, gopls-lsp, jdtls-lsp, kotlin-lsp, lua-lsp, php-lsp, pyright-lsp, ruby-lsp, rust-analyzer-lsp, swift-lsp, typescript-lsp |
| 开发工作流 | agent-sdk-dev, claude-code-setup, commit-commands, feature-dev, mcp-server-dev, plugin-dev, pr-review-toolkit, ralph-loop |
| 代码质量 | code-modernization, code-review, code-simplifier, security-guidance |
| 输出风格 | explanatory-output-style, learning-output-style |
| 实用工具 | claude-md-management, cwc-makers, frontend-design, hookify, math-olympiad, session-report, skill-creator |
| 参考实现 | example-plugin |
外部合作伙伴插件(/external_plugins):asana, context7, discord, fakechat, firebase, github, gitlab, greptile, imessage, laravel-boost, linear, playwright, serena, telegram, terraform
五款重点插件深度解析
插件 1:pr-review-toolkit------六代理并行 PR 评审
这是整个 plugins 目录里设计最为精巧的插件之一:6 个专用代理并行运行,从不同维度审查同一个 Pull Request。
css
PR 提交
↓
comment-analyzer ← 注释准确性、文档完整性、注释腐化
pr-test-analyzer ← 测试覆盖质量、边界用例、行为覆盖 vs 行覆盖
silent-failure-hunter ← 静默失败、空 catch 块、缺失错误日志
type-design-analyzer ← 类型封装、不变量(4 维度 1--10 评分)
code-reviewer ← CLAUDE.md 合规性、风格、Bug(0--100 评分)
code-simplifier ← 可读性、不必要复杂性、冗余抽象
触发方式(自然语言驱动):
arduino
"测试覆盖是否足够?" → 自动触发 pr-test-analyzer
"检查 API 客户端的错误处理" → 自动触发 silent-failure-hunter
"这段文档注释准确吗?" → 自动触发 comment-analyzer
"帮我简化这块代码" → 自动触发 code-simplifier
完整 PR 评审(一次触发全部代理):
markdown
"我准备提 PR,请:
1. 检查测试覆盖
2. 检查静默失败
3. 验证注释准确性
4. 评审新增的类型设计
5. 整体代码评审"
推荐工作流:
css
写代码 → code-reviewer
修复问题 → silent-failure-hunter(如果涉及错误处理)
补充测试 → pr-test-analyzer
加文档 → comment-analyzer
polish → code-simplifier
→ 创建 PR
插件 2:agent-sdk-dev------Agent SDK 项目脚手架
这个插件把"从零搭建一个 Claude Agent SDK 项目"压缩到一条命令。
/new-sdk-app 命令(交互式项目创建):
bash
/new-sdk-app my-agent-project
# 接下来的交互提示:
# 1. 语言选择: TypeScript 还是 Python?
# 2. 代理类型: coding / business / custom
# 3. 起点模板: minimal / basic / specific example
# 4. 包管理器: npm/yarn/pnpm 或 pip/poetry
执行后自动完成:
- 检查并安装最新 SDK 版本
- 创建项目文件结构、
.env.example、.gitignore - 运行类型检查(TS)或语法验证(Python)
- 自动运行对应的 Verifier 代理(验证项目是否符合 SDK 最佳实践)
两个 Verifier 代理:
bash
# Python 项目验证
"Verify my Python Agent SDK application"
→ 检查: SDK 安装、requirements.txt/pyproject.toml、
SDK 使用模式、代理初始化/配置、.env 安全性、错误处理
# TypeScript 项目验证
"Verify my TypeScript Agent SDK application"
→ 检查: SDK 安装、tsconfig.json、类型安全/导入、
代理初始化/配置、.env 安全性、错误处理
Verifier 输出格式:
diff
整体状态: PASS / PASS WITH WARNINGS / FAIL
- 阻断性问题(Critical Issues)
- 非最优模式警告(Warnings)
- 通过的检查项
- 改进建议(附 SDK 文档链接)
插件 3:code-review------置信度过滤的 4 代理代码评审
这个插件解决了 AI 代码评审中最常见的问题:误报太多。
工作流程:
markdown
1. 前置检查 --- 跳过已关闭、Draft、微小 PR
2. 收集仓库 CLAUDE.md 指南文件
3. 总结 PR 变更
4. 并行启动 4 个代理:
- Agent #1 & #2 → CLAUDE.md 合规性检查
- Agent #3 → Bug 检测(仅检查变更部分)
- Agent #4 → Git blame/历史上下文分析
5. 对每个问题打 0--100 置信度分
6. 过滤掉低于阈值(默认 80)的问题
7. 发布只包含高置信度问题的评审评论
置信度评分说明:
| 分数 | 含义 |
|---|---|
| 0 | 不确定,可能是误报 |
| 25 | 略有把握,可能是真实问题 |
| 50 | 中等把握,真实但次要 |
| 75 | 高度确信,真实且重要 |
| 100 | 完全确定,必须修复 |
被过滤掉的问题类型:
- PR 引入之前已存在的问题
- 看起来有问题但实际没问题的代码
- Lint 工具会处理的问题
- 有 lint-ignore 注释的条目
配置置信度阈值 (在 commands/code-review.md 中修改):
sql
# 将默认的 80 改为你的偏好值
Filter out any issues with a score less than 80.
插件 4:hookify------自然语言创建 Claude Code Hooks
Claude Code 的 Hooks 功能(在工具执行前后触发自定义逻辑)配置起来需要手动编辑复杂的 JSON 文件。hookify 解决了这个问题。
核心命令:
bash
# 用自然语言描述规则
/hookify 当使用 rm -rf 命令时警告我
# 分析对话历史,自动建议需要阻断的行为
/hookify
# 列出所有规则
/hookify:list
# 交互式启用/禁用规则
/hookify:configure
规则立即生效,无需重启 Claude Code。
规则文件格式 (存储于 .claude/hookify.<name>.local.md):
markdown
---
name: block-dangerous-rm
enabled: true
event: bash
pattern: rm\s+-rf
action: block
---
⚠️ **检测到危险的 rm 命令!**
请确认路径并确保有备份。
进阶规则(多条件):
markdown
---
name: warn-sensitive-files
enabled: true
event: file
action: warn
conditions:
- field: file_path
operator: regex_match
pattern: \.env$|credentials|secrets
- field: new_text
operator: contains
pattern: KEY
---
🔐 **检测到敏感文件编辑!**
事件类型和触发时机:
| event | 触发时机 |
|---|---|
bash |
执行 Bash 命令前 |
file |
文件读写操作 |
prompt |
用户输入提示词 |
stop |
Claude 准备停止回复 |
all |
所有上述事件 |
实用规则示例:
yaml
# 阻断破坏性命令
event: bash
pattern: rm\s+-rf|dd\s+if=|mkfs|format
action: block
# 警告调试代码
event: file
pattern: console\.log\(|debugger;
action: warn
# 停止前要求运行测试
event: stop
action: block
conditions:
- field: transcript
operator: not_contains
pattern: npm test|pytest|cargo test
# 防止 TypeScript 文件中硬编码 API Key
event: file
conditions:
- field: file_path
operator: regex_match
pattern: \.tsx?$
- field: new_text
operator: regex_match
pattern: (API_KEY|SECRET|TOKEN)\s*=\s*["']
插件 5:commit-commands------三命令 Git 工作流
bash
# 自动生成 commit message 并提交
/commit
# 完整一键流程:commit → push → 创建 PR
/commit-push-pr
# 清理远端已删除的本地分支
/clean_gone
/commit 的执行逻辑:
- 分析暂存/未暂存的变更
- 查看近期提交历史(匹配仓库风格)
- 暂存文件并创建包含 Claude Code attribution 的 commit message
- 自动跳过
.env、credentials.json等敏感文件
/commit-push-pr 的执行逻辑:
- 如果在
main分支,自动创建新分支 - 提交变更
- Push 到
origin - 通过 GitHub CLI 创建 PR(包含 Summary + 测试清单)
插件规范深度解析
标准插件目录结构
perl
plugin-name/
├── .claude-plugin/
│ └── plugin.json # 插件元数据(必须)
├── .mcp.json # MCP 服务器配置(可选)
├── skills/ # Skill 定义(推荐)
│ ├── my-skill/
│ │ └── SKILL.md # 模型自动触发的 Skill
│ └── my-command/
│ └── SKILL.md # 用户调用的 Slash Command(也用 SKILL.md)
├── commands/ # Slash 命令(旧格式)
│ └── my-command.md
├── agents/ # 代理定义
└── README.md
plugin.json 元数据格式
json
{
"name": "my-plugin",
"description": "A description of what this plugin does",
"author": {
"name": "Your Name",
"email": "you@example.com"
}
}
设计上刻意极简:只有三个字段,无版本号、无依赖声明。插件的能力由目录内容决定,而不是元数据。
三种扩展方式的对比
方式 1:Skills(推荐,新插件应使用)
yaml
# 模型自动触发(基于任务上下文)
---
name: security-review
description: 当检测到安全相关代码时自动触发安全审查
version: 1.0.0
---
# 用户手动触发(成为 /skill-name 命令)
---
name: my-command
description: 短描述(显示在 /help 中)
argument-hint: <arg1> [optional-arg]
allowed-tools: [Read, Glob, Grep]
---
方式 2:Commands(旧格式,功能等价)
markdown
# commands/my-command.md
---
# YAML frontmatter
---
# 命令内容(同 SKILL.md)
方式 3:MCP Servers(外部服务集成)
json
// .mcp.json
{
"my-service": {
"type": "http",
"url": "https://api.myservice.com/mcp"
}
}
两种 Skill 触发机制的关键区别
| 触发类型 | 激活方式 | 适用场景 |
|---|---|---|
| 用户触发 | 用户输入 /skill-name |
明确的单次操作(提交、评审) |
| 模型自动触发 | Claude 根据任务上下文判断 | 持续的上下文增强(输出风格、安全检查) |
这个区别非常重要:frontend-design 插件就是典型的模型自动触发------用户只需要说"创建一个仪表盘",Claude 会自动应用该插件的设计原则,无需用户明确调用。
外部插件提交流程
如果你想将自己的插件纳入官方目录:
markdown
1. 确保插件符合质量和安全标准
↓
2. 访问 https://clau.de/plugin-directory-submission
↓
3. 填写插件提交表单
↓
4. Anthropic 审核(质量审查 + 安全审查)
↓
5. 合并到 /external_plugins 目录
审核标准(推断自文档):
- 插件必须有完整的 README 和 plugin.json
- MCP 服务器如有使用需标注清楚
- 不得包含恶意代码或未授权的数据采集
- 功能需有实际价值,非重复轮子
项目地址与资源
官方资源
- 🌟 GitHub : github.com/anthropics/...
- 📖 插件开发文档 : code.claude.com/docs/en/plu...
- 📝 外部插件提交 : clau.de/plugin-dire...
- 🔧 参考实现 :
/plugins/example-plugin(插件开发最佳起点)
适用人群
- Claude Code 深度用户:希望通过官方插件扩展工作流能力
- 插件开发者:学习如何构建符合规范的 Claude Code 插件
- 工具链工程师:将自有服务接入 Claude Code 生态(通过 MCP 服务器)
- 团队工程效能负责人:为团队定制 Claude Code 插件,统一开发规范
总结与展望
核心要点回顾
插件生态层面:
- 30+ 内部插件:覆盖 LSP(12种语言)、PR 评审、Git 工作流、代码质量、输出风格等核心开发场景
- 15 个外部插件:GitHub、Firebase、Linear、Terraform 等主流开发工具已接入
- 统一安装方式 :
/plugin install <name>@claude-plugins-official一条命令搞定
插件规范层面:
- 极简元数据 :
plugin.json只需 name、description、author 三个字段 - 三种扩展方式:Skills(推荐)/ Commands(旧格式)/ MCP Servers(外部服务)
- 两种触发机制:用户主动调用 vs 模型根据上下文自动触发
- 安全提示始终在场:官方文档明确指出不对第三方插件的 MCP 服务器负责,要求用户验证信任
五款重点插件的核心价值:
pr-review-toolkit:6 代理并行 → 多维视角,消除单一评审盲区agent-sdk-dev:一条命令脚手架 + 自动 Verifier → 降低 Agent SDK 入门门槛code-review:置信度过滤(默认阈值 80)→ 减少误报,专注真实问题hookify:自然语言创建 Hooks → 无需手写复杂 JSON 配置commit-commands:/commit-push-pr→ 从代码到 PR 全流程自动化
一句话评价
claude-plugins-official 不只是一个插件目录------它是 Anthropic 对"AI 工具应如何被扩展"这个问题的公开答案:最小化元数据、最大化组合灵活性,让 Skills 在正确的上下文自动出现,而不是强迫用户记住命令。
欢迎来我的个人主页找到更多有用的知识和有趣的产品