plugin update: git fetch without pull causes 'already at latest' for git-source marketplaces
Description
claude plugin update <plugin> always reports "already at latest version" for git-source marketplace plugins, even when the remote has newer commits with a bumped version.
Reproduction
- Install a plugin from a git marketplace:
``bash``
claude plugin marketplace add https://github.com/curtis1215/super-telegram-plugin
claude plugin install super-telegram@super-telegram-plugin
- Push a new version to the remote (bump
.claude-plugin/plugin.jsonversion) - Run:
``bash``
claude plugin update super-telegram@super-telegram-plugin
- Output:
✔ super-telegram is already at the latest version (1.5.5).
Root Cause
The update command does git fetch on the marketplace clone at ~/.claude/plugins/marketplaces/<name>/, which updates remote refs. However, it does not git pull or git merge origin/main, so the local HEAD (and thus .claude-plugin/plugin.json) never advances. The version comparison reads from local HEAD, finds the same version as the installed plugin, and reports "already at latest."
After manually running git pull in the marketplace directory, the correct version is visible.
Expected Behavior
claude plugin update should pull the latest from remote before comparing versions, or compare against origin/main ref instead of local HEAD.
Workaround
cd ~/.claude/plugins/marketplaces/<marketplace-name> && git pull origin main
Environment
- Claude Code CLI (latest as of 2026-04-06)
- macOS Darwin 25.4.0
- Git-source marketplace plugin
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗