You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Support external plugins in marketplace.json generation (#876)
The marketplace currently only includes plugins that live as local
directories in plugins/. This makes it impossible to list plugins
hosted in external GitHub repos, npm packages, or other git URLs.
Add plugins/external.json as a hand-curated list of external plugin
entries following the Claude Code plugin marketplace spec. The
generate-marketplace script now reads this file and merges external
entries as-is into the generated marketplace.json, sorted by name.
Changes:
- Add plugins/external.json (empty array, ready for entries)
- Update eng/generate-marketplace.mjs to load, merge, and sort
external plugins; warn on duplicate names; log counts
- Document the external plugin workflow in CONTRIBUTING.md and
AGENTS.md
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy file name to clipboardExpand all lines: AGENTS.md
+6Lines changed: 6 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -151,6 +151,12 @@ When adding a new agent, instruction, skill, hook, workflow, or plugin:
151
151
5. Run `npm run build` to update README.md and marketplace.json
152
152
6. Verify the plugin appears in `.github/plugin/marketplace.json`
153
153
154
+
**For External Plugins:**
155
+
1. Edit `plugins/external.json` and add an entry with `name`, `source`, `description`, and `version`
156
+
2. The `source` field should be an object specifying a GitHub repo, git URL, npm package, or pip package (see [CONTRIBUTING.md](CONTRIBUTING.md#adding-external-plugins))
157
+
3. Run `npm run build` to regenerate marketplace.json
158
+
4. Verify the external plugin appears in `.github/plugin/marketplace.json`
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+28Lines changed: 28 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -152,6 +152,34 @@ plugins/my-plugin-id/
152
152
-**Clear purpose**: The plugin should solve a specific problem or workflow
153
153
-**Validate before submitting**: Run `npm run plugin:validate` to ensure your plugin is valid
154
154
155
+
#### Adding External Plugins
156
+
157
+
External plugins are plugins hosted outside this repository (e.g., in a GitHub repo, npm package, or git URL). They are listed in `plugins/external.json` and merged into the generated `marketplace.json` during build.
158
+
159
+
To add an external plugin, append an entry to `plugins/external.json` following the [Claude Code plugin marketplace spec](https://code.claude.com/docs/en/plugin-marketplaces#plugin-entries). Each entry requires `name`, `source`, `description`, and `version`:
160
+
161
+
```json
162
+
[
163
+
{
164
+
"name": "my-external-plugin",
165
+
"source": {
166
+
"source": "github",
167
+
"repo": "owner/plugin-repo"
168
+
},
169
+
"description": "Description of the external plugin",
After editing `plugins/external.json`, run `npm run build` to regenerate `marketplace.json`.
182
+
155
183
### Adding Hooks
156
184
157
185
Hooks enable automated workflows triggered by specific events during GitHub Copilot coding agent sessions, such as session start, session end, user prompts, and tool usage.
0 commit comments