[BUG] `/plugin marketplace add` hangs indefinitely during repository clone

Status Fixed / completed
Maintainer reply ✓ Yes — dhollman
Activity 7 comments · opened Oct 10, 2025 · closed Oct 10, 2025
💡 Likely answer: A maintainer (dhollman, contributor) responded on this thread — see the highlighted reply below.

Environment

  • Claude Code Version: 2.0.13
  • Platform: macOS (Darwin 22.6.0)
  • Node Version: 20.19.4
  • Terminal: Claude Code CLI
  • Feature Age: Tested <24 hours after Oct 9, 2025 announcement

Summary

/plugin marketplace add creates the marketplace directory structure but hangs indefinitely when attempting to clone the repository content. No timeout, no error message, no progress indication.

Reproduction Steps

  1. Run /plugin in Claude Code
  2. Select "Add marketplace"
  3. Enter Wolfe-Jam/faf-cli
  4. Command hangs indefinitely

Result:

  • ✅ Creates ~/.claude/plugins/config.json with repository entry
  • ✅ Creates ~/.claude/plugins/marketplaces/wolfe-Jam-faf/ directory
  • ❌ Directory remains empty (git clone never completes)
  • ❌ No timeout or error message

Workaround

Manual git clone succeeds:

cd ~/.claude/plugins/marketplaces/wolfe-Jam-faf
git clone https://github.com/Wolfe-Jam/faf-cli.git .

Follow-up Issue

After manual clone, /plugin install faf reports:

Plugin "faf" not found in any marketplace

Despite valid marketplace.json at:

~/.claude/plugins/marketplaces/wolfe-Jam-faf/marketplace.json

What Works Well ✅

The validation tool works perfectly and caught a real bug in the plugin manifest:

claude plugin validate ~/.claude/plugins/marketplaces/wolfe-Jam-faf
# Clear error: "repository: Expected string, received object"

After fixing the manifest format, validation passes. However, commands still don't activate.

Expected Behavior

  1. /plugin marketplace add should clone repository OR timeout with error message
  2. /plugin install should discover plugins from valid marketplace.json
  3. Slash commands from installed plugins should become available

Actual Behavior

  1. Marketplace add hangs with no feedback
  2. Plugin discovery fails silently
  3. Commands never activate

System Info

Claude Code: 2.0.13
OS: darwin (Darwin 22.6.0)
Node: v20.19.4
Git: Available and working (manual clone succeeds)
Repository tested: https://github.com/Wolfe-Jam/faf-cli
Marketplace structure: Valid (contains .claude-plugin/marketplace.json)
Plugin manifest: Valid after fixing repository field format

Impact

Blocks the primary plugin installation workflow for users. The feature was announced yesterday, so early feedback on installation UX may be valuable.

Suggested Improvements

  1. Add timeout to repository clone operations
  2. Show progress indicator during git clone
  3. Provide actionable error messages on failure
  4. Improve plugin discovery from validated marketplaces

Additional Notes

  • Tested immediately after Oct 9, 2025 announcement
  • Feature is brand new (public beta), so bugs are expected
  • Willing to provide additional debugging info if helpful
  • Repository: https://github.com/Wolfe-Jam/faf-cli

---

Labels: bug, plugins, marketplace, installation
Priority: Medium-High (blocks primary installation workflow)

View original on GitHub ↗

7 Comments

franco-gh · 10 months ago

Running into this same issue on WSL. I see the repo is trying to be cloned, and when looking at the folder, the files are present.

When adding the marketplace times out, all files are removed as well.

dhollman contributor · 10 months ago

Should be fixed in the next release! Please re-open if you're still having issues after tomorrow morning.

Wolfe-Jam · 10 months ago

Will check, thanks

mistakeknot · 10 months ago

Hi @dhollman! I am still experiencing this issue on 2.0.14.

Wolfe-Jam · 10 months ago

Update: Bug Still Present in v2.0.14 - Root Cause Identified

Tested Environment:

Test Result: STILL HANGING

Root Cause Found

The /plugin marketplace add command uses SSH clone instead of HTTPS clone:

# What Claude Code is doing (hangs):
git clone git@github.com:Wolfe-Jam/faf-cli.git

# What it should do (works):
git clone https://github.com/Wolfe-Jam/faf-cli.git

Evidence:

$ ps aux | grep git
/usr/bin/git clone git@github.com:Wolfe-Jam/faf-cli.git ~/.claude/plugins/marketplaces/Wolfe-Jam-faf-cli
/usr/bin/ssh -o SendEnv=GIT_PROTOCOL git@github.com git-upload-pack 'Wolfe-Jam/faf-cli.git'

The SSH process hangs waiting for authentication, which never completes in the background.

Verified Working

Manual HTTPS clone completes in 4 seconds:

$ time git clone https://github.com/Wolfe-Jam/faf-cli.git
# Completes in 4.03 seconds ✅

Plugin Structure Validated

While testing, confirmed the plugin repository is production-ready:

  • claude plugin validate - PASSED
  • ✅ Plugin manifest format correct
  • ✅ 6 slash commands configured
  • ✅ Repository structure valid

Recommendation

Change marketplace clone to use HTTPS URLs instead of SSH URLs for public repositories.

Wolfe-Jam · 10 months ago

Breakthrough: Manual Installation Works - SSH Clone is the Only Issue

Critical Discovery:

After extensive testing, the plugin works perfectly when installed manually. The bug is exclusively in the /plugin marketplace add SSH clone logic.

✅ What Works

Manual installation (bypassing marketplace add):

# Copy repository to marketplaces directory
cp -r /path/to/faf-cli ~/.claude/plugins/marketplaces/faf-local

Result:

  • ✅ All 6 slash commands discovered
  • ✅ Commands execute properly
  • /faf-status tested and working
  • ✅ Plugin structure validated

❌ What's Broken

Only the marketplace clone step:

/plugin marketplace add Wolfe-Jam/faf-cli
# Uses: git clone git@github.com:Wolfe-Jam/faf-cli.git (HANGS)
# Should use: git clone https://github.com/Wolfe-Jam/faf-cli.git (WORKS)

Test Matrix

| Method | Clone Protocol | Result |
|--------|---------------|--------|
| owner/repo shorthand | SSH (git@github.com) | ❌ Hangs indefinitely |
| https://... URL | Treats as marketplace.json URL | ❌ Wrong interpretation |
| Manual git clone https://... | HTTPS | ✅ Works (4 seconds) |
| Copy to marketplaces dir | N/A | ✅ Commands activate |

Root Cause Confirmed

The owner/repo shorthand incorrectly resolves to SSH instead of HTTPS:

  • Current behavior: Wolfe-Jam/faf-cligit@github.com:Wolfe-Jam/faf-cli.git
  • Expected behavior: Wolfe-Jam/faf-clihttps://github.com/Wolfe-Jam/faf-cli.git

Fix Required

Change one line in the marketplace clone logic:

- const repoUrl = `git@github.com:${owner}/${repo}.git`;
+ const repoUrl = `https://github.com/${owner}/${repo}.git`;

Impact

Once this single-line fix is deployed:

  • /plugin marketplace add Wolfe-Jam/faf-cli will work
  • ✅ All plugins will install via marketplace
  • ✅ 6 slash commands will activate automatically

The plugin ecosystem is ready - just needs the SSH→HTTPS fix in Claude Code.

---

Environment: Claude Code v2.0.14, macOS
Repository: https://github.com/Wolfe-Jam/faf-cli (production-ready)

github-actions[bot] · 10 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.