Creating a marketplace
Build a personal or org-level marketplace with skills curated for your conventions. Authoring one is a terminal job start to finish — a marketplace is a Git repository the CLI scaffolds, packages and indexes, and the editor reads catalogues rather than building them. Distributing one is the other way round, and that section is at the foot of this page.
Quick start
Section titled “Quick start”npx agents-inc new marketplace acme # scaffold a marketplace the CLI already acceptscd acme # replace the placeholder author, then the example skillnpx agents-inc build plugins # package each skill and agentnpx agents-inc build marketplace # write marketplace.json, the index an install readsPoint a project at it with npx agents-inc init --marketplace github:acme/skills. The rest of
this page is what each of those steps expects of the directory, and what build marketplace
refuses to publish.
Getting Started
Section titled “Getting Started”The fastest way to start is to scaffold one:
npx agents-inc new marketplace acmeThat writes a marketplace the CLI already accepts — its skill ids are namespaced for you, its rules
file loads, and doctor passes in the new directory. You can also build one by hand; four things
make a directory a marketplace the CLI can read:
package.json # name, version, description and author — all four requiredconfig/skill-categories.ts # the categories your skills fall intoconfig/skill-rules.ts # relationships — see the note belowconfig/stacks.ts # the stacks the wizard offerssrc/skills/{skill-name}/ # at least one skill — SKILL.md + metadata.yamlA note on config/skill-rules.ts. Relationship rules — conflicts, requires, alternatives —
currently name skills from the public catalogue only. Your own skills cannot be named there yet,
and a rule that names one will fail to load. The file itself is still required, so ship it with a
version and no relationships:
export default { version: "1.0.0" }Your marketplace works fully without them: skills install, reach their sub-agents and compile. What you lose is the wizard’s incompatibility hints between your own skills. Generating those automatically is planned.
Copy the shapes of those four config files from the public marketplace at
agents-inc/skills, which is the reference implementation of
every one of them. npx agents-inc doctor reads a marketplace and reports what is missing or
malformed, so run it against your directory before pointing a project at it.
Name your skills for your marketplace
Section titled “Name your skills for your marketplace”Every skill id in your marketplace must begin with your marketplace’s name. If your
package.json names the marketplace acme, its skills are acme-web-frontend,
acme-api-database, and so on — never a bare web-frontend.
This is what lets your marketplace coexist with the public one and with any other. A skill id is the
name of the directory it installs into, and a machine can hold installs at two scopes — one in your
home directory, one in a project. Two marketplaces both shipping a bare web-frontend would put two
different skills under one name, and whichever landed second would quietly win. Prefixing makes every
id unique, so the two simply never meet.
Three names you cannot use
Section titled “Three names you cannot use”agents-inc, external and local are reserved, and build marketplace refuses them.
agents-inc is the public marketplace’s own namespace — its skills are unprefixed, so the bare
web-frontend and everything like it already belong to it. external and local hold the skills
that belong to no marketplace at all: one you added from a repository, one you wrote yourself.
Publishing under any of the three would claim ids that are not yours.
Pick anything else. Your package.json name is the default, and --name overrides it when that name
is npm-scoped.
What the build checks
Section titled “What the build checks”build marketplace refuses to write a marketplace.json if either rule is broken:
Marketplace 'acme' ships 2 skill id(s) outside its own namespace.Every skill id must begin with the marketplace's name: api-framework-hono -> acme-api-framework-hono web-framework-react -> acme-web-framework-reactRename each skill directory and the id in its metadata, re-run 'buildplugins', then build the marketplace again.A refused build writes nothing, so a marketplace that would break on someone else’s machine never gets published in the first place.
Workflow
Section titled “Workflow”- Start with existing skills from the public marketplace or write your own
- Iterate on skills using the
skill-summonersubagent to align them with your project conventions - Build the marketplace index:
npx agents-inc build marketplaceThis generates marketplace.json, the index that the CLI reads when installing from your marketplace.
- Point a project at your marketplace when you install it:
npx agents-inc init --marketplace github:acme/skillsChoosing a marketplace happens at init — that is the moment an install decides where its skills
come from. edit changes what you have installed, not where it comes from.
Distribution
Section titled “Distribution”Marketplaces are Git repositories. Share them by giving your team access to the repo, and the route
in from there is the editor’s Marketplace button: owner/repo, plus a
token for a private one. That fetch goes straight to GitHub from the browser, so the token stays
there and reaches nothing else. The id the editor hands out afterwards carries the marketplace it
read, so a teammate running init --from <id> resolves your skills against your repository without
having to name it. See Marketplaces in the editor, and
Use a private marketplace for the consumer’s whole side
of it.
Skills and stacks can also be packaged as Claude Code plugins:
npx agents-inc build plugins # Package individual skills and agents