Browse plugins UI shows empty for directory-based personal marketplaces
Description
Directory-based personal marketplaces register correctly and appear as tabs in the Browse plugins UI, but no plugins are listed. The empty state message "When you add plugins to your marketplace, they will appear here." is shown despite the marketplace having valid plugins.
Root Cause
The marketplace add/remove operations use CCDMarketplacePluginManagerCLI (with useCoworkFlag: false), which writes to ~/.claude/plugins/known_marketplaces.json. However, the Browse plugins UI lists available plugins through a cowork manager that appends --cowork to the CLI command (claude plugin list --json --available --cowork), which reads from a separate known_marketplaces.json at ~/Library/Application Support/Claude/local-agent-mode-sessions/<session>/cowork_plugins/known_marketplaces.json.
The directory marketplace is never registered in the cowork known_marketplaces.json, so:
- Marketplace tabs: Read from CLI path → marketplace tab appears ✓
- Plugin listing: Read from cowork path → 0 plugins found ✗
Repro Steps
- Create a valid directory-based marketplace with
.claude-plugin/marketplace.jsonand plugins with.claude-plugin/plugin.json - Add it via Browse plugins → Personal → "+"
- Marketplace tab appears under Personal
- Click the marketplace tab — no plugins shown
Verification
# CLI path works — returns all plugins
claude plugin list --json --available | python3 -c "
import json, sys; d = json.load(sys.stdin)
print(len([p for p in d['available'] if 'chatham' in p['marketplaceName']]))
"
# Output: 11
# Cowork path (used by Browse UI) — returns 0
claude plugin list --json --available --cowork | python3 -c "
import json, sys; d = json.load(sys.stdin)
print(len([p for p in d['available'] if 'chatham' in p['marketplaceName']]))
"
# Output: 0
Expected Behavior
Plugins from directory-based personal marketplaces should appear in the Browse plugins UI, or the marketplace should be registered in both known_marketplaces.json files.
Environment
- Claude Desktop App (macOS, Darwin 25.4.0, ARM)
- Marketplace source type:
directory
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗