[Bug] Project-scoped plugin install not shareable across team clones

Status Open
Reported on v2.1.246
Maintainer reply None cached
Activity 0 comments · opened Aug 26, 2026

Bug Description
Project-scoped plugin install does not work for teammates who clone/pull the repo

What happened

I installed eli5@claude-community with project scope. The only thing added to
the project's .claude/settings.json was an enablement flag:

"enabledPlugins": { "eli5@claude-community": true }

Everything else lives under the user directory:

  • Plugin body: ~/.claude/plugins/cache/claude-community/eli5/1.0.0
  • Marketplace registration: ~/.claude/plugins/known_marketplaces.json
  • Install record (scope: "project"): ~/.claude/plugins/installed_plugins.json

There is not a single eli5-related file anywhere under the project directory.

Why this is a problem

My reason for choosing project scope is to share the setup with my team through
GitHub, so that it just works after they clone or pull. It does not.

.claude/settings.json is tracked by git, so the flag does reach them. But the
source that flag resolves against ("claude-community") is recorded only in
known_marketplaces.json, which lives in the user directory and is never
committed. The plugin body is not in their ~/.claude/plugins/cache/ either.

So the teammate ends up with a plugin enabled by name that cannot be resolved on
their machine, and nothing works until they manually run
/plugin marketplace add ... themselves. What gets shared is the intent -- "this
project uses that plugin" -- but not a working state. In that respect I do not
see much practical difference from a local-scope install.

The core of the mismatch, for me, is that installed_plugins.json records
scope: "project" while nothing is actually left in the project.

Note

How to fix it is a design decision, but for reference, two directions came to
mind: allowing the marketplace source to be declared in .claude/settings.json so
it can be fetched on first launch, or copying the plugin body into the project.
For what it is worth, the plugin body here was 16K, while the full source
repository clone was 3.7M.

Environment

Claude Code 2.1.246
macOS 26.1 (Darwin 25.1.0)

Environment Info

  • Platform: darwin
  • Terminal: Apple_Terminal
  • Version: 2.1.246
  • Feedback ID: 9e630a77-da9e-4619-a9f1-f5c2456ad838

Errors

[]

Follow-up to my previous report.

I have since found that extraKnownMarketplaces already exists and does let a
repo share the marketplace source. My earlier "Note" suggested this as a new
idea, which was wrong -- apologies.

That does not change the substance of the report, though. The docs state:

"A plugin that only the project's .claude/settings.json enables, and that
comes from an external source such as a GitHub repository or npm package,
doesn't load until the team member installs it."

So even with extraKnownMarketplaces committed, a teammate who clones the repo
still has to run claude plugin install by hand. The marketplace is shared;
the working state is not.

View original on GitHub ↗