1# Plugin marketplaces1# Create and distribute a plugin marketplace
2 2
3> Create and manage plugin marketplaces to distribute Claude Code extensions across teams and communities.3> Build and host plugin marketplaces to distribute Claude Code extensions across teams and communities.
4 4
5Plugin marketplaces are catalogs of available plugins that make it easy to discover, install, and manage Claude Code extensions. This guide shows you how to use existing marketplaces and create your own for team distribution.5A plugin marketplace is a catalog that lets you distribute plugins to others. Marketplaces provide centralized discovery, version tracking, automatic updates, and support for multiple source types (git repositories, local paths, and more). This guide shows you how to create your own marketplace to share plugins with your team or community.
6 6
7## Overview7Looking to install plugins from an existing marketplace? See [Discover and install prebuilt plugins](/en/discover-plugins).
8
9A marketplace is a JSON file that lists available plugins and describes where to find them. Marketplaces provide:
10
11* **Centralized discovery**: Browse plugins from multiple sources in one place
12* **Version management**: Track and update plugin versions automatically
13* **Automatic updates**: Keep plugins current with [per-marketplace auto-update settings](#auto-update-settings)
14* **Team distribution**: Share required plugins across your organization
15* **Flexible sources**: Support for git repositories, GitHub repos, local paths, and package managers
16
17### Prerequisites
18
19* Claude Code installed and running
20* Basic familiarity with JSON file format
21* For creating marketplaces: Git repository or local development environment
22
23## Add and use marketplaces
24
25Add marketplaces using the `/plugin marketplace` commands to access plugins from different sources:
26
27### Add GitHub marketplaces
28
29```shell Add a GitHub repository containing .claude-plugin/marketplace.json theme={null}
30/plugin marketplace add owner/repo
31```
32
33### Add Git repositories
34
35```shell Add any git repository theme={null}
36/plugin marketplace add https://gitlab.com/company/plugins.git
37```
38
39### Add local marketplaces for development
40
41```shell Add local directory containing .claude-plugin/marketplace.json theme={null}
42/plugin marketplace add ./my-marketplace
43```
44
45```shell Add direct path to marketplace.json file theme={null}
46/plugin marketplace add ./path/to/marketplace.json
47```
48
49```shell Add remote marketplace.json via URL theme={null}
50/plugin marketplace add https://url.of/marketplace.json
51```
52 8
53### Install plugins from marketplaces9## Overview
54
55Once you've added marketplaces, install plugins directly:
56 10
57```shell Install from any known marketplace theme={null}11Creating and distributing a marketplace involves:
58/plugin install plugin-name@marketplace-name
59```
60 12
61```shell Browse available plugins interactively theme={null}131. **Creating plugins**: build one or more plugins with commands, agents, hooks, MCP servers, or LSP servers. This guide assumes you already have plugins to distribute; see [Create plugins](/en/plugins) for details on how to create them.
62/plugin142. **Creating a marketplace file**: define a `marketplace.json` that lists your plugins and where to find them (see [Create the marketplace file](#create-the-marketplace-file)).
63```153. **Host the marketplace**: push to GitHub, GitLab, or another git host (see [Host and distribute marketplaces](#host-and-distribute-marketplaces)).
164. **Share with users**: users add your marketplace with `/plugin marketplace add` and install individual plugins (see [Discover and install plugins](/en/discover-plugins)).
64 17
65### Verify marketplace installation18Once your marketplace is live, you can update it by pushing changes to your repository. Users refresh their local copy with `/plugin marketplace update`.
66 19
67After adding a marketplace:20## Walkthrough: create a local marketplace
68 21
691. **List marketplaces**: Run `/plugin marketplace list` to confirm it's added22This example creates a marketplace with one plugin: a `/review` command for code reviews. You'll create the directory structure, add a slash command, create the plugin manifest and marketplace catalog, then install and test it.
702. **Browse plugins**: Use `/plugin` to see available plugins from your marketplace
713. **Test installation**: Try installing a plugin to verify the marketplace works correctly
72 23
73### Example plugin marketplace24<Steps>
25 <Step title="Create the directory structure">
26 ```bash theme={null}
27 mkdir -p my-marketplace/.claude-plugin
28 mkdir -p my-marketplace/plugins/review-plugin/.claude-plugin
29 mkdir -p my-marketplace/plugins/review-plugin/commands
30 ```
31 </Step>
74 32
75Claude Code maintains a marketplace of [demo plugins](https://github.com/anthropics/claude-code/tree/main/plugins). These plugins are examples of what's possible with the plugin system.33 <Step title="Create the plugin command">
34 Create a Markdown file that defines what the `/review` command does.
76 35
77```shell Add the marketplace theme={null}36 ```markdown my-marketplace/plugins/review-plugin/commands/review.md theme={null}
78/plugin marketplace add anthropics/claude-code37 Review the code I've selected or the recent changes for:
79```38 - Potential bugs or edge cases
39 - Security concerns
40 - Performance issues
41 - Readability improvements
80 42
81## Configure team marketplaces43 Be concise and actionable.
44 ```
45 </Step>
82 46
83Set up automatic marketplace installation for team projects by specifying required marketplaces in `.claude/settings.json`:47 <Step title="Create the plugin manifest">
48 Create a `plugin.json` file that describes the plugin. The manifest goes in the `.claude-plugin/` directory.
84 49
85```json theme={null}50 ```json my-marketplace/plugins/review-plugin/.claude-plugin/plugin.json theme={null}
86{51 {
87 "extraKnownMarketplaces": {52 "name": "review-plugin",
88 "team-tools": {53 "description": "Adds a /review command for quick code reviews",
89 "source": {54 "version": "1.0.0"
90 "source": "github",
91 "repo": "your-org/claude-plugins"
92 }
93 },
94 "project-specific": {
95 "source": {
96 "source": "git",
97 "url": "https://git.company.com/project-plugins.git"
98 }
99 }
100 }55 }
101}56 ```
102```57 </Step>
103
104When team members trust the repository folder, Claude Code automatically installs these marketplaces and any plugins specified in the `enabledPlugins` field.
105
106## Enterprise marketplace restrictions
107 58
108For organizations requiring strict control over plugin sources, enterprise administrators can restrict which plugin marketplaces users are allowed to add using the `strictKnownMarketplaces` setting in managed settings.59 <Step title="Create the marketplace file">
60 Create the marketplace catalog that lists your plugin.
109 61
110**Managed settings file locations**:62 ```json my-marketplace/.claude-plugin/marketplace.json theme={null}
111
112* **macOS**: `/Library/Application Support/ClaudeCode/managed-settings.json`
113* **Linux and WSL**: `/etc/claude-code/managed-settings.json`
114* **Windows**: `C:\ProgramData\ClaudeCode\managed-settings.json`
115
116**Restriction behavior**:
117
118When `strictKnownMarketplaces` is configured in managed settings:
119
120* **Undefined** (default): No restrictions - users can add any marketplace
121* **Empty array `[]`**: Complete lockdown - users cannot add any new marketplaces
122* **List of sources**: Users can only add marketplaces that match the allowlist exactly
123
124**Basic examples**:
125
126Disable all marketplace additions:
127
128```json theme={null}
129{
130 "strictKnownMarketplaces": []
131}
132```
133
134Allow specific marketplaces only:
135
136```json theme={null}
137{
138 "strictKnownMarketplaces": [
139 {
140 "source": "github",
141 "repo": "company/approved-plugins"
142 },
143 {63 {
144 "source": "github",64 "name": "my-plugins",
145 "repo": "company/security-tools",65 "owner": {
146 "ref": "v2.0"66 "name": "Your Name"
147 },67 },
68 "plugins": [
148 {69 {
149 "source": "url",70 "name": "review-plugin",
150 "url": "https://internal.company.com/plugins/marketplace.json"71 "source": "./plugins/review-plugin",
72 "description": "Adds a /review command for quick code reviews"
151 }73 }
152 ]74 ]
153}75 }
154```76 ```
77 </Step>
155 78
156**Key characteristics**:79 <Step title="Add and install">
80 Add the marketplace and install the plugin.
157 81
158* Enforced BEFORE network/filesystem operations82 ```shell theme={null}
159* Uses exact matching (including optional `ref` and `path` fields for git sources)83 /plugin marketplace add ./my-marketplace
160* Cannot be overridden by user or project settings84 /plugin install review-plugin@my-plugins
161* Only affects adding NEW marketplaces (previously installed marketplaces still work)85 ```
86 </Step>
162 87
163See [strictKnownMarketplaces reference](/en/settings#strictknownmarketplaces) for complete configuration details, including all six supported source types, exact matching rules, and comparison with `extraKnownMarketplaces`.88 <Step title="Try it out">
89 Select some code in your editor and run your new command.
164 90
165***91 ```shell theme={null}
92 /review
93 ```
94 </Step>
95</Steps>
166 96
167## Create your own marketplace97To learn more about what plugins can do, including hooks, agents, MCP servers, and LSP servers, see [Plugins](/en/plugins).
168 98
169Build and distribute custom plugin collections for your team or community.99<Note>
100 **How plugins are installed**: When users install a plugin, Claude Code copies the plugin directory to a cache location. This means plugins can't reference files outside their directory using paths like `../shared-utils`, because those files won't be copied.
170 101
171### Prerequisites for marketplace creation102 If you need to share files across plugins, use symlinks (which are followed during copying) or restructure your marketplace so the shared directory is inside the plugin source path. See [Plugin caching and file resolution](/en/plugins-reference#plugin-caching-and-file-resolution) for details.
103</Note>
172 104
173* Git repository (GitHub, GitLab, or other git hosting)105## Create the marketplace file
174* Understanding of JSON file format
175* One or more plugins to distribute
176 106
177### Create the marketplace file107Create `.claude-plugin/marketplace.json` in your repository root. This file defines your marketplace's name, owner information, and a list of plugins with their sources.
178 108
179Create `.claude-plugin/marketplace.json` in your repository root:109Each plugin entry needs at minimum a `name` and `source` (where to fetch it from). See the [full schema](#marketplace-schema) below for all available fields.
180 110
181```json theme={null}111```json theme={null}
182{112{
183 "name": "company-tools",113 "name": "company-tools",
184 "owner": {114 "owner": {
185 "name": "DevTools Team",115 "name": "DevTools Team",
186 "email": "devtools@company.com"116 "email": "devtools@example.com"
187 },117 },
188 "plugins": [118 "plugins": [
189 {119 {
207}137}
208```138```
209 139
210### Marketplace schema140## Marketplace schema
211 141
212#### Required fields142### Required fields
213 143
214| Field | Type | Description |144| Field | Type | Description | Example |
215| :-------- | :----- | :--------------------------------------------- |145| :-------- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------- |
216| `name` | string | Marketplace identifier (kebab-case, no spaces) |146| `name` | string | Marketplace identifier (kebab-case, no spaces). This is public-facing: users see it when installing plugins (for example, `/plugin install my-tool@your-marketplace`). | `"acme-tools"` |
217| `owner` | object | Marketplace maintainer information |147| `owner` | object | Marketplace maintainer information ([see fields below](#owner-fields)) | |
218| `plugins` | array | List of available plugins |148| `plugins` | array | List of available plugins | See below |
149
150<Note>
151 **Reserved names**: The following marketplace names are reserved for official Anthropic use and cannot be used by third-party marketplaces: `claude-code-marketplace`, `claude-code-plugins`, `claude-plugins-official`, `anthropic-marketplace`, `anthropic-plugins`, `agent-skills`, `life-sciences`. Names that impersonate official marketplaces (like `official-claude-plugins` or `anthropic-tools-v2`) are also blocked.
152</Note>
153
154### Owner fields
219 155
220#### Optional metadata156| Field | Type | Required | Description |
157| :------ | :----- | :------- | :------------------------------- |
158| `name` | string | Yes | Name of the maintainer or team |
159| `email` | string | No | Contact email for the maintainer |
160
161### Optional metadata
221 162
222| Field | Type | Description |163| Field | Type | Description |
223| :--------------------- | :----- | :------------------------------------ |164| :--------------------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
224| `metadata.description` | string | Brief marketplace description |165| `metadata.description` | string | Brief marketplace description |
225| `metadata.version` | string | Marketplace version |166| `metadata.version` | string | Marketplace version |
226| `metadata.pluginRoot` | string | Base path for relative plugin sources |167| `metadata.pluginRoot` | string | Base directory prepended to relative plugin source paths (for example, `"./plugins"` lets you write `"source": "formatter"` instead of `"source": "./plugins/formatter"`) |
227 168
228### Plugin entries169## Plugin entries
229 170
230<Note>171Each plugin entry in the `plugins` array describes a plugin and where to find it. You can include any field from the [plugin manifest schema](/en/plugins-reference#plugin-manifest-schema) (like `description`, `version`, `author`, `commands`, `hooks`, etc.), plus these marketplace-specific fields: `source`, `category`, `tags`, and `strict`.
231 Plugin entries are based on the *plugin manifest schema* (with all fields made
232 optional) plus marketplace-specific fields (`source`, `category`, `tags`,
233 `strict`), with `name` being required.
234</Note>
235 172
236**Required fields:**173### Required fields
237 174
238| Field | Type | Description |175| Field | Type | Description |
239| :------- | :------------- | :---------------------------------------- |176| :------- | :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------- |
240| `name` | string | Plugin identifier (kebab-case, no spaces) |177| `name` | string | Plugin identifier (kebab-case, no spaces). This is public-facing: users see it when installing (for example, `/plugin install my-plugin@marketplace`). |
241| `source` | string\|object | Where to fetch the plugin from |178| `source` | string\|object | Where to fetch the plugin from (see [Plugin sources](#plugin-sources) below) |
242 179
243#### Optional plugin fields180### Optional plugin fields
244 181
245**Standard metadata fields:**182**Standard metadata fields:**
246 183
247| Field | Type | Description |184| Field | Type | Description |
248| :------------ | :------ | :---------------------------------------------------------------- |185| :------------ | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
249| `description` | string | Brief plugin description |186| `description` | string | Brief plugin description |
250| `version` | string | Plugin version |187| `version` | string | Plugin version |
251| `author` | object | Plugin author information |188| `author` | object | Plugin author information (`name` required, `email` optional) |
252| `homepage` | string | Plugin homepage or documentation URL |189| `homepage` | string | Plugin homepage or documentation URL |
253| `repository` | string | Source code repository URL |190| `repository` | string | Source code repository URL |
254| `license` | string | SPDX license identifier (for example, MIT, Apache-2.0) |191| `license` | string | SPDX license identifier (for example, MIT, Apache-2.0) |
255| `keywords` | array | Tags for plugin discovery and categorization |192| `keywords` | array | Tags for plugin discovery and categorization |
256| `category` | string | Plugin category for organization |193| `category` | string | Plugin category for organization |
257| `tags` | array | Tags for searchability |194| `tags` | array | Tags for searchability |
258| `strict` | boolean | Require plugin.json in plugin folder (default: true) <sup>1</sup> |195| `strict` | boolean | Controls whether plugins need their own `plugin.json` file. When `true` (default), the plugin source must contain a `plugin.json`, and any fields you add here in the marketplace entry get merged with it. When `false`, the plugin doesn't need its own `plugin.json`; the marketplace entry itself defines everything about the plugin. Use `false` when you want to define simple plugins entirely in your marketplace file. |
259 196
260**Component configuration fields:**197**Component configuration fields:**
261 198
265| `agents` | string\|array | Custom paths to agent files |202| `agents` | string\|array | Custom paths to agent files |
266| `hooks` | string\|object | Custom hooks configuration or path to hooks file |203| `hooks` | string\|object | Custom hooks configuration or path to hooks file |
267| `mcpServers` | string\|object | MCP server configurations or path to MCP config |204| `mcpServers` | string\|object | MCP server configurations or path to MCP config |
205| `lspServers` | string\|object | LSP server configurations or path to LSP config |
268 206
269*<sup>1 - When `strict: true` (default), the plugin must include a `plugin.json` manifest file, and marketplace fields supplement those values. When `strict: false`, the plugin.json is optional. If it's missing, the marketplace entry serves as the complete plugin manifest.</sup>*207## Plugin sources
270 208
271### Plugin sources209### Relative paths
272
273#### Relative paths
274 210
275For plugins in the same repository:211For plugins in the same repository:
276 212
281}217}
282```218```
283 219
284#### GitHub repositories220### GitHub repositories
285 221
286```json theme={null}222```json theme={null}
287{223{
293}229}
294```230```
295 231
296#### Git repositories232### Git repositories
297 233
298```json theme={null}234```json theme={null}
299{235{
305}241}
306```242```
307 243
308#### Advanced plugin entries244### Advanced plugin entries
309 245
310Plugin entries can override default component locations and provide additional metadata. Note that `${CLAUDE_PLUGIN_ROOT}` is an environment variable that resolves to the plugin's installation directory (for details see [Environment variables](/en/plugins-reference#environment-variables)):246This example shows a plugin entry using many of the optional fields, including custom paths for commands, agents, hooks, and MCP servers:
311 247
312```json theme={null}248```json theme={null}
313{249{
320 "version": "2.1.0",256 "version": "2.1.0",
321 "author": {257 "author": {
322 "name": "Enterprise Team",258 "name": "Enterprise Team",
323 "email": "enterprise@company.com"259 "email": "enterprise@example.com"
324 },260 },
325 "homepage": "https://docs.company.com/plugins/enterprise-tools",261 "homepage": "https://docs.example.com/plugins/enterprise-tools",
326 "repository": "https://github.com/company/enterprise-plugin",262 "repository": "https://github.com/company/enterprise-plugin",
327 "license": "MIT",263 "license": "MIT",
328 "keywords": ["enterprise", "workflow", "automation"],264 "keywords": ["enterprise", "workflow", "automation"],
356}292}
357```293```
358 294
359<Note>295Key things to notice:
360 **Schema relationship**: Plugin entries use the plugin manifest schema with
361 all fields made optional, plus marketplace-specific fields (`source`,
362 `strict`, `category`, `tags`). This means any field valid in a `plugin.json`
363 file can also be used in a marketplace entry. When `strict: false`, the
364 marketplace entry serves as the complete plugin manifest if no `plugin.json`
365 exists. When `strict: true` (default), marketplace fields supplement the
366 plugin's own manifest file.
367</Note>
368 296
369***297* **`commands` and `agents`**: You can specify multiple directories or individual files. Paths are relative to the plugin root.
298* **`${CLAUDE_PLUGIN_ROOT}`**: Use this variable in hooks and MCP server configs to reference files within the plugin's installation directory. This is necessary because plugins are copied to a cache location when installed.
299* **`strict: false`**: Since this is set to false, the plugin doesn't need its own `plugin.json`. The marketplace entry defines everything.
370 300
371## Host and distribute marketplaces301## Host and distribute marketplaces
372 302
373Choose the best hosting strategy for your plugin distribution needs.
374
375### Host on GitHub (recommended)303### Host on GitHub (recommended)
376 304
377GitHub provides the easiest distribution method:305GitHub provides the easiest distribution method:
378 306
3791. **Create a repository**: Set up a new repository for your marketplace3071. **Create a repository**: Set up a new repository for your marketplace
3802. **Add marketplace file**: Create `.claude-plugin/marketplace.json` with your plugin definitions3082. **Add marketplace file**: Create `.claude-plugin/marketplace.json` with your plugin definitions
3813. **Share with teams**: Team members add with `/plugin marketplace add owner/repo`3093. **Share with teams**: Users add your marketplace with `/plugin marketplace add owner/repo`
382 310
383**Benefits**: Built-in version control, issue tracking, and team collaboration features.311**Benefits**: Built-in version control, issue tracking, and team collaboration features.
384 312
385### Host on other git services313### Host on other git services
386 314
387Any git hosting service works for marketplace distribution, using a URL to an arbitrary git repository.315Any git hosting service works, such as GitLab, Bitbucket, and self-hosted servers. Users add with the full repository URL:
388
389For example, using GitLab:
390 316
391```shell theme={null}317```shell theme={null}
392/plugin marketplace add https://gitlab.com/company/plugins.git318/plugin marketplace add https://gitlab.com/company/plugins.git
393```319```
394 320
395### Use local marketplaces for development321### Test locally before distribution
396 322
397Test your marketplace locally before distribution:323Test your marketplace locally before sharing:
398 324
399```shell Add local marketplace for testing theme={null}325```shell theme={null}
400/plugin marketplace add ./my-local-marketplace326/plugin marketplace add ./my-local-marketplace
401```
402
403```shell Test plugin installation theme={null}
404/plugin install test-plugin@my-local-marketplace327/plugin install test-plugin@my-local-marketplace
405```328```
406 329
407## Manage marketplace operations330For the full range of add commands (GitHub, Git URLs, local paths, remote URLs), see [Add marketplaces](/en/discover-plugins#add-marketplaces).
408 331
409### List known marketplaces332### Require marketplaces for your team
410 333
411```shell List all configured marketplaces theme={null}334You can configure your repository so team members are automatically prompted to install your marketplace when they trust the project folder. Add your marketplace to `.claude/settings.json`:
412/plugin marketplace list
413```
414 335
415Shows all configured marketplaces with their sources and status.336```json theme={null}
337{
338 "extraKnownMarketplaces": {
339 "company-tools": {
340 "source": {
341 "source": "github",
342 "repo": "your-org/claude-plugins"
343 }
344 }
345 }
346}
347```
416 348
417### Update marketplace metadata349You can also specify which plugins should be enabled by default:
418 350
419```shell Refresh marketplace metadata theme={null}351```json theme={null}
420/plugin marketplace update marketplace-name352{
353 "enabledPlugins": {
354 "code-formatter@company-tools": true,
355 "deployment-tools@company-tools": true
356 }
357}
421```358```
422 359
423Refreshes plugin listings and metadata from the marketplace source.360For full configuration options, see [Plugin settings](/en/settings#plugin-settings).
424 361
425### Remove a marketplace362### Enterprise marketplace restrictions
426 363
427```shell Remove a marketplace theme={null}364For organizations requiring strict control over plugin sources, enterprise administrators can restrict which plugin marketplaces users are allowed to add using the [`strictKnownMarketplaces`](/en/settings#strictknownmarketplaces) setting in managed settings.
428/plugin marketplace remove marketplace-name365
429```366When `strictKnownMarketplaces` is configured in managed settings, the restriction behavior depends on the value:
430 367
431Removes the marketplace from your configuration.368| Value | Behavior |
369| ------------------- | ---------------------------------------------------------------- |
370| Undefined (default) | No restrictions. Users can add any marketplace |
371| Empty array `[]` | Complete lockdown. Users cannot add any new marketplaces |
372| List of sources | Users can only add marketplaces that match the allowlist exactly |
373
374#### Common configurations
375
376Disable all marketplace additions:
432 377
433<Warning>378```json theme={null}
434 Removing a marketplace will uninstall any plugins you installed from it.379{
435</Warning>380 "strictKnownMarketplaces": []
381}
382```
436 383
437***384Allow specific marketplaces only:
385
386```json theme={null}
387{
388 "strictKnownMarketplaces": [
389 {
390 "source": "github",
391 "repo": "acme-corp/approved-plugins"
392 },
393 {
394 "source": "github",
395 "repo": "acme-corp/security-tools",
396 "ref": "v2.0"
397 },
398 {
399 "source": "url",
400 "url": "https://plugins.example.com/marketplace.json"
401 }
402 ]
403}
404```
438 405
439## Auto-update settings406#### How restrictions work
440 407
441Claude Code can automatically update marketplaces and their installed plugins at startup. This keeps your plugins current without manual intervention.408Restrictions are validated early in the plugin installation process, before any network requests or filesystem operations occur. This prevents unauthorized marketplace access attempts.
442 409
443### How auto-update works410The allowlist uses exact matching. For a marketplace to be allowed, all specified fields must match exactly:
444 411
445When auto-update is enabled for a marketplace:412* For GitHub sources: `repo` is required, and `ref` or `path` must also match if specified in the allowlist
413* For URL sources: the full URL must match exactly
446 414
4471. **Marketplace refresh**: Claude Code pulls the latest marketplace data (git pull or re-download)415Because `strictKnownMarketplaces` is set in [managed settings](/en/settings#settings-file-locations), individual users and project configurations cannot override these restrictions.
4482. **Plugin updates**: Installed plugins from that marketplace are updated to their latest versions
4493. **Notification**: If any plugins were updated, you'll see a notification suggesting a restart
450 416
451### Configure auto-update per marketplace417For complete configuration details including all supported source types and comparison with `extraKnownMarketplaces`, see the [strictKnownMarketplaces reference](/en/settings#strictknownmarketplaces).
452 418
453Toggle auto-update for individual marketplaces through the UI:419## Validation and testing
454 420
4551. Run `/plugin` to open the plugin manager421Test your marketplace before sharing.
4562. Select **Marketplaces**
4573. Choose a marketplace from the list
4584. Select **Enable auto-update** or **Disable auto-update**
459 422
460<Note>423Validate your marketplace JSON syntax:
461 Official Anthropic marketplaces have auto-update enabled by default. You can disable this if you prefer manual updates.
462</Note>
463 424
464### Auto-update behavior425```bash theme={null}
426claude plugin validate .
427```
465 428
466| Marketplace type | Default behavior |429Or from within Claude Code:
467| :------------------------------ | :------------------- |
468| Official Anthropic marketplaces | Auto-update enabled |
469| Third-party marketplaces | Auto-update disabled |
470| Local development marketplaces | Auto-update disabled |
471 430
472### Disable auto-update globally431```shell theme={null}
432/plugin validate .
433```
473 434
474To disable all automatic updates (both Claude Code and plugins), set the `DISABLE_AUTOUPDATER` environment variable. See [Auto updates](/en/setup#auto-updates) for details.435Add the marketplace for testing:
475 436
476When auto-updates are disabled globally:437```shell theme={null}
438/plugin marketplace add ./path/to/marketplace
439```
477 440
478* No marketplaces or plugins will auto-update441Install a test plugin to verify everything works:
479* The auto-update toggle is hidden in the UI
480* You can still manually update using `/plugin marketplace update`
481 442
482***443```shell theme={null}
444/plugin install test-plugin@marketplace-name
445```
483 446
484## Troubleshooting marketplaces447For complete plugin testing workflows, see [Test your plugins locally](/en/plugins#test-your-plugins-locally). For technical troubleshooting, see [Plugins reference](/en/plugins-reference).
485 448
486### Common marketplace issues449## Troubleshooting
487 450
488#### Marketplace not loading451### Marketplace not loading
489 452
490**Symptoms**: Can't add marketplace or see plugins from it453**Symptoms**: Can't add marketplace or see plugins from it
491 454
493 456
494* Verify the marketplace URL is accessible457* Verify the marketplace URL is accessible
495* Check that `.claude-plugin/marketplace.json` exists at the specified path458* Check that `.claude-plugin/marketplace.json` exists at the specified path
496* Ensure JSON syntax is valid using `claude plugin validate`459* Ensure JSON syntax is valid using `claude plugin validate` or `/plugin validate`
497* For private repositories, confirm you have access permissions460* For private repositories, confirm you have access permissions
498 461
499#### Plugin installation failures462### Marketplace validation errors
463
464Run `claude plugin validate .` or `/plugin validate .` from your marketplace directory to check for issues. Common errors:
465
466| Error | Cause | Solution |
467| :------------------------------------------------ | :------------------------------ | :------------------------------------------------------------ |
468| `File not found: .claude-plugin/marketplace.json` | Missing manifest | Create `.claude-plugin/marketplace.json` with required fields |
469| `Invalid JSON syntax: Unexpected token...` | JSON syntax error | Check for missing commas, extra commas, or unquoted strings |
470| `Duplicate plugin name "x" found in marketplace` | Two plugins share the same name | Give each plugin a unique `name` value |
471| `plugins[0].source: Path traversal not allowed` | Source path contains `..` | Use paths relative to marketplace root without `..` |
472
473**Warnings** (non-blocking):
474
475* `Marketplace has no plugins defined`: add at least one plugin to the `plugins` array
476* `No marketplace description provided`: add `metadata.description` to help users understand your marketplace
477* `Plugin "x" uses npm source which is not yet fully implemented`: use `github` or local path sources instead
478
479### Plugin installation failures
500 480
501**Symptoms**: Marketplace appears but plugin installation fails481**Symptoms**: Marketplace appears but plugin installation fails
502 482
507* For GitHub sources, ensure repositories are public or you have access487* For GitHub sources, ensure repositories are public or you have access
508* Test plugin sources manually by cloning/downloading488* Test plugin sources manually by cloning/downloading
509 489
510### Validation and testing490### Files not found after installation
511
512Test your marketplace before sharing:
513
514```bash Validate marketplace JSON syntax theme={null}
515claude plugin validate .
516```
517
518```shell Add marketplace for testing theme={null}
519/plugin marketplace add ./path/to/marketplace
520```
521
522```shell Install test plugin theme={null}
523/plugin install test-plugin@marketplace-name
524```
525
526For complete plugin testing workflows, see [Test your plugins locally](/en/plugins#test-your-plugins-locally). For technical troubleshooting, see [Plugins reference](/en/plugins-reference).
527
528***
529
530## Next steps
531
532### For marketplace users
533
534* **Discover community marketplaces**: Search GitHub for Claude Code plugin collections
535* **Contribute feedback**: Report issues and suggest improvements to marketplace maintainers
536* **Share useful marketplaces**: Help your team discover valuable plugin collections
537 491
538### For marketplace creators492**Symptoms**: Plugin installs but references to files fail, especially files outside the plugin directory
539 493
540* **Build plugin collections**: Create themed marketplace around specific use cases494**Cause**: Plugins are copied to a cache directory rather than used in-place. Paths that reference files outside the plugin's directory (such as `../shared-utils`) won't work because those files aren't copied.
541* **Establish versioning**: Implement clear versioning and update policies
542* **Community engagement**: Gather feedback and maintain active marketplace communities
543* **Documentation**: Provide clear README files explaining your marketplace contents
544 495
545### For organizations496**Solutions**: See [Plugin caching and file resolution](/en/plugins-reference#plugin-caching-and-file-resolution) for workarounds including symlinks and directory restructuring.
546 497
547* **Private marketplaces**: Set up internal marketplaces for proprietary tools498For additional debugging tools and common issues, see [Debugging and development tools](/en/plugins-reference#debugging-and-development-tools).
548* **Governance policies**: Establish guidelines for plugin approval and security review
549* **Training resources**: Help teams discover and adopt useful plugins effectively
550 499
551## See also500## See also
552 501
553* [Plugins](/en/plugins) - Installing and using plugins502* [Discover and install prebuilt plugins](/en/discover-plugins) - Installing plugins from existing marketplaces
503* [Plugins](/en/plugins) - Creating your own plugins
554* [Plugins reference](/en/plugins-reference) - Complete technical specifications and schemas504* [Plugins reference](/en/plugins-reference) - Complete technical specifications and schemas
555* [Plugin development](/en/plugins#develop-more-complex-plugins) - Creating your own plugins505* [Plugin settings](/en/settings#plugin-settings) - Plugin configuration options
556* [Settings](/en/settings#plugin-configuration) - Plugin configuration options506* [strictKnownMarketplaces reference](/en/settings#strictknownmarketplaces) - Enterprise marketplace restrictions
557* [strictKnownMarketplaces reference](/en/settings#strictknownmarketplaces) - Complete configuration reference for enterprise marketplace restrictions
558 507
559 508
560---509---