claude-code - 💡(How to fix) Fix Plugin installPath ignores source.path for external git-sourced plugins [1 comments, 2 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#54802Fetched 2026-04-30 06:35:34
View on GitHub
Comments
1
Participants
2
Timeline
5
Reactions
0
Author
Timeline (top)
labeled ×4commented ×1

When a marketplace plugin defines an external git source with a path sub-key, Claude Code clones the repo but sets installPath to the repo root, ignoring the path offset. This prevents skill discovery, MCP config loading, and .claude-plugin detection for the plugin.

Root Cause

When a marketplace plugin defines an external git source with a path sub-key, Claude Code clones the repo but sets installPath to the repo root, ignoring the path offset. This prevents skill discovery, MCP config loading, and .claude-plugin detection for the plugin.

Fix Action

Workaround

Manually editing installed_plugins.json to append the path value to installPath fixes the issue, but it reverts on every plugin reinstall/update.

Code Example

{
  "name": "dashboard",
  "source": {
    "source": "url",
    "url": "[email protected]:example/my-repo.git",
    "path": "plugin"
  }
}

---

repo-root/
├── backend/
├── frontend/
├── plugin/              ← path points here
│   ├── .claude-plugin/
│   │   └── plugin.json
│   ├── .mcp.json
│   └── skills/
│       └── query/
│           └── SKILL.md
└── README.md

---

"enabledPlugins": {
  "dashboard@my_marketplace": true
}

---

{
  "version": 2,
  "plugins": {
    "dashboard@my_marketplace": [
      {
        "scope": "user",
        "installPath": "/home/user/.claude/plugins/cache/my_marketplace/dashboard/1.0.0",
        ...
      }
    ]
  }
}

---

"installPath": "/home/user/.claude/plugins/cache/my_marketplace/dashboard/1.0.0/plugin"
RAW_BUFFERClick to expand / collapse

Summary

When a marketplace plugin defines an external git source with a path sub-key, Claude Code clones the repo but sets installPath to the repo root, ignoring the path offset. This prevents skill discovery, MCP config loading, and .claude-plugin detection for the plugin.

Steps to Reproduce

  1. Create a marketplace plugin with an external git source and a path field in marketplace.json:
{
  "name": "dashboard",
  "source": {
    "source": "url",
    "url": "[email protected]:example/my-repo.git",
    "path": "plugin"
  }
}
  1. The repo structure has the plugin assets in the plugin/ subdirectory:
repo-root/
├── backend/
├── frontend/
├── plugin/              ← path points here
│   ├── .claude-plugin/
│   │   └── plugin.json
│   ├── .mcp.json
│   └── skills/
│       └── query/
│           └── SKILL.md
└── README.md
  1. Install and enable the plugin via settings.json:
"enabledPlugins": {
  "dashboard@my_marketplace": true
}
  1. Restart Claude Code and try to invoke the plugin's skill (e.g., /dashboard:query).

Expected Behavior

  • installPath in installed_plugins.json should be set to <cache_dir>/plugin (honoring the path field).
  • Skills, .mcp.json, and .claude-plugin/plugin.json are discovered correctly.
  • /dashboard:query works as a slash command.

Actual Behavior

  • installPath is set to the repo root: <cache_dir>/ (ignoring path).
  • Claude Code cannot find .claude-plugin/plugin.json at the root, so skills are never registered.
  • /dashboard:query returns "Unknown command".
  • The MCP tools defined in .mcp.json do load (likely via a separate mechanism), but skills do not.

Contents of installed_plugins.json after install:

{
  "version": 2,
  "plugins": {
    "dashboard@my_marketplace": [
      {
        "scope": "user",
        "installPath": "/home/user/.claude/plugins/cache/my_marketplace/dashboard/1.0.0",
        ...
      }
    ]
  }
}

Should be:

"installPath": "/home/user/.claude/plugins/cache/my_marketplace/dashboard/1.0.0/plugin"

Workaround

Manually editing installed_plugins.json to append the path value to installPath fixes the issue, but it reverts on every plugin reinstall/update.

Environment

  • Claude Code version: 2.1.119
  • OS: Linux 6.8.0-106-generic

extent analysis

TL;DR

The issue can be fixed by ensuring that the installPath in installed_plugins.json honors the path field specified in the marketplace plugin's marketplace.json.

Guidance

  • Verify that the path field is correctly specified in the marketplace.json file and that it matches the directory structure of the git repository.
  • Check the Claude Code documentation to see if there are any known issues or limitations with handling path sub-keys in external git sources.
  • Consider filing a bug report or feature request with the Claude Code developers to properly handle the path field in marketplace.json.
  • As a temporary workaround, manually editing installed_plugins.json to append the path value to installPath can fix the issue, but this will need to be reapplied after every plugin reinstall or update.

Example

No code snippet is provided as the issue is related to configuration and plugin installation.

Notes

The issue seems to be specific to the Claude Code version 2.1.119 and the Linux 6.8.0-106-generic environment. It is unclear if this issue affects other versions or environments.

Recommendation

Apply the workaround of manually editing installed_plugins.json until a proper fix is available, as it allows the plugin to function correctly, albeit temporarily.

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