Przejdź do treści
Biblioteka skilli
AI i agenci · Budowanie i kod

plugin-marketplace

/plugin-marketplace

Prowadzi tworzenie i zarządzanie marketplace'ami pluginów Claude Code, walidację marketplace.json i dystrybucję pluginów.

Repozytorium
claude-skills ↗
Licencja
MIT
Ostatnia zmiana repozytorium
07.10.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
9
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
1
Przestarzałość

Brak sygnałów. Repozytorium zmienione 07.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Prowadzi tworzenie i zarządzanie marketplace'ami pluginów Claude Code, walidację marketplace.json i dystrybucję pluginów.

Oryginalny opis (EN)

Guide for creating and managing Claude Code plugin marketplaces. Use when setting up a marketplace, validating marketplace.json, or distributing plugins.

Jak działa

  1. Marketplace schema
  2. Source formats
  3. Path variables — a load-time trap
  4. Advanced entries
  5. Validation
  6. Creating a marketplace
  7. Conventions
  8. Renaming a plugin
  9. Scripts
  10. References
Sekcje z nagłówków SKILL.md, w oryginale · 140 linii, 1 101 słów
Podgląd SKILL.md
---
name: plugin-marketplace
description: Guide for creating and managing Claude Code plugin marketplaces. Use when setting up a marketplace, validating marketplace.json, or distributing plugins.
license: MIT
---

# Claude Code Plugin Marketplace

Guide for creating, validating, and managing plugin marketplaces for Claude Code.

Per `core:anti-fabrication`: verify schema fields and source paths with the validation scripts before claiming an entry is valid — never assert validation results without running them. The validator names the offending field and value; that output is the authority, not this page.

## Marketplace schema

A marketplace lives at `.claude-plugin/marketplace.json` in the repository root.

**Required:** `name` (kebab-case), `owner` (object; `name` required, `email` optional), `plugins` (array, may be empty).

**Optional `metadata`:** `description`, `version`, and `pluginRoot` — a base directory that relative plugin `source` paths resolve against.

**Optional `renames`:** a map from a former plugin name to its current name, or to `null` for a removed plugin. See "Renaming a plugin".

### Plugin entry schema

Plugin entries use the **plugin manifest schema with every field optional**, plus the marketplace-only fields `source`, `strict`, `category`, and `tags`. Any field valid in a `plugin.json` is therefore valid in an entry — see `/extras-claude-code:claude-plugins` for the manifest schema and for which fields must never appear in a `plugin.json`.

Each entry requires `name` (kebab-case) and `source`. Beyond those:

- **Metadata:** `description`, `version`, `author`, `homepage`, `repository`, `license` (SPDX), `keywords`, `category`, `tags`
- **Component paths:** `commands`, `agents`, `hooks`, `mcpServers`, `skills`
- **Dependencies:** `dependencies`, an array of `"namespace:plugin-name"` strings

### Strict mode

`strict` defaults to `true`.

- `true` — the plugin must ship its own `plugin.json`; marketplace fields supplement it.
- `false` — the marketplace entry *is* the complete manifest; no `plugin.json` needed.

**Choose `strict: false`** for simple self-contained plugins whose configuration all lives in marketplace.json, when centralized management is the goal and the plugin is unlikely to be distributed independently.

**Choose `strict: true`** when the plugin has complex configuration, may be distributed separately, has its own versioning lifecycle, or when the marketplace is only adding metadata to a manifest that already exists.

This is the one genuine judgment call in a marketplace entry; everything else is schema.

## Source formats

```json
"source": "./plugins/my-plugin"
```

With `"metadata": { "pluginRoot": "./plugins" }`, a bare `"source": "my-plugin"` resolves to `./plugins/my-plugin`.

```json
"source": { "source": "github", "repo": "owner/plugin-repo", "path": "optional/subdir", "branch": "main" }
"source": { "source": "url", "url": "https://gitlab.com/team/plugin.git", "branch": "main" }
```

## Path variables — a load-time trap

Two different variables, and mixing them up breaks the file:

- **`CLAUDE_PLUGIN_ROOT`** resolves to the plugin's installation directory. Use it as a brace expansion inside `skills`/`commands`/`agents`/`hooks`/`mcpServers` **values in marketplace.json and plugin.json**, so paths survive relocation.
- **`CLAUDE_SKILL_DIR`** resolves to an individual skill's directory — *not* the plugin root. Bundled scripts live under it.

Both names are written bare on this page on purpose. **The braced form expands when a skill loads**, so a braced variable inside a skill body is replaced with one machine's absolute path before any reader sees it. That is correct behavior for a JSON config value the harness expands at runtime, and wrong for a command written in a skill body. Copyable braced examples live in `references/marketplace-examples.md`, where `Read` returns raw bytes.

## Advanced entries

- **Inline definitions** — `strict: false` with a full manifest in the entry. See `references/marketplace-examples.md` ("Inline Plugin Definitions").
- **Component path override** — point `commands`/`agents`/`hooks`/`mcpServers` at custom locations. Same reference ("Component Path Override").
- **Metadata supplementation** — with `strict: true`, add `category`, `keywords`, or `homepage` that the plugin's own manifest omits:

```json
{
  "name": "existing-plugin",
  "source": "./plugins/existing",
  "strict": true,
  "category": "development",
  "keywords": ["added", "from", "marketplace"]
}
```

## Validation

Scripts are bundled with this skill, under its own directory:

```bash
nu <CLAUDE_SKILL_DIR>/scripts/validate-marketplace.nu .claude-plugin/marketplace.json
nu <CLAUDE_SKILL_DIR>/scripts/validate-dependencies.nu .claude-plugin/marketplace.json
```

`validate-marketplace.nu` checks JSON syntax, required fields, kebab-case naming, field types, and relative-source accessibility. `validate-dependencies.nu` checks the dependency graph for cycles and missing entries. Add `--verbose` for per-field output.

Read the script's message rather than guessing: it names the field and the value. What each message means, plus the install-time and load-time failures no script detects, is in `references/validation-and-troubleshooting.md`.

## Creating a marketplace

1. `mkdir -p .claude-plugin`, then generate a skeleton with `nu <CLAUDE_SKILL_DIR>/scripts/init-marketplace.nu`.
2. Add an entry per plugin, deciding strict mode for each. A complete entry with a `CLAUDE_PLUGIN_ROOT` skills path is in `references/marketplace-examples.md` ("Creating a marketplace — Step 3").
3. Validate, then install from it: `/plugin marketplace add <owner>/<repo>` followed by `/plugin install <plugin-name>@<marketplace-name>`.

Converting an existing set of plugins into a marketplace is a different procedure — see `references/validation-and-troubleshooting.md` ("Migrating existing plugins").

## Conventions

- **Marketplace name** — a GitHub username or organization.
- **Plugin names** — descriptive kebab-case (`elixir-phoenix`, `rust-tools`). Never use a reserved name: `claude plugin validate` rejects `claude-code` and any name that starts with `claude-`, `anthropic-`, `anthropics-`, or `cc-plugin-`. The check applies to every entry name, whatever the marketplace. Rule and sources: `/extras-claude-code:claude-plugins` ("Reserved names"). This repository checks it offline with `mise run test:plugin-names` (`test/validate-plugin-names.nu`).
- **Categories** — standardize across the marketplace rather than inventing per entry: `development`, `language`, `tools`, `frontend`, `backend`, `meta`.
- **Versions** — semver for both marketplace and plugins. Bump the marketplace when adding or removing a plugin, a plugin when its skills or configuration change, and note breaking changes in the plugin's description. **Keep a plugin's version in step between its `plugin.json` and its marketplace entry.** The bundled validator does not check this — it validates semver format only. Enforce agreement in the marketplace repository's CI.
- **Dependencies** — declare them, keep chains shallow, prefix with the namespace, and consider a meta-plugin that bundles a related set.

## Renaming a plugin

Renaming a plugin breaks existing installs, because users reference the name in `/plugin install` and in settings keys. Add a top-level `renames` map so Claude Code migrates them.

```json
{ "renames": { "old-name": "new-name", "retired-plugin": null } }
```

- Treat the map as append-only history. Add a new entry for each later rename.
- Map a removed plugin to `null`.
- Run `claude plugin validate .` after each edit. It rejects a chain that does not resolve to `null` or a name in `plugins`.
- Keep `source` paths unchanged when only the `name` changes.

Procedure, user-visible results, and source: `references/validation-and-troubleshooting.md` ("Renaming or removing a plugin").

## Scripts

Bundled in this skill's `scripts/` directory, run as `nu <CLAUDE_SKILL_DIR>/scripts/<name>.nu [args]`:

| Script | Purpose |
|---|---|
| `validate-marketplace.nu` | Full marketplace validation |
| `validate-dependencies.nu` | Dependency graph validation |
| `init-marketplace.nu` | Generate a marketplace template |
| `analyze-plugins.nu` | Analyze an existing plugin structure |
| `format-marketplace.nu` | Format and sort marketplace.json |

## References

- `references/schema-specification.md` — the complete JSON schema
- `references/marketplace-examples.md` — copyable `CLAUDE_PLUGIN_ROOT` path examples for skills, commands, agents, hooks, and mcpServers entries
- `references/validation-and-troubleshooting.md` — what each validator message means, migration procedure, and runtime failures
Pliki w paczce (9)
  • SKILL.md 9 KB
  • references/marketplace-examples.md 2 KB
  • references/schema-specification.md 6 KB
  • references/validation-and-troubleshooting.md 6 KB
  • scripts/analyze-plugins.nu 2 KB
  • scripts/format-marketplace.nu 1 KB
  • scripts/init-marketplace.nu 1 KB
  • scripts/validate-dependencies.nu 3 KB
  • scripts/validate-marketplace.nu 18 KB

Wersje

RepozytoriumWynikLicencja
Ta strona · vinnie357/claude-skills100MIT
evolution-foundation/evo-nexus100Apache-2.0
tamnguyendinh/Anvien90MIT

Migawka bazy z 28.10.2026 · wersja paczki 92b75e830027 (skrót SHA-256 całej paczki)

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100claude-plugins
    Prowadzi przez tworzenie i walidację plików plugin.json pluginów Claude Code oraz rozwiązywanie problemów z konfiguracją.
  • 100marketplace-dev
    Buduje i utrzymuje marketplace pluginów Claude Code: konwertuje repozytorium skilli do poprawnego marketplace.json, dodaje wpisy pluginów i przenosi skille między zestawami.
  • 95claude-code-plugins
    Pomaga tworzyć, konfigurować i dystrybuować pluginy i marketplace'y Claude Code: architektura systemu pluginów, pakowanie wielu komponentów i dystrybucja w zespole.
  • 90configure-claude-plugins
    Konfiguruje marketplace pluginów Claude: .claude/settings.json, GitHub Actions i przypinanie wersji pluginów, także przy nadpisywaniu pluginów globalnych.
  • 95plugin-writer
    Tworzy od zera wtyczki Claude Code z odpowiednią strukturą katalogów i metadanymi, konfiguruje serwery MCP i dopisuje je do marketplace.json.
  • 100plugin-creator
    Pomaga tworzyć i zarządzać wtyczkami Claude Code oraz marketplace'ami: manifesty, struktura katalogów, komponenty (polecenia, skille, agenci, hooki) i podbijanie wersji.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.