[BUG] /plugin install reports "already installed" for plugins installed in different projects with local scope

Resolved 💬 3 comments Opened Jan 23, 2026 by yundoun Closed Jan 27, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

When attempting to install a plugin that is already installed with local scope in a different project, the /plugin
install command incorrectly reports that the plugin is "already installed" instead of installing it for the current
project.

The system appears to check only whether the plugin exists in installed_plugins.json globally, without verifying if it's
actually installed for the current working directory/project.

For example:

  • Plugin frontend-design@claude-plugins-official is installed with scope: "local" for project

/Users/username/Desktop/WorkSpace/project-a

  • When running /plugin install frontend-design in a different project /Users/username/Desktop/WorkSpace/project-b
  • The CLI responds: Plugin 'frontend-design@claude-plugins-official' is already installed. Use '/plugin' to manage

existing plugins.

  • However, attempting to use /frontend-design in project-b results in: Unknown skill: frontend-design

What Should Happen?

When a plugin is installed with local scope for a specific project, running /plugin install <plugin-name> in a different
project should:

  1. Recognize that the plugin is not installed for the current project
  2. Proceed with the installation for the current project (adding a new entry to the plugins array)
  3. OR prompt the user: "This plugin is installed for another project. Would you like to install it for this project as

well?"

The installation check should be project-aware when dealing with local scope plugins.

Error Messages/Logs

❯ /plugin install frontend-design
    ⎿  Plugin 'frontend-design@claude-plugins-official' is already installed. Use '/plugin' to manage existing plugins.

  ❯ /frontend-design
    ⎿  Unknown skill: frontend-design

  Contents of ~/.claude/plugins/installed_plugins.json showing the plugin is only installed for a different project:

  {
    "version": 2,
    "plugins": {
      "frontend-design@claude-plugins-official": [
        {
          "scope": "local",
          "projectPath": "/Users/username/Desktop/WorkSpace/project-a",
          "installPath": "/Users/username/.claude/plugins/cache/claude-plugins-official/frontend-design/unknown",
          "version": "unknown",
          "installedAt": "2026-01-13T07:34:47.412Z",
          "lastUpdated": "2026-01-13T07:34:47.412Z"
        }
      ]
    }
  }

Steps to Reproduce

  1. Install a plugin with local scope in Project A:
  cd /path/to/project-a
  claude
  /plugin install frontend-design
  # Select "Install for this project only" if prompted
  2. Navigate to a different project (Project B) and start Claude Code:
  cd /path/to/project-b
  claude
  3. Attempt to install the same plugin:
  /plugin install frontend-design
  4. Observe the incorrect message: Plugin 'frontend-design@claude-plugins-official' is already installed.
  5. Attempt to use the plugin:
  /frontend-design
  6. Observe the error: Unknown skill: frontend-design

Claude Model

Opus

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.1.17 (Claude Code)

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

iTerm2

Additional Information

Workaround: Manually edit ~/.claude/plugins/installed_plugins.json to add an entry for the current project:

  "frontend-design@claude-plugins-official": [
    {
      "scope": "local",
      "projectPath": "/path/to/project-a",
      ...
    },
    {
      "scope": "local",
      "projectPath": "/path/to/project-b",
      "installPath": "/Users/username/.claude/plugins/cache/claude-plugins-official/frontend-design/unknown",
      "version": "unknown",
      "installedAt": "2026-01-24T00:40:00.000Z",
      "lastUpdated": "2026-01-24T00:40:00.000Z"
    }
  ]

After editing and restarting Claude Code, the plugin works correctly in Project B.

Suggested Fix:
The plugin installation logic should check if projectPath matches the current working directory when the plugin has
scope: "local", rather than just checking if any entry exists for the plugin name.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗