Two thousand plugins and no way to find one
There is a public catalog of Claude Code plugins. I pulled it expecting a few hundred entries and got this:
2,269
plugins in the public community catalog, one of several catalogs
788
of them mentioning skills or prompts — the largest single theme
99
that say which other AI tools they work with, out of all 2,269
That last number is the one worth sitting with. Ninety-nine out of two thousand two hundred and sixty-nine. Everything else leaves you to guess whether it runs anywhere except the tool it was written for — and, as it turns out, most of it does.
What is actually being distributed
A skill is a folder with a SKILL.md in it: some frontmatter saying when it applies, then the instructions. Its economics are unlike anything else you put in front of a model.
“A skill's body loads only when it's used, so long reference material costs almost nothing until you need it.”
Only the description sits in context. The body loads when the task matches. That is why a skill is the right container for a practice — a review checklist, a deployment recipe, a policy capping how much an agent may spend — in a way that pasting the same text into a config file is not. Pasted, you pay for it on every turn of every session. As a skill, you pay for it on the turns that use it.
A plugin is a bundle of those, plus agents, hooks, MCP servers and a manifest. A marketplace is a catalog of plugins somebody can add with one command.
Skills travel. The packaging does not.
The format is an open standard — written by Anthropic, released rather than kept, and adopted across the ecosystem. Roughly forty-five products support it: Cursor, OpenAI Codex, GitHub Copilot, VS Code, Gemini CLI, Goose, OpenHands, Roo Code, opencode, Amp, Kiro, Factory, Mistral Vibe, Tabnine and more.
| what | travels to other tools? | why |
|---|---|---|
| A skill: SKILL.md and its files | yes | an open standard, adopted by around forty-five products |
| An MCP server inside a plugin | yes | its own cross-tool standard |
| The plugin wrapper: hooks, agents, manifest | no | that part is Claude Code packaging |
| The install command | no | /plugin marketplace add is a Claude Code command |
So the ecosystem is portable in principle and unlabelled in practice. Two thousand skills that would work in Cursor, filed under a format whose install command Cursor does not have, described in pages that mostly do not mention Cursor exists.
That gap is the entire opening. The most useful column a catalog could carry — does this run in my tool — is the one nobody fills in.
Curation is subtraction
Here is what selecting for one point of view actually looks like, from two thousand entries down to a shelf:
The step from 226 to 10 is judgement and the step from 10 to 9 is a rule. The rule is worth explaining because it came out stricter than the law requires.
The licence rule, and why it is stricter than it needs to be
Of the ten candidates, nine carry MIT or Apache-2.0. One has no licence file at all.
No licence does not mean free. It means all rights reserved — the default, absent an explicit grant. We could lawfully link to it, because linking is not copying, and for a while the plan was to list it with a note.
That was the wrong call, and the reason has nothing to do with our exposure. A catalog exists so people can install things. Sending somebody to a repository they cannot lawfully use does not inform them; it hands them a problem wearing the costume of a recommendation. So an entry without a licence is not listed, full stop, and its author can add one and be listed the same day.
The rule is now a test in the codebase rather than a paragraph in a policy, because paragraphs get forgotten by whoever edits the list in six months and tests do not.
Credit is the design, not the disclaimer
Aggregators have a reliable failure mode: they slowly become the brand on other people's work. The listing gets restyled, the collection becomes a "section", the author's name shrinks into grey type, and eventually the catalog is what people cite.
| what appears | whose name is on it |
|---|---|
| A plugin or skill | its author — named on the listing, linked to the source |
| A collection | its creator — it stays their collection, not a section of ours |
| The selection itself | ours — choosing what to list is the only part we did |
Which is also why we index and link rather than host. Installing pulls from the author's source, so nothing is mirrored or vendored and no licence's redistribution terms are ever exercised on our side. Updates come from the author's repository, not from a copy under our control. The catalog is a pointer.
And because a pointer is a weak form of possession, the relationship has to be the author's to set — in both directions, as many times as they like:
- take my work down
- put me back
- list me, I have never been here
The first two are the creator's decision rather than ours and are honoured without conditions. Leaving is not a ban. Only the third is a judgement call.
One index, not a directory of directories
The direction is to end up above the catalogs rather than beside them. There are two versions of that and one is a trap.
The trap is a page listing the official catalog, the community catalog, this vendor's and that team's. It inherits the fragmentation instead of removing it — the reader still opens four tabs and searches each. A bookmark page is not a product.
The version worth building is a single index across all of them, at the level of the skill. You search once and get every match from every catalog, each labelled with its author, its licence, and the tools it runs in. The catalogs become sources, the way a search engine has sources.
Indexing at skill level rather than plugin level matters more than it sounds. A plugin bundling four skills is four things somebody might want, and today they are invisible unless you already know the bundle exists.
A single surface also removes an ambiguity that a curated shelf sitting next to a bigger catalog cannot avoid. If you find something in one and not the other, what did that mean — judged and rejected, or never looked at? With one index there is no such question: present means it cleared the bar, absent means it did not.
The cost of that decision is real. Curation can no longer lag behind the index, because there is no staging area for entries nobody has assessed yet. That turns the quality question from a nice-to-have into a blocker.
What is genuinely undecided
Three things, published rather than hidden, because a launch page that conceals its open questions is a brochure.
What curation screens for beyond "it works", and whether that bar is published. It has to be, now that anyone can ask to be listed against it.
How the three requests above are received and tracked. A ticket queue on the site is the obvious shape and it does not exist yet. Until it does, the commitment stands regardless of how you reach us — a creator should not have to wait for our tooling to get their own work taken down.
Whether it is public from day one or starts private while the set settles.
And one question the whole strategy rests on: whether "which tools does this run in" can be established at scale. Hand-checked it does not scale, self-declared it is unreliable, tested it is expensive. That label is the reason to be the layer above at all, so how it gets filled decides whether any of this is worth doing.
The selection so far, with every author and licence, is at Marketplace.