claude-code - 💡(How to fix) Fix Plugin marketplace needs hierarchical namespacing to avoid collisions across organizations [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#45266Fetched 2026-04-09 08:09:23
View on GitHub
Comments
0
Participants
1
Timeline
2
Reactions
0
Participants
Timeline (top)
labeled ×2
RAW_BUFFERClick to expand / collapse

Problem

Plugin and marketplace names exist in a flat namespace with no scoping mechanism. This creates several problems for organizations running multiple internal marketplaces alongside the official one:

  1. Name collisions — Two marketplaces can independently define a plugin with the same name. The first one registered wins silently (see #44042). There's no way to disambiguate.

  2. No organizational scoping — A company with multiple teams publishing plugins has no way to group or scope them. You end up with defensive naming (otpl-schema-migration instead of schema-migration) to avoid collisions.

  3. No hierarchy within a marketplace — Plugins in a single marketplace are a flat bag. There's no way to express categories, teams, or functional groupings (e.g., infra/deploy, infra/db-migration, observability/grafana).

  4. Ambiguous resolution — When the official marketplace and an internal marketplace both offer a plugin with a similar purpose, there's no precedence or override mechanism. You can't say "prefer our internal fork of X."

Comparison

This is the same problem npm had before scoped packages (@org/package), Docker before multi-level image names (registry/org/image), and GitHub before orgs. All solved it with hierarchical namespacing.

Proposal

Introduce scoped plugin names, e.g.:

  • @anthropic/jdtls-lsp (official)
  • @opentable/schema-migration (org-internal)
  • @opentable/infra/deploy (org + category)

Resolution rules:

  • Unqualified names resolve against official marketplace first, then registered marketplaces in order
  • Fully qualified names are unambiguous
  • Organizations can pin resolution order in settings

This would also make enabledPlugins in settings.json clearer — "@opentable/schema-migration@otpl-marketplace": true is self-documenting compared to the current format.

Related

  • #44042 — marketplace name overwrites
  • #43695 — namespace-qualified skill invocation

extent analysis

TL;DR

Introduce scoped plugin names to resolve name collisions and provide organizational scoping.

Guidance

  • Implement a hierarchical namespacing system for plugins, similar to npm's scoped packages or Docker's multi-level image names.
  • Define resolution rules to handle unqualified and fully qualified names, ensuring precedence and override mechanisms.
  • Update settings.json to support the new naming convention, making enabledPlugins more self-documenting.
  • Consider adding organization-level settings to pin resolution order for internal marketplaces.

Example

A possible implementation could involve prefixing plugin names with an organization identifier, such as @opentable/infra/deploy, to provide scoping and avoid collisions.

Notes

This solution assumes that the existing marketplace infrastructure can be modified to support scoped plugin names. Additional considerations may be necessary for backwards compatibility and migration of existing plugins.

Recommendation

Apply the proposed workaround of introducing scoped plugin names, as it provides a clear and scalable solution to the problems of name collisions, organizational scoping, and hierarchical grouping.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING