Marketplace plugin cloning should default to HTTPS instead of SSH

Status Open
Maintainer reply None cached
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 install from git URLs).

Current workaround

Users must either:

  1. Set up SSH keys for GitHub, or
  2. 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.

View original on GitHub ↗

5 Comments

DanielLaberge · 5 months ago

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" />

DanHam · 5 months ago

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:

  • I already have ssh keys set up for github but run in to the issue that I cannot see the pinentry prompt to unlock keys.
  • I use ssh authentication for github so cannot rewrite ssh -> https

As the original reporter said, this all seems a bit unnecessary if the marketplace update can be handled over https.

sw1nn · 5 months ago

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.com

on 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/config

# ~/.ssh/config
Host github.com
  IdentityAgent none

which fails silently, but that is problematic if you need ssh auth with agent elsewhere

raykuo998 · 3 months ago

+1 from Windows. Same root cause, slightly different surface — adding a data point because all three existing comments are macOS-flavored.

Environment

  • Windows 11 Home 10.0.26200
  • Git for Windows, no SSH key configured for github.com
  • gh CLI authenticated via HTTPS (gh auth login → "HTTPS" + "Login with web browser")
  • Claude Code current as of 2026-05-27

Symptom
/plugin install <name>@<marketplace> for any source: github plugin fails immediately with:

Failed to install: Failed to clone repository: Cloning into 'C:\Users\<user>\.claude\plugins\cache\temp_github_...'
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

No pinentry prompt (no SSH agent on a stock Windows install) — just hard fail.

Notes worth surfacing

  • gh auth login configuring git_protocol https for github.com does not unblock the install. CC's plugin clone ignores gh's host config.
  • The 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-start ssh -T connectivity check sidesteps the rewrite). The Windows install path appears not to run that connectivity check, so the rewrite is sufficient.
  • Net result: Windows users get the worst of both worlds — clean fail with no actionable hint in the CC UI, and the documented workaround pattern for macOS doesn't fully match the platform.

A default-HTTPS clone for public source: github entries would fix this cleanly without affecting users who already have working SSH.

rianbk · 1 month ago

Hitting this as well — another affected public plugin: databricks/databricks-agent-skills.

/plugin install databricks@databricks-agent-skills fails with:

Failed to install: Failed to clone repository for git-subdir source: ...
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

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 a git-subdir source with a bare owner/repo:

{ "source": "git-subdir", "url": "databricks/databricks-agent-skills", "path": "plugins/databricks/claude", "ref": "main" }

which the installer clones over SSH (git@github.com:…), even though:

  • the repo is publicgit ls-remote https://github.com/databricks/databricks-agent-skills succeeds with no auth, and
  • marketplace add for the same repo (source type github) clones fine over HTTPS.

So the git-subdir install path is SSH-only with no HTTPS fallback, unlike marketplace add (also cf. the closed dup #69587).

Workaround for anyone blocked:

git config --global url."https://github.com/".insteadOf "git@github.com:"

then re-run the install — git rewrites the SSH URL to HTTPS and the public clone succeeds.

Env: 2.1.201 (Claude Code), macOS.