GitHub 趋势 · 第 33 期
Cursor 官方插件市场里,有一个 Cursor 永远装不上的插件
#Agent工具#插件生态#横向对比
先把判断放在前面:cursor/plugins 真正值得看的不是那 77 个插件,而是它把「插件」写成了一份可校验的 JSON 规范。规范里连「哪个客户端根本不该装它」都有专门字段 —— 官方市场的 finance 插件,在 Cursor 这一项上被显式标成了 never。
先说你已经在踩的坑
你现在装了七八个 agent 插件,但要你说清「到底装了什么」,多半说不出来:一个插件可能是 skills、rules、hooks、commands、MCP server 的任意组合;客户端升一次级,某个插件悄悄就不能用了;最麻烦的是 MCP server 用 npx 带最新版标签启动 —— 你把仓库 commit pin 得死死的,可每次会话启动拉下来的是 registry 上的新版代码。
这些问题的根源不是插件写得好不好,而是各家「插件」这个词的定义根本不一样。所以这期换个思路:以 Cursor 的官方插件仓库为主线,把三家的市场机制摆在一起看。
项目是什么
仓库名 cursor/plugins(https://github.com/cursor/plugins),自述是「Cursor plugin specification and official plugins」—— 一半是规范,一半是官方插件。7,365 star、639 fork,本月新增 4,683,最近一次提交在 2026-09-10。许可为 MIT。
它不是「一个插件」,而是一个多插件市场仓库:顶层 15 个官方自研插件目录,加一个 third_party/ 放 SaaS 集成,另配 schemas/ 放两份 JSON Schema、scripts/ 与 .github/workflows/ 做校验。全仓库的索引只有一份文件 —— .cursor-plugin/marketplace.json。
三家厂商的市场机制对照
同一件事——「让 agent 装到别人写的能力」——三家给出的答案差别不小。下面是逐个核对仓库原始文件后的结果,OpenAI 那一列是上期实测过的数据。
| 维度 | cursor/plugins | claude-plugins-community | openai/plugins |
|---|---|---|---|
| 定位 | 插件规范 + 官方插件 | 社区插件只读镜像 | 精选插件目录 |
| 清单条目 | 77 条 | 首次同步 214 个 | 65 条 / 10 分类 |
| 收录方式 | 官方自研 + third_party | 提交后审核,夜间自动同步 | 目录收录,多来自各自的 release |
| 安装方式 | /add-plugin 插件名 | claude plugin install 名@claude-community | 随 Codex 客户端 |
| 版本门 | minClientVersions:semver 或 never | 源码 SHA pin + MCP 启动器静态检查 | 仓库外条目不锁版本 |
| 许可 | MIT | 见仓库 LICENSE | 根目录无 LICENSE |
差别最值得记的是「版本门」这一行。Anthropic 那边社区仓库的 CI 里有一段说明写得非常直接:用 npx、bunx、uvx、pipx 这类包管理器启动器、并且写的是浮动版本号(最新版标签、版本区间、或者根本没写版本的裸包名)的 MCP server,会在会话启动时就执行 registry 解析出来的代码,而清单条目里 pin 的源码 SHA 管不到这一段。Cursor 这边则换了个思路:把「客户端能不能装」写进 schema,用 never 直接关闭。
一个插件到底能装哪些东西
这是 schemas/plugin.schema.json 里定义的全部字段,也是理解「插件」这个词的关键 —— 它同时管着提示词资产、规则、钩子和外部服务凭据。
| 字段 | 装的是什么 |
|---|---|
| skills | 带 frontmatter 的 SKILL.md,路径或 glob |
| rules | .mdc 规则文件 |
| commands | 命令文件 |
| agents | agent 定义文件 |
| hooks | 钩子配置文件路径,或内联对象 |
| mcpServers | MCP 配置:路径、内联对象,或两者组成的数组 |
| variables | 需要用户填的变量,用 JSON Schema 描述 |
| minClientVersions | cursor / grokbot / sand,值为 semver 或 never |
| license | SPDX 标识,如 MIT |
两个容易被忽略的细节。第一,schema 只强制一个字段 name,但写了 additionalProperties: false —— 字段名拼错不会静默忽略,而是直接校验失败。第二,variables 是真让用户填东西的:github 插件的清单里就要求必填 GITHUB_PERSONAL_ACCESS_TOKEN,同时它的客户端版本门写着 cursor 3.13.0。
上手:一条命令背后是两个钩子
安装很轻。以 ralph-loop 为例,README 里给的命令就一行:
/add-plugin ralph-loop
这个插件本身也是最好的教材:它让 Cursor 反复用同一句提示词自循环,直到任务完成。机制是两个钩子 —— afterAgentResponse 钩子逐条检查回复里有没有约定的完成标签,stop 钩子在每轮结束时判断迭代次数和标签,没完成就把原提示词当成 followup_message 再灌回去。提示词一个字不改,代码一轮轮变。用的时候有两个参数:--max-iterations 限次、--completion-promise 指定完成短语。
仓库的目录结构约定如下,照着搭就能自建内部市场:
plugins/ ├── .cursor-plugin/ │ └── marketplace.json # 市场清单(列出全部插件) ├── plugin-name/ │ ├── .cursor-plugin/ │ │ └── plugin.json # 单插件清单 │ ├── skills/ # agent skills(带 frontmatter 的 SKILL.md) │ ├── rules/ # Cursor rules(.mdc 文件) │ ├── mcp.json # MCP server 定义 │ ├── README.md │ ├── CHANGELOG.md │ └── LICENSE └── ...
清单文件本身长这样,字段少到可以背下来(下面这份是 create-plugin 的真实清单,注释为补充说明):
{
"name": "create-plugin",
"displayName": "Create Plugin",
"version": "1.0.0",
"author": { "name": "Cursor", "email": "plugins@cursor.com" },
"license": "MIT",
"category": "developer-tools",
"skills": "./skills/",
"rules": "./rules/",
"agents": "./agents/"
}
我的判断
适合谁:要给团队统一 agent 能力的工程负责人 —— 这份 schema 加上校验工作流,基本就是一个可直接抄的内部插件市场骨架;以及所有想知道「我到底装了什么」的 Cursor 用户。
不适合谁:指望像 npm 那样有海量第三方生态的人。77 条里相当一部分是 SaaS 集成,装上是真的要把账号和凭据接进去;对凭据流向敏感的组织,先看清 variables 要你填什么再决定。
- ▪「官方插件」不等于你的客户端能用。finance 插件的 minClientVersions 是 cursor: never、grokbot: 0.49.0、sand: 0.49.0,提交说明写得明白:它是个空插件,没有 skills 也没有 MCP server,只在 Grok Bot 里出现。官方市场里出现这种条目,说明清单的用途不只是给人装,也是给不同客户端做分发控制。
- ▪写钩子别用相对路径。仓库里有一次修复值得记:插件的钩子不从插件目录执行,写成 ./hooks/... 从别的 cwd 触发会以退出码 127 失败,官方改法是 bash "${CURSOR_PLUGIN_ROOT}/hooks/..."。自己写插件时直接照抄这个写法。
- ▪文档和清单会不同步。marketplace.json 里是 77 条,README 的插件表只有 74 条,差的三条是 outlook、outlook-calendar、onedrive —— 都在清单里,没进文档表格。要判断「现在到底能装什么」,永远以清单文件为准。
- ▪第三方条目未必是活的。third_party/x 在提交记录里被称为「stale read-only copy」(过期的只读副本),这类镜像型条目的更新节奏跟着上游走,不会自己维护。
- ▪许可要看两层。仓库根目录没有 LICENSE 文件,MIT 写在 README 的 License 小节和每个插件自己的清单里。要用某个具体插件的代码,翻进那个目录看它自己的许可,别拿根目录的结论代替。
数据与核实:cursor/plugins(https://github.com/cursor/plugins)· 7,365 star / 639 fork,GitHub 月度趋势新增 4,683 · 最近提交 2026-09-10 · 许可 MIT(见 README License 小节)· 清单条数与字段定义实测自 .cursor-plugin/marketplace.json 与 schemas/plugin.schema.json · Anthropic 对照数据来自 anthropics/claude-plugins-community(https://github.com/anthropics/claude-plugins-community)· 数据来源:GitHub Trending 官方页面 · 抓取时间:2026-09-11 06:50
你手里有没有装过一个「装完才发现根本用不上」的插件?或者反过来 —— 有哪个插件值得单独拎出来讲一期?评论区说说,我按你们点的来。
下期预告:这期把三家的插件市场摆平了,下一期换个方向看基础设施 —— volcengine/OpenViking(36,493 star,本月 +8,284),火山引擎开源的「自演化 Context 数据库」,把 agent 记忆、知识检索和 skills 塞进同一套存储。若核实后撑不起一期,就换月榜上的 omacom/omarchy(40,043 star,本月 +15,578)。
#Agent工具#插件生态#横向对比