claude plugin update does not refresh marketplace clone before version check

Resolved 💬 3 comments Opened Mar 21, 2026 by rljohnsn Closed Mar 21, 2026

Summary

claude plugin update reports a plugin is already at the latest version when a newer version exists, because it checks the local marketplace clone without first pulling from the remote.

Steps to Reproduce

  1. Install a plugin from a GitHub-backed marketplace (e.g. claude plugin install cloud9-claude@cloud9-claude)
  2. A new release is published to the plugin's GitHub repo
  3. Run claude plugin update cloud9-claude@cloud9-claude

Expected: plugin updates to the new version
Actual: ✔ cloud9-claude is already at the latest version (1.4.1). (stale)

Root Cause

Claude Code clones the marketplace repo to ~/.claude/plugins/marketplaces/<name>/ at install time. On plugin update, it reads plugin.json from that cached clone to determine the available version — but does not git pull first. If new releases were published after the clone was created, the version check compares installed vs. stale cached, and no update is detected.

Evidence: manually running git pull in the marketplace clone directory, then re-running claude plugin update, correctly detected and applied the update.

$ git -C ~/.claude/plugins/marketplaces/cloud9-claude pull origin main
Updating 507642f..e5068d0  # new commits pulled

$ claude plugin update cloud9-claude@cloud9-claude
✔ Plugin "cloud9-claude" updated from 1.4.1 to 1.4.2 for scope user.

Expected Behavior

claude plugin update should fetch/pull the remote marketplace repo before comparing versions, so it always resolves against the current remote state.

Environment

  • Platform: macOS (darwin 24.6.0)
  • Shell: zsh

View original on GitHub ↗

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