plugins update doesn't fetch from remote, reports stale version as latest
Bug Description
claude plugins update <plugin> reports a plugin is "already at the latest version" even when the remote git repository has newer versions available. The command checks the local marketplace cache without running git fetch/git pull first.
Steps to Reproduce
- Install a git-based plugin from a custom marketplace:
````
claude plugins install cbexpert@cbexpert
- Wait for the upstream repo to publish new versions (in this case, 2.1.1 → 2.3.0)
- Run:
````
claude plugins update cbexpert@cbexpert
- Output:
````
Checking for updates for plugin "cbexpert@cbexpert" at user scope…
✔ cbexpert is already at the latest version (2.1.1)
Expected Behavior
The update command should fetch the latest state from the remote repository before comparing versions, detect version 2.3.0, and update the plugin.
Actual Behavior
The command only checks the local marketplace cache at ~/.claude/plugins/marketplaces/<plugin>/, which is stale. It compares installed version against the stale local copy and incorrectly reports no update available.
Workaround
Manually pull the latest changes in the marketplace cache, then reinstall:
cd ~/.claude/plugins/marketplaces/<plugin> && git pull origin master
claude plugins remove <plugin>@<marketplace>
claude plugins install <plugin>@<marketplace>
Environment
- Claude Code version: 2.1.81
- OS: macOS (Darwin 25.4.0)
- Plugin source: git-based custom marketplace
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗