caruso 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,433 @@
1
+ # Plugin marketplaces
2
+
3
+ > Create and manage plugin marketplaces to distribute Claude Code extensions across teams and communities.
4
+
5
+ Plugin 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.
6
+
7
+ ## Overview
8
+
9
+ A 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
+ * **Team distribution**: Share required plugins across your organization
14
+ * **Flexible sources**: Support for git repositories, GitHub repos, local paths, and package managers
15
+
16
+ ### Prerequisites
17
+
18
+ * Claude Code installed and running
19
+ * Basic familiarity with JSON file format
20
+ * For creating marketplaces: Git repository or local development environment
21
+
22
+ ## Add and use marketplaces
23
+
24
+ Add marketplaces using the `/plugin marketplace` commands to access plugins from different sources:
25
+
26
+ ### Add GitHub marketplaces
27
+
28
+ ```shell Add a GitHub repository containing .claude-plugin/marketplace.json theme={null}
29
+ /plugin marketplace add owner/repo
30
+ ```
31
+
32
+ ### Add Git repositories
33
+
34
+ ```shell Add any git repository theme={null}
35
+ /plugin marketplace add https://gitlab.com/company/plugins.git
36
+ ```
37
+
38
+ ### Add local marketplaces for development
39
+
40
+ ```shell Add local directory containing .claude-plugin/marketplace.json theme={null}
41
+ /plugin marketplace add ./my-marketplace
42
+ ```
43
+
44
+ ```shell Add direct path to marketplace.json file theme={null}
45
+ /plugin marketplace add ./path/to/marketplace.json
46
+ ```
47
+
48
+ ```shell Add remote marketplace.json via URL theme={null}
49
+ /plugin marketplace add https://url.of/marketplace.json
50
+ ```
51
+
52
+ ### Install plugins from marketplaces
53
+
54
+ Once you've added marketplaces, install plugins directly:
55
+
56
+ ```shell Install from any known marketplace theme={null}
57
+ /plugin install plugin-name@marketplace-name
58
+ ```
59
+
60
+ ```shell Browse available plugins interactively theme={null}
61
+ /plugin
62
+ ```
63
+
64
+ ### Verify marketplace installation
65
+
66
+ After adding a marketplace:
67
+
68
+ 1. **List marketplaces**: Run `/plugin marketplace list` to confirm it's added
69
+ 2. **Browse plugins**: Use `/plugin` to see available plugins from your marketplace
70
+ 3. **Test installation**: Try installing a plugin to verify the marketplace works correctly
71
+
72
+ ## Configure team marketplaces
73
+
74
+ Set up automatic marketplace installation for team projects by specifying required marketplaces in `.claude/settings.json`:
75
+
76
+ ```json theme={null}
77
+ {
78
+ "extraKnownMarketplaces": {
79
+ "team-tools": {
80
+ "source": {
81
+ "source": "github",
82
+ "repo": "your-org/claude-plugins"
83
+ }
84
+ },
85
+ "project-specific": {
86
+ "source": {
87
+ "source": "git",
88
+ "url": "https://git.company.com/project-plugins.git"
89
+ }
90
+ }
91
+ }
92
+ }
93
+ ```
94
+
95
+ When team members trust the repository folder, Claude Code automatically installs these marketplaces and any plugins specified in the `enabledPlugins` field.
96
+
97
+ ***
98
+
99
+ ## Create your own marketplace
100
+
101
+ Build and distribute custom plugin collections for your team or community.
102
+
103
+ ### Prerequisites for marketplace creation
104
+
105
+ * Git repository (GitHub, GitLab, or other git hosting)
106
+ * Understanding of JSON file format
107
+ * One or more plugins to distribute
108
+
109
+ ### Create the marketplace file
110
+
111
+ Create `.claude-plugin/marketplace.json` in your repository root:
112
+
113
+ ```json theme={null}
114
+ {
115
+ "name": "company-tools",
116
+ "owner": {
117
+ "name": "DevTools Team",
118
+ "email": "devtools@company.com"
119
+ },
120
+ "plugins": [
121
+ {
122
+ "name": "code-formatter",
123
+ "source": "./plugins/formatter",
124
+ "description": "Automatic code formatting on save",
125
+ "version": "2.1.0",
126
+ "author": {
127
+ "name": "DevTools Team"
128
+ }
129
+ },
130
+ {
131
+ "name": "deployment-tools",
132
+ "source": {
133
+ "source": "github",
134
+ "repo": "company/deploy-plugin"
135
+ },
136
+ "description": "Deployment automation tools"
137
+ }
138
+ ]
139
+ }
140
+ ```
141
+
142
+ ### Marketplace schema
143
+
144
+ #### Required fields
145
+
146
+ | Field | Type | Description |
147
+ | :-------- | :----- | :--------------------------------------------- |
148
+ | `name` | string | Marketplace identifier (kebab-case, no spaces) |
149
+ | `owner` | object | Marketplace maintainer information |
150
+ | `plugins` | array | List of available plugins |
151
+
152
+ #### Optional metadata
153
+
154
+ | Field | Type | Description |
155
+ | :--------------------- | :----- | :------------------------------------ |
156
+ | `metadata.description` | string | Brief marketplace description |
157
+ | `metadata.version` | string | Marketplace version |
158
+ | `metadata.pluginRoot` | string | Base path for relative plugin sources |
159
+
160
+ ### Plugin entries
161
+
162
+ <Note>
163
+ Plugin entries are based on the *plugin manifest schema* (with all fields made optional) plus marketplace-specific fields (`source`, `category`, `tags`, `strict`), with `name` being required.
164
+ </Note>
165
+
166
+ **Required fields:**
167
+
168
+ | Field | Type | Description |
169
+ | :------- | :------------- | :---------------------------------------- |
170
+ | `name` | string | Plugin identifier (kebab-case, no spaces) |
171
+ | `source` | string\|object | Where to fetch the plugin from |
172
+
173
+ #### Optional plugin fields
174
+
175
+ **Standard metadata fields:**
176
+
177
+ | Field | Type | Description |
178
+ | :------------ | :------ | :---------------------------------------------------------------- |
179
+ | `description` | string | Brief plugin description |
180
+ | `version` | string | Plugin version |
181
+ | `author` | object | Plugin author information |
182
+ | `homepage` | string | Plugin homepage or documentation URL |
183
+ | `repository` | string | Source code repository URL |
184
+ | `license` | string | SPDX license identifier (e.g., MIT, Apache-2.0) |
185
+ | `keywords` | array | Tags for plugin discovery and categorization |
186
+ | `category` | string | Plugin category for organization |
187
+ | `tags` | array | Tags for searchability |
188
+ | `strict` | boolean | Require plugin.json in plugin folder (default: true) <sup>1</sup> |
189
+
190
+ **Component configuration fields:**
191
+
192
+ | Field | Type | Description |
193
+ | :----------- | :------------- | :----------------------------------------------- |
194
+ | `commands` | string\|array | Custom paths to command files or directories |
195
+ | `agents` | string\|array | Custom paths to agent files |
196
+ | `hooks` | string\|object | Custom hooks configuration or path to hooks file |
197
+ | `mcpServers` | string\|object | MCP server configurations or path to MCP config |
198
+
199
+ *<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>*
200
+
201
+ ### Plugin sources
202
+
203
+ #### Relative paths
204
+
205
+ For plugins in the same repository:
206
+
207
+ ```json theme={null}
208
+ {
209
+ "name": "my-plugin",
210
+ "source": "./plugins/my-plugin"
211
+ }
212
+ ```
213
+
214
+ #### GitHub repositories
215
+
216
+ ```json theme={null}
217
+ {
218
+ "name": "github-plugin",
219
+ "source": {
220
+ "source": "github",
221
+ "repo": "owner/plugin-repo"
222
+ }
223
+ }
224
+ ```
225
+
226
+ #### Git repositories
227
+
228
+ ```json theme={null}
229
+ {
230
+ "name": "git-plugin",
231
+ "source": {
232
+ "source": "url",
233
+ "url": "https://gitlab.com/team/plugin.git"
234
+ }
235
+ }
236
+ ```
237
+
238
+ #### Advanced plugin entries
239
+
240
+ Plugin 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)):
241
+
242
+ ```json theme={null}
243
+ {
244
+ "name": "enterprise-tools",
245
+ "source": {
246
+ "source": "github",
247
+ "repo": "company/enterprise-plugin"
248
+ },
249
+ "description": "Enterprise workflow automation tools",
250
+ "version": "2.1.0",
251
+ "author": {
252
+ "name": "Enterprise Team",
253
+ "email": "enterprise@company.com"
254
+ },
255
+ "homepage": "https://docs.company.com/plugins/enterprise-tools",
256
+ "repository": "https://github.com/company/enterprise-plugin",
257
+ "license": "MIT",
258
+ "keywords": ["enterprise", "workflow", "automation"],
259
+ "category": "productivity",
260
+ "commands": [
261
+ "./commands/core/",
262
+ "./commands/enterprise/",
263
+ "./commands/experimental/preview.md"
264
+ ],
265
+ "agents": [
266
+ "./agents/security-reviewer.md",
267
+ "./agents/compliance-checker.md"
268
+ ],
269
+ "hooks": {
270
+ "PostToolUse": [
271
+ {
272
+ "matcher": "Write|Edit",
273
+ "hooks": [{"type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/scripts/validate.sh"}]
274
+ }
275
+ ]
276
+ },
277
+ "mcpServers": {
278
+ "enterprise-db": {
279
+ "command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",
280
+ "args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"]
281
+ }
282
+ },
283
+ "strict": false
284
+ }
285
+ ```
286
+
287
+ <Note>
288
+ **Schema relationship**: Plugin entries use the plugin manifest schema with all fields made optional, plus marketplace-specific fields (`source`, `strict`, `category`, `tags`). This means any field valid in a `plugin.json` file can also be used in a marketplace entry. When `strict: false`, the marketplace entry serves as the complete plugin manifest if no `plugin.json` exists. When `strict: true` (default), marketplace fields supplement the plugin's own manifest file.
289
+ </Note>
290
+
291
+ ***
292
+
293
+ ## Host and distribute marketplaces
294
+
295
+ Choose the best hosting strategy for your plugin distribution needs.
296
+
297
+ ### Host on GitHub (recommended)
298
+
299
+ GitHub provides the easiest distribution method:
300
+
301
+ 1. **Create a repository**: Set up a new repository for your marketplace
302
+ 2. **Add marketplace file**: Create `.claude-plugin/marketplace.json` with your plugin definitions
303
+ 3. **Share with teams**: Team members add with `/plugin marketplace add owner/repo`
304
+
305
+ **Benefits**: Built-in version control, issue tracking, and team collaboration features.
306
+
307
+ ### Host on other git services
308
+
309
+ Any git hosting service works for marketplace distribution, using a URL to an arbitrary git repository.
310
+
311
+ For example, using GitLab:
312
+
313
+ ```shell theme={null}
314
+ /plugin marketplace add https://gitlab.com/company/plugins.git
315
+ ```
316
+
317
+ ### Use local marketplaces for development
318
+
319
+ Test your marketplace locally before distribution:
320
+
321
+ ```shell Add local marketplace for testing theme={null}
322
+ /plugin marketplace add ./my-local-marketplace
323
+ ```
324
+
325
+ ```shell Test plugin installation theme={null}
326
+ /plugin install test-plugin@my-local-marketplace
327
+ ```
328
+
329
+ ## Manage marketplace operations
330
+
331
+ ### List known marketplaces
332
+
333
+ ```shell List all configured marketplaces theme={null}
334
+ /plugin marketplace list
335
+ ```
336
+
337
+ Shows all configured marketplaces with their sources and status.
338
+
339
+ ### Update marketplace metadata
340
+
341
+ ```shell Refresh marketplace metadata theme={null}
342
+ /plugin marketplace update marketplace-name
343
+ ```
344
+
345
+ Refreshes plugin listings and metadata from the marketplace source.
346
+
347
+ ### Remove a marketplace
348
+
349
+ ```shell Remove a marketplace theme={null}
350
+ /plugin marketplace remove marketplace-name
351
+ ```
352
+
353
+ Removes the marketplace from your configuration.
354
+
355
+ <Warning>
356
+ Removing a marketplace will uninstall any plugins you installed from it.
357
+ </Warning>
358
+
359
+ ***
360
+
361
+ ## Troubleshooting marketplaces
362
+
363
+ ### Common marketplace issues
364
+
365
+ #### Marketplace not loading
366
+
367
+ **Symptoms**: Can't add marketplace or see plugins from it
368
+
369
+ **Solutions**:
370
+
371
+ * Verify the marketplace URL is accessible
372
+ * Check that `.claude-plugin/marketplace.json` exists at the specified path
373
+ * Ensure JSON syntax is valid using `claude plugin validate`
374
+ * For private repositories, confirm you have access permissions
375
+
376
+ #### Plugin installation failures
377
+
378
+ **Symptoms**: Marketplace appears but plugin installation fails
379
+
380
+ **Solutions**:
381
+
382
+ * Verify plugin source URLs are accessible
383
+ * Check that plugin directories contain required files
384
+ * For GitHub sources, ensure repositories are public or you have access
385
+ * Test plugin sources manually by cloning/downloading
386
+
387
+ ### Validation and testing
388
+
389
+ Test your marketplace before sharing:
390
+
391
+ ```bash Validate marketplace JSON syntax theme={null}
392
+ claude plugin validate .
393
+ ```
394
+
395
+ ```shell Add marketplace for testing theme={null}
396
+ /plugin marketplace add ./path/to/marketplace
397
+ ```
398
+
399
+ ```shell Install test plugin theme={null}
400
+ /plugin install test-plugin@marketplace-name
401
+ ```
402
+
403
+ For complete plugin testing workflows, see [Test your plugins locally](/en/plugins#test-your-plugins-locally). For technical troubleshooting, see [Plugins reference](/en/plugins-reference).
404
+
405
+ ***
406
+
407
+ ## Next steps
408
+
409
+ ### For marketplace users
410
+
411
+ * **Discover community marketplaces**: Search GitHub for Claude Code plugin collections
412
+ * **Contribute feedback**: Report issues and suggest improvements to marketplace maintainers
413
+ * **Share useful marketplaces**: Help your team discover valuable plugin collections
414
+
415
+ ### For marketplace creators
416
+
417
+ * **Build plugin collections**: Create themed marketplace around specific use cases
418
+ * **Establish versioning**: Implement clear versioning and update policies
419
+ * **Community engagement**: Gather feedback and maintain active marketplace communities
420
+ * **Documentation**: Provide clear README files explaining your marketplace contents
421
+
422
+ ### For organizations
423
+
424
+ * **Private marketplaces**: Set up internal marketplaces for proprietary tools
425
+ * **Governance policies**: Establish guidelines for plugin approval and security review
426
+ * **Training resources**: Help teams discover and adopt useful plugins effectively
427
+
428
+ ## See also
429
+
430
+ * [Plugins](/en/plugins) - Installing and using plugins
431
+ * [Plugins reference](/en/plugins-reference) - Complete technical specifications and schemas
432
+ * [Plugin development](/en/plugins#develop-more-complex-plugins) - Creating your own plugins
433
+ * [Settings](/en/settings#plugin-configuration) - Plugin configuration options