plugin update: git fetch without pull causes 'already at latest' for git-source marketplaces

Resolved 💬 3 comments Opened Apr 6, 2026 by curtis1215 Closed Apr 6, 2026

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

  1. 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
``

  1. Push a new version to the remote (bump .claude-plugin/plugin.json version)
  2. Run:

``bash
claude plugin update super-telegram@super-telegram-plugin
``

  1. 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

View original on GitHub ↗

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