📌 项目地址anthropics/claude-plugins-official | ⭐ 20,172 颗星 | 🔧 Python | 📜 未标注

anthropics/claude-plugins-official 这个仓库有 20172 个 star,但你 clone 下来跑不了任何东西。本质上它是一份插件目录,告诉 Claude Code 哪些插件是官方认可的,以及每个插件该怎么写。本文不介绍每个插件的用法(没必要),而是解剖这个市场的机制、风险和你作为开发者或使用者需要注意的细节。

安全:2 万星并不代表没问题

README 开头有一段黑体警告,原文我直接复制:

重要:确保你信任一个插件后再安装、更新或使用。Anthropic 不控制插件中包含的 MCP 服务器、文件或其他软件,也无法验证它们是否能按预期工作或不会发生更改。

审核能过滤初版代码,但插件是可以后续更新的。今天没有恶意代码,明天维护者往 .mcp.json 里加一个读本机文件的 MCP 服务器,不会有人通知你。我装外部插件之前固定看两样东西:README 和 .mcp.json。花不了五分钟,但没必要踩坑。

安装:两个入口,但不需要 Git clone

README 里写的安装路径非常清楚:

  • 命令行:/plugin install {插件名}@claude-plugins-official
  • 图形界面:输入 /plugin,选 Discover,在列表里找

这两条路指向同一份清单。不需要手动克隆仓库到本地,不需要配环境变量。如果你直接用命令行,记住 {插件名} 是在仓库里定义的名称(比如 example-plugin),不是人类的随意名字。

插件骨架:只有一个文件是必需的

目录结构(来自 README):

plugin-name/
├── .claude-plugin/
│   └── plugin.json      # 必需
├── .mcp.json            # 可选,MCP 服务器配置
├── commands/            # 可选,斜杠命令
├── agents/              # 可选,智能体定义
├── skills/              # 可选,技能定义
└── README.md            # 可选

plugin.json 是唯一必须存在的文件。其他目录按需加。我做过一个只暴露斜杠命令的插件,只有 .claude-plugin/plugin.jsoncommands/ 两个目录。.mcp.json 是给声明 MCP 服务器用的,如果你不需要跨工具访问文件系统或 API,可以省掉。

注意:README 说“optional”的意思是你可以不提供这些目录,但不是指目录内的文件格式可以瞎写。如果你提供 .mcp.json,必须符合 Claude Code 的 MCP server 规范(参考官方文档 /plugins/example-plugin 里的例子)。

Skill-bundle:把散落的技能打包,不用改原仓库

很多开源仓库里有 SKILL.md 文件,但整个仓库没有 plugin.json。按标准流程装不了。Skill-bundle 模式就是为这个场景设计的:写一个声明文件,把散落在不同子目录的技能“打包”成一个插件。

核心配置(来自 README):

{
  "name": "example-bundle",
  "description": "Brief description of the bundled skills.",
  "author": { "name": "Author Name" },
  "category": "development",
  "source": {
    "source": "git-subdir",
    "url": "https://github.com/example-org/sdk.git",
    "path": "packages/agent-skills",
    "ref": "main",
    "sha": ""
  },
  "strict": false,
  "skills": [
    "./skill-a",
    "./skill-b",
    "./skill-c"
  ],
  "homepage": "https://github.com/example-org/sdk"
}

三个关键点:

  • "strict": false 告诉系统“这个插件没有自己的 manifest,技能是从外面拉回来的”。
  • skills 数组里的路径是相对 source.path 的,指向包含 SKILL.md 的目录。
  • 路径可以跨子目录,比如 ["./libA/skill-1", "./libB/skill-2"],适合从多个子包里挑技能暴露。

注册后,技能以 : 的形式出现——skill-a 会变成 :skill-a。我试过在一次提交里从一个 SDK 仓库的四个子目录里暴露了六个技能,一个声明文件搞定,不用拆成独立项目。

注意:"sha" 字段可以留空,但如果你指定了 "sha",系统会锁定到这个 commit hash。如果 source 仓库变了而你的 sha 没更新,插件可能会报错。我建议日常填 "ref": "main",只在需要 pin 版本时填 sha。

提交:走审核,不要自建分发

内部插件:Anthropic 员工参考 /plugins/example-plugin

外部插件:走官方提交表单(https://clau.de/plugin-directory-submission)。质量审核过了之后,插件自动出现在 Claude Code 的 Discover 列表里。外部开发者不需要搭自己的插件市场。

没有“一键上架”的 API,只能走表单。你提交后如果几个星期没消息,可能被卡在审核队列里。README 没说审核要多久,但我觉得取决于提交的复杂度。

许可证

每个插件有自己的许可证文件。仓库没有统一的许可。你在使用时需要检查每个插件根目录下的 LICENSE 文件。


一句话总结:这个仓库是 Claude Code 的插件市场入口和开发规范参考。如果你是用家,直接安装;如果你是开发者,先看 /plugins/example-plugin 的结构,再按 skill-bundle 模式处理技能包,最后用表单提交。

这篇文章对你有帮助吗?

发表回复