Claude Code plugin marketplace. Plugins live under plugins/<name>/ and are registered in .claude-plugin/marketplace.json.
- Synced from an external plugin repo — e.g.
cctabslives atgenerativereality/cctabs. That repo runsnpm run sync-pluginto copyplugin.json+SKILL.mdhere, commit, and push. - Authored directly in this repo — e.g.
mytranscriber. Edit files underplugins/<name>/directly; no external repo, no sync script. Bumpversioninplugin.jsonwhen you ship a substantive change.
Whichever mode, the same on-disk layout is canonical:
plugins/<name>/
.claude-plugin/plugin.json
skills/<skill-name>/SKILL.md
[.mcp.json] # optional, for plugins that ship an MCP server
External-repo plugin:
- Make changes in the plugin's own repo
- Run
npm run sync-plugin— syncs files here, commits, and pushes
Directly-authored plugin:
- Edit files in
plugins/<name>/ - Bump
versioninplugin.jsonif it's a substantive change - Commit + push from this repo
Both: users pick up updates via Claude Code:
/plugins→ Marketplaces → Updategenerativereality- Then update the individual plugin from the plugins list
/reload-pluginsto apply in the current session
- Create
plugins/<name>/.claude-plugin/plugin.json(name, description, version, author, homepage, license) - Create
plugins/<name>/skills/<skill-name>/SKILL.mdwith frontmatter (name,description) - Add an entry to
.claude-plugin/marketplace.jsonunderplugins[](name, description, author, source./plugins/<name>, category, homepage) - Add a row to
README.md's plugins table - Commit and push