CLI: Auto-install plugins from org managed settings (extraKnownMarketplaces + enabledPlugins)

Status Closed — not planned
Maintainer reply None cached
Activity 8 comments · opened Apr 8, 2026 · closed Jun 21, 2026

Problem

Plugins configured in org managed settings (extraKnownMarketplaces + enabledPlugins) do not auto-install in the CLI. They work in the desktop app and web app, but CLI users must manually run /plugin marketplace add and /plugin install.

This creates friction for organizations distributing internal plugins — there's no way to ensure CLI users have the correct plugins without manual steps or building workarounds like CLAUDE_CODE_PLUGIN_SEED_DIR into Docker images.

Current behavior

  1. Admin configures extraKnownMarketplaces and enabledPlugins in managed settings (Admin Console > Claude Code > Managed settings)
  2. CLI fetches managed settings at startup → cached in ~/.claude/remote-settings.json
  3. The marketplace is not registered in ~/.claude/plugins/known_marketplaces.json
  4. The plugin is not installed
  5. User must manually add the marketplace and install the plugin

Expected behavior

  1. Admin configures extraKnownMarketplaces and enabledPlugins in managed settings
  2. CLI fetches managed settings at startup
  3. Marketplace is automatically registered and fetched
  4. Plugins listed in enabledPlugins are automatically installed
  5. User starts a session with the plugin already active

Workarounds considered

  • CLAUDE_CODE_PLUGIN_SEED_DIR: Works for Docker/container environments but requires baking plugins into the image at build time, managing GitHub tokens as build secrets, and rebuilding to update
  • Entrypoint scripts: Adds startup latency and requires network + auth at runtime
  • Manual install docs: Defeats the purpose of org-managed settings

Prior issues

  • #23737 — closed as duplicate of #19275
  • #28310 — closed as duplicate of #19275
  • #19275 — closed as "not planned" (was filed as a bug about race conditions, not as a feature request)

None of these resulted in the feature actually shipping for CLI.

Environment

  • Claude Code CLI (via curl -fsSL https://claude.ai/install.sh | bash)
  • macOS + Linux (Docker containers)
  • Organization using Claude for Enterprise with managed settings

View original on GitHub ↗

8 Comments

bKNNNNN · 6 months ago

We're hitting this exact issue. Our organization distributes internal plugins via a private GitHub marketplace configured in the Admin Console (Admin Settings → Plugins).

What works:

  • Cowork and Desktop: plugins are visible and usable immediately via org provisioning
  • Skills (SKILL.md) load correctly across all surfaces
  • OAuth-based MCP servers (Notion, HubSpot, BigQuery) work everywhere

What doesn't work:

  • Claude Code CLI: org-provisioned plugins are not registered in known_marketplaces.json and not installed. Users must manually run marketplace add + plugin install, which requires GitHub access (gh auth login).

This is a blocker for us because:

  1. Not all team members have GitHub accounts (non-technical roles like Sales, Account Managers)
  2. We specifically need CLI for MCP servers that require API keys via ${ENV_VAR} expansion — these don't work in Cowork's sandbox (see #9427, #46473)
  3. The only path to a fully working setup (skills + all MCP servers) currently requires both org membership AND a GitHub account, which defeats the purpose of org provisioning

Our workaround: We document two paths (Cowork for skills-only, CLI for full MCP experience) but CLI users need manual GitHub setup. This is not scalable.

Would love to see CLI auto-install from managed settings — it would close the loop on org plugin distribution.

chriscrutt · 6 months ago

Same issue. Would be awesome to have @ssalzman-kobold

FlorinAndrei · 4 months ago

With Claude Code CLI 2.1.147 on macOS, and an SSH-style URL for the marketplace (using SSH keys to access a private repository in GitLab), I got the plugins auto-installed after two restarts.

The first restart got the marketplace listed in claude plugin marketplace list but no plugins appeared. After the second restart the plugins magically appeared. No manual steps needed other than the restarts.

Managed settings (edited for privacy):

{
  "channelsEnabled": true,
  "enabledPlugins": {
    "one-tooling@our-tools": true,
    "another-tooling@our-tools": true
  },
  "extraKnownMarketplaces": {
    "our-tools": {
      "autoUpdate": true,
      "source": {
        "source": "git",
        "url": "git@gitlab.com:organization/project.git"
      }
    }
  }
}

.claude-plugin/marketplace.json looks like this:

{
    "name": "our-tools",
    "owner": {
        "name": "Our Organization"
    },
    "description": "Our plugin marketplace for Claude Code.",
    "plugins": [
        {
            "name": "one-tooling",
            "source": "./plugins/one-tooling",
            "description": "Stuff."
        },
        {
            "name": "another-tooling",
            "source": "./plugins/another-tooling",
            "description": "More stuff."
        }
    ]
}
github-actions[bot] · 3 months ago

Closing for now — inactive for too long. Please open a new issue if this is still relevant.

vaelu · 2 months ago

I don't really understand why the Claude team does handle Web/Desktop and CLI like different products – it's really annoying for us as enterprise customers, when we roll out plugins and skills and the users still have to manually add them in their CLI.

zachmayer · 1 month ago

Its really odd to me that connectors sync from the web to all surfaces (claude.ai, claude desktop chat/cowork/code, claude code CLI), but plugins only sycn to some surfaces (claude.ai, claude desktop chat/cowork/code, claude code CLI).

It's really nice to be able to setup a connector and have it available in all my claudes. I would like to do the same with skills and plugins!

FlorinAndrei · 1 month ago
Closing for now

That's just lazy.

zachmayer · 1 month ago