anthropics / anthropics/claude-code

Self-hosted marketplace: a newly added plugin never appears and the catalog cannot be refreshed (desktop + web)

Đang mở
#91,308 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
area:desktop area:plugins bug has repro platform:macos platform:web
Ngôn ngữ chính
Python
Star
145k
Fork
23.1k
Chỉ số merge pull request
Chỉ số pull request đang chờ

Mô tả

### Preflight Checklist

- [x] I have searched [existing issues](https://github.com/anthropics/claude-code/issues?q=is%3Aissue%20state%3Aopen%20label%3Abug) 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?

A plugin newly added to an **already registered** self-hosted marketplace never becomes visible or installable. The marketplace catalog appears to be read once — when the marketplace is first added — and never again. The UI offers no way to refresh it.

Setup: a private GitHub repo with `.claude-plugin/marketplace.json`, added as a marketplace weeks ago with one plugin (`plugin-a`) in it. `plugin-a` is installed and works. A second plugin (`plugin-b`) was later added to the same repo and pushed to `origin/main`.

The push is verifiably correct: on `origin/main` the manifest lists both plugins and all files of `plugin-b` are tracked; local `main` and `origin/main` point at the same commit.

**`plugin-b` is nowhere in the UI:**

- Customize → Plugins → Discover → Filter → Source lists only `Anthropic`, `Personal` and one **other** self-hosted marketplace. The marketplace in question is not offered as a source at all — consistent with it having no uninstalled plugins from the app's point of view.
- Navigating directly to `/customize/plugins/plugin-b%40my-marketplace` redirects back to the plugin list. The same URL pattern for `plugin-a` renders correctly, so the scheme is right.

**There is no way to refresh the catalog:**

- Add → Add marketplace → same repository → Sync answers "This marketplace has already been added" and performs no refresh. The button is a no-op for an already-registered marketplace.
- The installed plugin's ⋮ menu offers only "Edit with Claude" and "Remove" — no update, no sync.
- "Automatically sync" is enabled for this marketplace and produced no change over several hours.
- Removing the plugin does **not** release the marketplace registration. After removing `plugin-a`, adding the repository again still returns "already been added", and the Discover list still offers only `plugin-a`. There is no UI anywhere to remove a marketplace, so the registration cannot be cleared. (`plugin-a` was reinstalled afterwards and works.)
- The plugin detail page states "from my-marketplace · added 25 Aug" — the day the marketplace was first registered, weeks before `plugin-b` existed. That date never moves.

Reproduced identically in the **web UI** (claude.ai → Customize → Plugins), so this is not specific to the Mac client.

**Secondary observation, possibly related:** under Settings → Desktop App there is a visibly empty block between "Developer" and "Customize" — the layout reserves space for entries that are not rendered. A colleague on an older release of the desktop app still has the marketplace UI that allowed browsing a self-hosted marketplace and selecting individual plugins from it; that UI is not present in this release. Possibly the same regression as #38008.

### What Should Happen?

After pushing a new plugin to an already registered self-hosted marketplace, the plugin should appear under Customize → Plugins → Discover (filtered by that marketplace as source) and be installable — the same way the first plugin was.

Failing that, there should be at least one way to force the catalog to be re-read:

- a working "Sync" on an already-registered marketplace, or
- an "Update" entry in the plugin or marketplace menu, or
- the ability to remove a marketplace and add it again.

Today none of these exist, which makes the state unrecoverable from the UI.

### Error Messages/Logs

```shell
Dialog: Add → Add marketplace → → Sync
"Dieser Marketplace wurde bereits hinzugefügt."
("This marketplace has already been added.")
No refresh is performed; the dialog cannot be completed.

Plugin detail header (unchanged since first registration):
"von my-marketplace · 0.20.0 · 7 Skills · aktualisiert vor 2 Stunden"

Discover card:
"von my-marketplace · hinzugefügt 25. Aug."

The workaround recommended in #41885 / #43745 is not available here — there is no local
marketplace clone on this machine:

$ cd ~/.claude/plugins/marketplaces/my-marketplace && git pull
-bash: cd: /Users//.claude/plugins/marketplaces/my-marketplace: No such file or directory
```

### Steps to Reproduce

1. Create a private GitHub repository containing `.claude-plugin/marketplace.json` with exactly **one** plugin entry (`plugin-a`), plus the plugin folder with its own `.claude-plugin/plugin.json`.
2. In the desktop app (or on claude.ai): Customize → Plugins → Add → Add marketplace → Add from a repository → select the repo → Sync.
3. Install `plugin-a` from Discover. It works.
4. Later, add a **second** plugin to the same repo: new folder `plugin-b` with its own `.claude-plugin/plugin.json`, plus a second entry in `.claude-plugin/marketplace.json`. Commit and push to the default branch.
5. Confirm on GitHub that the manifest on the default branch now lists both plugins.
6. Go to Customize → Plugins → Discover and look for `plugin-b`.
→ It is not there, and the marketplace is not even offered in the Source filter.
7. Try Add → Add marketplace → same repo → Sync.
→ "This marketplace has already been added." Nothing is refreshed.
8. Optional, to show the registration cannot be cleared: remove `plugin-a`, then repeat step 7.
→ Same message, and the catalog still contains only `plugin-a`.

Note: steps 6–8 behave identically in the web UI and in the Mac desktop app.

### Claude Model

None

### Is this a regression?

Yes, this worked in a previous version

### Last Working Version

Exact build unknown — a colleague on an older desktop release still has the marketplace browsing UI that is missing in 1.40609.0

### Claude Code Version

Claude for Mac 1.40609.0 (f65e38), build 2026-08-27 18:19 (desktop app / web UI — not the CLI)

### Platform

Anthropic API

### Operating System

macOS

### Terminal/Shell

Terminal.app (macOS)

### Additional Information

**Why this is not a duplicate of #73907.** That report (closed as not planned, Windows) is about an *installed* plugin not receiving **version updates**, and its author notes a workaround: "remove the marketplace itself, restart the app, re-add". This report is different in two ways:

1. The symptom is a **new plugin that never appears at all** — not a stale version of an installed one. The marketplace is not even offered in the Source filter.
2. **That workaround no longer exists.** In this release there is no way anywhere in the UI to remove a marketplace. Removing the plugin does not release the registration, and re-adding the repository is refused with "This marketplace has already been added". The state is therefore unrecoverable, where on the older/Windows build it was at least repairable.

**Impact:** a self-hosted marketplace can be populated only once. It can never gain a second plugin, because the catalog is read at registration time and never again, and the registration cannot be removed.

The remaining options both defeat the purpose of using a marketplace:

- uploading the plugin manually — the installed copy then has no link to its repository, so repository and installed state drift apart with the next change;
- creating a new repository per plugin, so every plugin gets a marketplace the app has never seen.

**Related issues:** #73907, #38185, #40600, #41885, #44276, #43745, #33718, #38008.

Beyond those, two points appear uncovered: the **"already added" dialog being a dead end** with no way to remove a marketplace, and the **absence of any local marketplace cache** in this setup, which removes the `git pull` workaround suggested in #41885 / #43745.

Suggested labels: `area:cowork`, `area:plugins`.

Screenshots can be supplied on request. Names of the private repository and its plugins have been replaced with `my-marketplace` / `plugin-a` / `plugin-b`.

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

Reproduce the issue from Customize → Plugins → Discover and Add → Add marketplace → Sync in both the Mac desktop app and claude.ai. Trace the already-registered marketplace path and catalog refresh behavior; done means a newly pushed plugin appears in the marketplace source filter and is installable, or the UI provides a working way to refresh or remove the marketplace.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
github, python
Lĩnh vực
backend, frontend
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Sôi nổi
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
45/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.