plugin install uses SSH without HTTPS fallback (marketplace add has fallback, install doesn't)
Summary
claude plugin install fails for users without SSH configured for GitHub, even though claude plugin marketplace add correctly detects missing SSH and falls back to HTTPS. The two commands use inconsistent clone strategies.
Steps to Reproduce
# Step 1: Add marketplace (works — HTTPS fallback kicks in)
claude plugin marketplace add ericgandrade/claude-superskills
# Output: "SSH not configured, cloning via HTTPS" ✓
# Step 2: Install plugin (fails — no HTTPS fallback)
claude plugin install claude-superskills@claude-superskills
# Output: Failed to clone repository:
# git@github.com: Permission denied (publickey).
# fatal: Could not read from remote repository.
Debug Log Evidence
From ~/.claude/debug/:
[INFO] SSH not configured for GitHub, using HTTPS for ericgandrade/claude-superskills
↑ this runs during marketplace add/update — works correctly
[DEBUG] Caching plugin from source: {"source":"github","repo":"ericgandrade/claude-superskills"}
to temporary path /Users/.../plugins/cache/temp_github_...
↑ this runs during plugin install — uses git@github.com: (SSH), no fallback
Expected Behavior
plugin install should detect whether SSH is configured (same check as marketplace add) and fall back to HTTPS when SSH is unavailable.
Actual Behavior
plugin install always clones via git@github.com: (SSH). No HTTPS fallback. No error message explaining the cause — the command exits with code 1 and no output.
Environment
- Claude Code: latest (confirmed with
claude --version) - macOS Darwin 25.3.0
- No SSH key configured for GitHub
- Git remote for working directory uses HTTPS
Impact
Any user without SSH configured for GitHub cannot install third-party marketplace plugins via plugin install, even though the marketplace itself was added successfully via HTTPS. This affects:
- Corporate environments where SSH to GitHub is blocked
- New users who haven't set up SSH keys
- Machines configured for HTTPS-only GitHub access
Workaround (for users affected now)
git config --global url."https://github.com/".insteadOf "git@github.com:"
claude plugin install <plugin>@<marketplace>
Root Cause (suspected)
The SSH detection + HTTPS fallback logic exists in the marketplace add/update code path but is not reused in the plugin install clone step. The fix would be to apply the same SSH detection to any git clone triggered by plugin install.
Related
- Affected plugin:
ericgandrade/claude-superskills(marketplace source:{"source":"github","repo":"..."}) - The official marketplace (
anthropics/claude-plugins-official) is not affected because its plugins use relative path sources ("./plugins/feature-dev"), which copy from the already-cloned marketplace dir without a separate clone.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗