Marketplace plugin cloning should default to HTTPS instead of SSH
Status Open
Maintainer reply None cached
Workaround ✓ Mentioned in thread ↓
Activity 5 comments · opened Feb 18, 2026
Problem
When installing a marketplace plugin via /plugin marketplace add owner/repo, Claude Code clones the repository using SSH (git@github.com:...). This fails for users who don't have SSH keys configured for GitHub:
Error: Failed to clone marketplace repository: SSH authentication failed. Please ensure your
SSH keys are configured for GitHub, or use an HTTPS URL instead.
Original error: Cloning into '/Users/user/.claude/plugins/marketplaces/owner-repo'...
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Why this is a problem
- Marketplace repositories are public and read-only — SSH authentication is unnecessary.
- HTTPS works out of the box with no configuration for public repos.
- Many users don't have SSH keys set up for GitHub, especially on fresh machines or if they primarily use HTTPS for their own repos.
- Most tools that clone public repos default to HTTPS for this reason (e.g.,
go get,cargo install,npm installfrom git URLs).
Current workaround
Users must either:
- Set up SSH keys for GitHub, or
- Configure Git globally to rewrite SSH to HTTPS:
git config --global url."https://github.com/".insteadOf git@github.com:
Both are unnecessary friction for a read-only clone of a public repo.
Suggested fix
Default to HTTPS (https://github.com/owner/repo.git) when cloning marketplace repositories. SSH could optionally be supported via a flag or configuration for users behind corporate proxies that block HTTPS but allow SSH.
5 Comments
This is EXTREMELY annoying because it Prompts the 1Password CLI to use my GitHub key EVERY time I sent a first message in a new Claude Session, even though my repos are set to use HTTPS auth.
Codex doesn't have that issue.
<img width="400" height="537" alt="Image" src="https://github.com/user-attachments/assets/45314cd8-7c5d-4fbe-9282-467787e94004" />
I have a similar (and equally annoying!) issue to Daniel Laberge.
Every time a marketplace update runs my pinentry program pops up as the ssh-based update command tries to access my (protected) ssh keys. The marketplace update runs _every time_ I quit Claude Code. I am aware that I can remove the marketplace or disable auto-updates. However, that does not seem like a very satisfactory solution.
An additional annoyance is that (as other have reported) if you are using a terminal based pinentry program e.g. pinentry-curses you cannot see the prompt because "Claude Code's Ink renderer holds exclusive control of the terminal". Note that I also use tmux, so any command/process that causes my pinentry program to start also needs to tell the gpg agent what tty to start the pinentry program in. The conflict over control of the terminal between Claude and pinentry can lead to corruption of the terminal / weird behaviour after I quit.
The suggested workarounds will not work for me:
As the original reporter said, this all seems a bit unnecessary if the marketplace update can be handled over https.
it seems that even setting up a ssh -> https rewrite for git is not enough, because claude does a connectivity check with
ssh -T git@github.comon session start and that will prompt for ssh key passphrase via whatever configured agent / pinentry setup you have
You can work around that by adding this to
~/.ssh/configwhich fails silently, but that is problematic if you need ssh auth with agent elsewhere
+1 from Windows. Same root cause, slightly different surface — adding a data point because all three existing comments are macOS-flavored.
Environment
gh auth login→ "HTTPS" + "Login with web browser")Symptom
/plugin install <name>@<marketplace>for anysource: githubplugin fails immediately with:No pinentry prompt (no SSH agent on a stock Windows install) — just hard fail.
Notes worth surfacing
gh auth loginconfiguringgit_protocol httpsforgithub.comdoes not unblock the install. CC's plugin clone ignores gh's host config.git config --global url."https://github.com/".insteadOf "git@github.com:"rewrite does work on Windows (counter to @sw1nn's macOS observation where the session-startssh -Tconnectivity check sidesteps the rewrite). The Windows install path appears not to run that connectivity check, so the rewrite is sufficient.A default-HTTPS clone for public
source: githubentries would fix this cleanly without affecting users who already have working SSH.Hitting this as well — another affected public plugin:
databricks/databricks-agent-skills./plugin install databricks@databricks-agent-skillsfails with:on a machine with no GitHub SSH key configured.
Root cause matches this issue. The plugin's Claude catalog entry (
.claude-plugin/marketplace.json) uses agit-subdirsource with a bareowner/repo:which the installer clones over SSH (
git@github.com:…), even though:git ls-remote https://github.com/databricks/databricks-agent-skillssucceeds with no auth, andmarketplace addfor the same repo (source typegithub) clones fine over HTTPS.So the
git-subdirinstall path is SSH-only with no HTTPS fallback, unlikemarketplace add(also cf. the closed dup #69587).Workaround for anyone blocked:
then re-run the install — git rewrites the SSH URL to HTTPS and the public clone succeeds.
Env: 2.1.201 (Claude Code), macOS.