Claude Code Marketplace Complete Plugin List | How to Use Curated Plugins
This article covers everything about the Claude Code Marketplace — the system for importing Plugins and Skills in bulk — including a complete list of all publicly available plugins from official and demo sources, all fields in marketplace.json / plugin.json / SKILL.md, the 5 source types, and private organization distribution. We walk through everything in the most efficient order for getting up and running, from building your own marketplace to implementing organization-level governance.
The official marketplace claude-plugins-official includes 11 LSP integrations and over 20 plugins such as GitHub and GitLab MCP connectors, providing a zero-configuration onboarding path via /plugin install <name>@claude-plugins-official.
To create your own marketplace, place a .claude-plugin/marketplace.json in a Git repository and choose from 5 source types (relative path / github / url / git-subdir / npm) based on your distribution needs. Private repositories combined with extraKnownMarketplaces enable internal-only distribution.
For organization governance, strictKnownMarketplaces: true lets you block unregistered marketplaces, and official reserved names (such as claude-plugins-official) are prohibited for third-party use. Checking naming conventions in advance is essential for impersonation prevention.
目次 (26)
- What Is Claude Code Marketplace — The 3-Layer Architecture
- The Role of the Official Marketplace
- Large Table 1 — Complete List of Public Marketplaces (20+ Entries)
- Plugins in the Official Marketplace claude-plugins-official
- Plugins in the Demo Marketplace anthropics/claude-code (anthropics-claude-code)
- Large Table 2 — Complete Reference of Plugin Source Types (15+ Entries)
- Pinning Strategy with sha and ref
- Using git-subdir for Monorepos
- Large Table 3 — Complete Field Reference for marketplace.json / plugin.json / SKILL.md (20+ Entries)
- All Fields in marketplace.json
- All Fields in marketplace.json Plugin Entries
- All Fields in plugin.json
- All Fields in SKILL.md Frontmatter
- 5 Plugin Source Types — Detailed Fetch Paths
- GitHub Source
- git-subdir Source (for Monorepos)
- npm Source
- Creating Your Own Marketplace — Minimum 5 Steps
- Version Resolution Pitfalls
- Strict Mode (strict) and Organization Distribution
- Behavior of strict: true / false
- Organization Distribution — Complete strictKnownMarketplaces Configuration Examples
- Container Pre-seeding and Environment Variables
- Summary — Decision Criteria for Operating Claude Code Marketplace
- Sources (Primary Information)
- Related Articles
What Is Claude Code Marketplace — The 3-Layer Architecture
Claude Code Marketplace is the official mechanism for listing and distributing Plugins and Skills. At its center is the official marketplace operated by Anthropic (claude-plugins-official), and independently from that, any Git repository can host its own marketplace (Source: Creating and Distributing Plugin Marketplaces).
Here is how the 3 layers relate to each other.
| Layer | Unit | Main Configuration File | Role |
|---|---|---|---|
| Marketplace | Distribution catalog | .claude-plugin/marketplace.json |
Defines the collection of Plugins and their source locations |
| Plugin | Installation unit | .claude-plugin/plugin.json |
Packages a collection of Skills / Agents / Hooks / MCPs / LSPs |
| Skill / Agent / Hook / MCP / LSP | Execution unit | skills/*/SKILL.md etc. |
The actual processing logic that Claude calls |
Two terms that appear frequently throughout this article: LSP (Language Server Protocol) provides Claude Code with code completion, type diagnostics, and definition jumping for various programming languages. MCP (Model Context Protocol) is the standard protocol for connecting Claude to external services such as GitHub and Slack. Keeping these two terms in mind will make the reference tables much easier to follow.
From a user perspective, you add a marketplace with /plugin marketplace add owner/repo, then install only the Plugins you want from it using /plugin install <name>@<marketplace>. A Plugin can contain multiple Skills, and individual Skills can be invoked as slash commands via /<skill-name>. If a Plugin has a namespace, the format is /plugin-name:skill-name.
The Role of the Official Marketplace
The official marketplace claude-plugins-official lists Anthropic-certified Plugins. It becomes available automatically when you launch Claude Code, and you can browse it via the Discover tab in /plugin. Separately, the anthropics/claude-code repository contains a demo marketplace that requires manual addition (adding it via /plugin marketplace add anthropics/claude-code registers it under the identifier anthropics-claude-code), which includes example plugins demonstrating the possibilities of the plugin system. Internal tools and client-specific scripts can be distributed via your own private marketplace, and hosting it on a GitHub Private repository combined with extraKnownMarketplaces enables internal-only distribution.
Note that names such as claude-code-marketplace, claude-code-plugins, claude-plugins-official, anthropic-marketplace, anthropic-plugins, agent-skills, knowledge-work-plugins, and life-sciences are officially reserved and cannot be used as third-party marketplace names. Names that impersonate official sources, such as official-claude-plugins, are also blocked.
Large Table 1 — Complete List of Public Marketplaces (20+ Entries)
Below is a complete list of plugins available in the official marketplace (claude-plugins-official) and the demo marketplace (anthropics/claude-code). The install command format is /plugin install <name>@<marketplace> (Source: Discovering and Installing Plugins).
Plugins in the Official Marketplace claude-plugins-official
Install with /plugin install <name>@claude-plugins-official.
| Category | Plugin Name | Primary Purpose | Required Binary |
|---|---|---|---|
| Code Intelligence — LSP | clangd-lsp |
C/C++ LSP code completion and diagnostics | clangd |
| Code Intelligence — LSP | csharp-lsp |
C# LSP code completion and diagnostics | csharp-ls |
| Code Intelligence — LSP | gopls-lsp |
Go LSP code completion and diagnostics | gopls |
| Code Intelligence — LSP | jdtls-lsp |
Java LSP code completion and diagnostics | jdtls |
| Code Intelligence — LSP | kotlin-lsp |
Kotlin LSP code completion and diagnostics | kotlin-language-server |
| Code Intelligence — LSP | lua-lsp |
Lua LSP code completion and diagnostics | lua-language-server |
| Code Intelligence — LSP | php-lsp |
PHP LSP code completion and diagnostics | intelephense |
| Code Intelligence — LSP | pyright-lsp |
Python LSP code completion and diagnostics | pyright-langserver |
| Code Intelligence — LSP | rust-analyzer-lsp |
Rust LSP code completion and diagnostics | rust-analyzer |
| Code Intelligence — LSP | swift-lsp |
Swift LSP code completion and diagnostics | sourcekit-lsp |
| Code Intelligence — LSP | typescript-lsp |
TypeScript LSP code completion and diagnostics | typescript-language-server |
| External Integration — MCP | github |
MCP integration with GitHub (PRs and Issues) | None |
| External Integration — MCP | gitlab |
MCP integration with GitLab | None |
| External Integration — MCP | atlassian |
MCP integration with Jira / Confluence | None |
| External Integration — MCP | asana |
MCP integration with Asana | None |
| External Integration — MCP | linear |
MCP integration with Linear | None |
| External Integration — MCP | notion |
MCP integration with Notion | None |
| External Integration — MCP | figma |
MCP integration with Figma | None |
| External Integration — MCP | vercel |
MCP integration with Vercel infrastructure | None |
| External Integration — MCP | firebase |
MCP integration with Firebase | None |
| External Integration — MCP | supabase |
MCP integration with Supabase | None |
| External Integration — MCP | slack |
MCP integration with Slack | None |
| External Integration — MCP | sentry |
MCP integration with Sentry monitoring | None |
| Development Workflow | commit-commands |
Git commit, push, and PR creation | None |
| Development Workflow | pr-review-toolkit |
Specialized agents for PR review | None |
| Development Workflow | agent-sdk-dev |
Claude Agent SDK development kit | None |
| Development Workflow | plugin-dev |
Comprehensive toolkit for plugin development | None |
| Output Style | explanatory-output-style |
Adds educational implementation insights | None |
| Output Style | learning-output-style |
Interactive learning mode | None |
Plugins in the Demo Marketplace anthropics/claude-code (anthropics-claude-code)
Add with /plugin marketplace add anthropics/claude-code, then install with /plugin install <name>@anthropics-claude-code (Source: Discovering and Installing Plugins).
| Plugin Name | Provider | Primary Purpose | Key Commands / Skills |
|---|---|---|---|
agent-sdk-dev |
Anthropic | Claude Agent SDK development | /new-sdk-app, SDK validation agent |
claude-opus-4-5-migration |
Anthropic | Sonnet → Opus 4.5 migration assistance | Automatic model string and beta header adjustment |
code-review |
Anthropic | PR review using multiple parallel agents | /code-review, 5 parallel Sonnet agents |
commit-commands |
Anthropic | Git workflow automation | /commit, /commit-push-pr, /clean_gone |
explanatory-output-style |
Anthropic | Educational response style | Auto-injected via SessionStart hook |
feature-dev |
Anthropic | 7-phase structured feature development | /feature-dev, 3 specialized agents |
frontend-design |
Anthropic | Production-grade frontend UI generation | Design auto-launch skill |
hookify |
Anthropic | Custom hook creation tool | /hookify related commands |
learning-output-style |
Anthropic | Interactive learning mode | SessionStart hook, user collaboration |
plugin-dev |
Anthropic | Comprehensive plugin development toolkit | /plugin-dev:create-plugin, 7 specialized skills |
pr-review-toolkit |
Anthropic | Specialized PR review | /pr-review-toolkit:review-pr, 6 specialized agents |
ralph-wiggum |
Anthropic | Self-referential AI loop development | /ralph-loop, /cancel-ralph |
security-guidance |
Anthropic | Security warning hooks | Monitors 9 patterns including command injection and XSS |
Large Table 2 — Complete Reference of Plugin Source Types (15+ Entries)
Each plugin entry in marketplace.json requires a source field that tells Claude Code where to fetch the plugin from. There are 5 source types available (Source: Creating and Distributing Plugin Marketplaces).
| Source Type | source Format |
Required Fields | Optional Fields | Authentication | Primary Use Case | Notes |
|---|---|---|---|---|---|---|
| Relative path | "./plugins/my-plugin" |
— | — | None | Plugin within the same repository | Must start with ./. Only valid for Git-based distribution |
| GitHub | {"source":"github","repo":"owner/repo"} |
repo |
ref, sha |
Public: none / Private: GITHUB_TOKEN |
Public GitHub / OSS distribution | ref is branch/tag; sha is 40-character commit SHA |
| Git URL | {"source":"url","url":"https://..."} |
url |
ref, sha |
Private: various tokens | Non-GitHub hosts (GitLab, Azure DevOps, etc.) | .git suffix optional. SSH URLs supported |
| git-subdir | {"source":"git-subdir","url":"...","path":"tools/..."} |
url, path |
ref, sha |
Private: various tokens | Fetch only a specific directory from a monorepo | Uses sparse clone to save bandwidth |
| npm | {"source":"npm","package":"@org/plugin"} |
package |
version, registry |
Private registry: .npmrc etc. |
Distribute as an npm package | version supports semver ranges (e.g., ^2.0.0) |
| GitHub — pinned branch | {"source":"github","repo":"owner/repo","ref":"v2.0.0"} |
repo, ref |
sha |
Same as above | Distribute a stable version pinned to a tag/branch | Change only ref to track latest |
| GitHub — pinned commit | {"source":"github","repo":"owner/repo","sha":"a1b2c3..."} |
repo, sha |
ref |
Same as above | Production environments requiring full reproducibility | 40-character SHA locks the cache key |
| Git URL — pinned branch | {"source":"url","url":"https://...","ref":"main"} |
url, ref |
sha |
Same as above | Track latest on non-GitHub hosts | |
| Git URL — SSH | {"source":"url","url":"git@gitlab.com:org/repo.git"} |
url |
ref, sha |
SSH agent (ssh-agent) |
Environments requiring SSH connections | Host must be registered in known_hosts |
| git-subdir — pinned branch | {"source":"git-subdir","url":"...","path":"...","ref":"v2"} |
url, path, ref |
sha |
Same as above | Monorepo + pinned tag | |
| git-subdir — GitHub shorthand | {"source":"git-subdir","url":"owner/repo","path":"..."} |
url, path |
ref, sha |
Same as above | Can also use owner/repo format |
SSH URL (git@github.com:...) also supported |
| npm — pinned version | {"source":"npm","package":"@org/plugin","version":"2.1.0"} |
package, version |
registry |
Same as above | Semantic versioning workflow | Defaults to latest if version is omitted |
| npm — private registry | {"source":"npm","package":"@org/plugin","registry":"https://npm.example.com"} |
package, registry |
version |
Private registry credentials | Internal npm registry | Defaults to npmjs.org if registry is omitted |
| Marketplace source — GitHub | {"source":"github","repo":"owner/catalog"} |
repo |
ref |
Same as above | Source for fetching marketplace.json itself |
sha not supported. ref only |
| Marketplace source — hostPattern | {"source":"hostPattern","hostPattern":"^github\\.example\\.com$"} |
hostPattern |
— | Internal Git auth | Host allow rule for strictKnownMarketplaces |
Matches hostname with regex |
| Marketplace source — pathPattern | {"source":"pathPattern","pathPattern":"^/opt/approved/"} |
pathPattern |
— | None | Filesystem-based whitelist |
Pinning Strategy with sha and ref
For github, url, and git-subdir sources, both ref (branch / tag) and sha (full 40-character commit SHA) can be specified. Use sha to pin to a specific release, or ref: main to track the latest. Note that the marketplace source side only supports ref and does not accept sha — this asymmetry is by design to reduce maintenance burden on the marketplace side.
Using git-subdir for Monorepos
When a single repository like acme-corp/monorepo contains a large number of internal tools, git-subdir lets you use Git sparse checkout to fetch only the specified directory. Even for a 500MB monorepo, only the few megabytes of the required subdirectory are fetched, significantly reducing bandwidth consumption. The url field accepts GitHub shorthand (owner/repo) or SSH URLs.
Large Table 3 — Complete Field Reference for marketplace.json / plugin.json / SKILL.md (20+ Entries)
All Fields in marketplace.json
| File | Field | Required/Optional | Type | Default | Purpose / Description | Example Value |
|---|---|---|---|---|---|---|
| marketplace.json | name |
Required | string | — | Marketplace identifier (kebab-case) | "acme-tools" |
| marketplace.json | owner.name |
Required | string | — | Name of the maintainer or team | "DevTools Team" |
| marketplace.json | owner.email |
Optional | string | — | Maintainer contact email | "dev@example.com" |
| marketplace.json | plugins |
Required | array | — | List of available plugins | See below |
| marketplace.json | $schema |
Optional | string | — | JSON Schema URL for editor autocompletion | "https://..." |
| marketplace.json | description |
Optional | string | — | Brief description of the marketplace | "Internal dev tools collection" |
| marketplace.json | version |
Optional | string | — | Marketplace manifest version | "1.0.0" |
| marketplace.json | metadata.pluginRoot |
Optional | string | — | Base directory prepended to relative plugin source paths | "./plugins" |
| marketplace.json | allowCrossMarketplaceDependenciesOn |
Optional | array | — | List of other marketplaces allowed as dependencies | ["other-market"] |
All Fields in marketplace.json Plugin Entries
| File | Field | Required/Optional | Type | Default | Purpose / Description | Example Value |
|---|---|---|---|---|---|---|
| marketplace.json (plugins[]) | name |
Required | string | — | Plugin identifier (kebab-case) | "code-formatter" |
| marketplace.json (plugins[]) | source |
Required | string|object | — | Plugin fetch source (5 types described above) | "./plugins/formatter" |
| marketplace.json (plugins[]) | description |
Optional | string | — | Brief description of the plugin | "Code formatting tool" |
| marketplace.json (plugins[]) | version |
Optional | string | git SHA | Version string (updates only detected when changed) | "2.1.0" |
| marketplace.json (plugins[]) | author.name |
Optional | string | — | Plugin author name | "Dev Team" |
| marketplace.json (plugins[]) | author.email |
Optional | string | — | Plugin author email | "dev@example.com" |
| marketplace.json (plugins[]) | homepage |
Optional | string | — | Plugin homepage URL | "https://docs.example.com" |
| marketplace.json (plugins[]) | repository |
Optional | string | — | Source code repository URL | "https://github.com/..." |
| marketplace.json (plugins[]) | license |
Optional | string | — | SPDX license identifier | "MIT" |
| marketplace.json (plugins[]) | keywords |
Optional | array | — | Tags for search and categorization | ["lint","format"] |
| marketplace.json (plugins[]) | category |
Optional | string | — | Plugin category for organization | "productivity" |
| marketplace.json (plugins[]) | tags |
Optional | array | — | Tags for discoverability | ["ci","automation"] |
| marketplace.json (plugins[]) | strict |
Optional | boolean | true |
Controls whether plugin.json is the authority for component definitions | false |
| marketplace.json (plugins[]) | skills |
Optional | string|array | skills/ |
Custom path to skill directory | "./custom/skills/" |
| marketplace.json (plugins[]) | commands |
Optional | string|array | commands/ |
Flat .md skill files / directory path | ["./cmd1.md"] |
| marketplace.json (plugins[]) | agents |
Optional | string|array | agents/ |
Custom path to agent files | "./agents/reviewer.md" |
| marketplace.json (plugins[]) | hooks |
Optional | string|array|object | hooks/hooks.json |
Hook configuration path or inline configuration | "./hooks.json" |
| marketplace.json (plugins[]) | mcpServers |
Optional | string|array|object | .mcp.json |
MCP configuration path or inline configuration | {"server":{"command":"..."}} |
| marketplace.json (plugins[]) | lspServers |
Optional | string|array|object | .lsp.json |
LSP configuration path or inline configuration | "./.lsp.json" |
All Fields in plugin.json
| Field | Required/Optional | Type | Default | Purpose / Description | Example Value |
|---|---|---|---|---|---|
name |
Required | string | — | The only required field. Also used as the skill namespace | "deployment-tools" |
$schema |
Optional | string | — | JSON Schema URL for editor autocompletion | "https://json.schemastore.org/..." |
version |
Optional | string | git SHA | Version (enables pinning if set; defaults to git SHA if omitted) | "2.1.0" |
description |
Optional | string | — | Brief description of the plugin's purpose | "Deployment automation" |
author.name |
Optional | string | — | Author name | "Dev Team" |
author.email |
Optional | string | — | Author email | "dev@company.com" |
author.url |
Optional | string | — | Author URL | "https://github.com/author" |
homepage |
Optional | string | — | Documentation URL | "https://docs.example.com" |
repository |
Optional | string | — | Source code URL | "https://github.com/user/plugin" |
license |
Optional | string | — | License identifier | "MIT", "Apache-2.0" |
keywords |
Optional | array | — | Discovery tags | ["deployment","ci-cd"] |
skills |
Optional | string|array | skills/ |
Custom skill directory | "./custom/skills/" |
commands |
Optional | string|array | commands/ |
Custom command files / directory | "./custom/cmd.md" |
agents |
Optional | string|array | agents/ |
Custom agent files | "./agents/reviewer.md" |
hooks |
Optional | string|array|object | hooks/hooks.json |
Hook configuration path or inline configuration | "./my-hooks.json" |
mcpServers |
Optional | string|array|object | .mcp.json |
MCP configuration path or inline configuration | {"db":{"command":"..."}} |
outputStyles |
Optional | string|array | output-styles/ |
Custom output style files / directory | "./styles/" |
themes |
Optional | string|array | themes/ |
Color theme files / directory | "./themes/" |
lspServers |
Optional | string|array|object | .lsp.json |
LSP code completion configuration | "./.lsp.json" |
monitors |
Optional | string|array | monitors/monitors.json |
Background monitor configuration | "./monitors.json" |
userConfig |
Optional | object | — | Configuration values prompted to the user on activation | {"api_token":{"type":"string",...}} |
channels |
Optional | array | — | Declares message injection channels (Telegram, Slack, etc.) | [{"server":"telegram","userConfig":{...}}] |
dependencies |
Optional | array | — | Other plugins this plugin depends on (semver constraints supported) | [{"name":"helper","version":"~2.1.0"}] |
All Fields in SKILL.md Frontmatter
| Field | Required/Optional | Type | Default | Purpose / Description | Example Value |
|---|---|---|---|---|---|
name |
Optional | string | Directory name | Display name of the skill. Only lowercase letters, numbers, and hyphens (max 64 characters) | "quality-review" |
description |
Recommended | string | First paragraph of body | What the skill does and when to use it. Used by Claude to decide whether to invoke it automatically | "Review code for bugs" |
when_to_use |
Optional | string | — | Additional context for when to invoke (trigger phrases, etc.) | "when asked to review" |
argument-hint |
Optional | string | — | Argument hint shown during autocompletion | "[issue-number]" |
arguments |
Optional | string|array | — | Named positional arguments for $name substitution |
"issue branch" |
disable-model-invocation |
Optional | boolean | false |
If true, only user can invoke (prevents automatic invocation by Claude) |
true |
user-invocable |
Optional | boolean | true |
If false, hidden from / menu (Claude invocation only) |
false |
allowed-tools |
Optional | string|array | — | Tools that can be used without permission when the skill is active | "Bash(git add *) Bash(git commit *)" |
model |
Optional | string | Inherits session setting | Model to use when the skill is active | "claude-opus-4-7" |
effort |
Optional | string | Inherits session setting | Effort level (low / medium / high / xhigh / max) |
"high" |
context |
Optional | string | — | Set to "fork" to run in a forked sub-agent context |
"fork" |
agent |
Optional | string | general-purpose |
Sub-agent type to use when context: fork |
"Explore" |
hooks |
Optional | object | — | Hook configuration scoped to the skill's lifecycle | {"PostToolUse":[...]} |
paths |
Optional | string|array | — | Glob pattern to restrict which files trigger automatic invocation | "**/*.ts,**/*.tsx" |
shell |
Optional | string | "bash" |
Shell to use for !`command` blocks (bash or powershell) |
"powershell" |
5 Plugin Source Types — Detailed Fetch Paths
The large table 2 above covered all source types comprehensively. Here we show configuration JSON examples for each source (Source: Creating and Distributing Plugin Marketplaces).
GitHub Source
{
"name": "deployment-tools",
"source": {
"source": "github",
"repo": "company/deploy-plugin",
"ref": "v2.0.0",
"sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"
}
}
ref is the branch or tag to track; sha pins to an exact commit for reproducibility. Either one alone is sufficient.
git-subdir Source (for Monorepos)
{
"source": {
"source": "git-subdir",
"url": "https://github.com/acme-corp/monorepo.git",
"path": "tools/claude-plugin",
"ref": "v2.0.0"
}
}
Even for a 500MB monorepo, only the few megabytes of the required subdirectory are fetched via sparse clone. The url field also accepts the owner/repo shorthand or SSH URLs like git@github.com:....
npm Source
{
"name": "my-npm-plugin",
"source": {
"source": "npm",
"package": "@acme/claude-plugin",
"version": "^2.0.0",
"registry": "https://npm.example.com"
}
}
version accepts semver ranges (^2.0.0, ~1.5.0, etc.). Specify a private registry using registry.
Creating Your Own Marketplace — Minimum 5 Steps
Here is the procedure for creating a "marketplace containing 1 Plugin" with minimal configuration, using a Plugin with a single Skill called /quality-review as an example (Source: Creating and Distributing Plugin Marketplaces).
# Step 1: Create directory structure
mkdir -p my-marketplace/.claude-plugin
mkdir -p my-marketplace/plugins/quality-review-plugin/.claude-plugin
mkdir -p my-marketplace/plugins/quality-review-plugin/skills/quality-review
# Step 2: Create SKILL.md
cat > my-marketplace/plugins/quality-review-plugin/skills/quality-review/SKILL.md <<'EOF'
---
description: Review code for bugs, security, and performance
disable-model-invocation: true
---
Review the code I've selected or the recent changes.
EOF
# Step 3: Create plugin.json
cat > my-marketplace/plugins/quality-review-plugin/.claude-plugin/plugin.json <<'EOF'
{
"name": "quality-review-plugin",
"description": "Adds a /quality-review skill for quick code reviews",
"version": "1.0.0"
}
EOF
# Step 4: Create marketplace.json
cat > my-marketplace/.claude-plugin/marketplace.json <<'EOF'
{
"name": "my-plugins",
"owner": { "name": "Your Name" },
"plugins": [
{
"name": "quality-review-plugin",
"source": "./plugins/quality-review-plugin",
"description": "Adds a /quality-review skill for quick code reviews"
}
]
}
EOF
# Step 5: Local test → share
# /plugin marketplace add ./my-marketplace
# /plugin install quality-review-plugin@my-plugins
Once pushed to GitHub, team members can import the catalog with /plugin marketplace add owner/my-marketplace.
Version Resolution Pitfalls
When you set the version field in plugin.json or a marketplace entry, Claude Code will not detect updates unless that version string changes. Even if you push new commits while keeping "version": "1.0.0", users will continue using the cached old code. The workaround is either (1) bump the version on every release, or (2) remove the version field and let Claude Code use the Git commit SHA as the version automatically. For internal tools where you want everyone to always have the latest version, option (2) is the better choice.
Strict Mode (strict) and Organization Distribution
Behavior of strict: true / false
The strict field in a marketplace.json plugin entry controls whether plugin.json or the marketplace entry itself is the authority for component definitions (Source: Creating and Distributing Plugin Marketplaces).
| Value | Behavior | Primary Use Case |
|---|---|---|
true (default) |
plugin.json is the authority. Marketplace entries can add additional skills or hooks on top |
Plugin author maintains their own plugin |
false |
The marketplace entry is the complete definition. A conflict error occurs if the plugin's plugin.json also declares components |
Marketplace operator curates the plugin |
Using strict: false gives the marketplace operator full control over the component configuration when packaging raw files as a Plugin. This is useful when you want to expose content from a different angle than the plugin author intended.
Organization Distribution — Complete strictKnownMarketplaces Configuration Examples
To deploy a marketplace as the default for an organization while blocking any external additions, combine two settings in the management configuration .claude/settings.json (Source: Creating and Distributing Plugin Marketplaces).
{
"extraKnownMarketplaces": {
"company-tools": {
"source": { "source": "github", "repo": "your-org/claude-plugins" }
}
},
"enabledPlugins": {
"code-formatter@company-tools": true,
"deployment-tools@company-tools": true
},
"strictKnownMarketplaces": [
{ "source": "github", "repo": "your-org/claude-plugins" },
{ "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" },
{ "source": "pathPattern", "pathPattern": "^/opt/approved/" }
]
}
The behavior corresponding to each strictKnownMarketplaces value is shown in the table below.
| Value | Behavior |
|---|---|
| Undefined (default) | No restrictions. Users can add any marketplace |
Empty array [] |
Complete lockdown. New marketplace additions are completely prohibited |
| List of sources | Only marketplaces that exactly match the whitelist can be added |
Using hostPattern with a regex that matches your GitHub Enterprise Server hostname allows all repositories under that domain. For automatic updates from private repositories, set the GITHUB_TOKEN / GITLAB_TOKEN / BITBUCKET_TOKEN environment variables to enable background authentication.
Container Pre-seeding and Environment Variables
For CI / production containers, you can use the CLAUDE_CODE_PLUGIN_SEED_DIR environment variable to specify a pre-seeded directory. By building the ~/.claude/plugins structure once at build time, the runtime can use it read-only. This is essential for air-gapped environments or offline CI. Additionally, setting CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1 will retain the existing cache when a git pull fails, allowing the system to continue with the last known good state. The timeout for Git operations can be adjusted with CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS (default: 120,000ms).
Summary — Decision Criteria for Operating Claude Code Marketplace
Claude Code Marketplace is a 3-layer catalog mechanism for distributing Plugins and Skills, built on a lightweight design that requires only a Git repository and a marketplace.json. The official marketplace includes 20+ plugins covering LSP, MCP, and workflows, available instantly via /plugin install <name>@claude-plugins-official. When building your own marketplace, understand the 3 files — marketplace.json, plugin.json, and SKILL.md — and choose from 5 source types (relative path / github / url / git-subdir / npm) based on your use case. Use git-subdir for monorepos, npm for npm-managed packages, and github for simple OSS distribution. For organization distribution, the standard approach is to combine extraKnownMarketplaces for automatic team-wide provisioning with strictKnownMarketplaces to enforce security policies. For version management, omitting the version field and relying on git SHA reduces unnecessary overhead for actively developed plugins.
Sources (Primary Information)
- Creating and Distributing Plugin Marketplaces (Claude Code Official Documentation)
- Discovering and Installing Existing Plugins (Claude Code Official Documentation)
- Creating Plugins (Claude Code Official Documentation)
- Plugin Reference (Claude Code Official Documentation)
- Extending Claude with Skills (Claude Code Official Documentation)
- anthropics/claude-code Plugin List (GitHub)
Related Articles
- Introduction to Claude Code — 9 Features That Work Even for Non-Engineers
- Getting Started with Custom Claude Skills — The Minimal SKILL.md
- What Can You Do with Claude's 4 Official Plugin Types and Custom Ones
- What Is Claude MCP — Full Feature List and 5 Connection Steps
- Pitfalls of Claude Code Computer Use