[BUG] Adding marketplace with custom SSH git url is not allowed
Status Open
Maintainer reply None cached
Workaround ✓ Mentioned in thread ↓
Activity 12 comments · opened Oct 17, 2025
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Using a custom ssh git url (something different to git@.../....git) is not allowed
What Should Happen?
Any ssh git url should be allowed. IE: ${user}@${server}:${owner}/${repo}.git where user could be anything
EG: org-123456@github.com:my-org/my-marketplace.git should work
Github enterprises using ssh certificates must use a different user different togit(usuallyorg-#######) to clone their repos
EG: user@192.168.10.123:path/to/repo (no .git here) should work
Simple cloning on a local network should work with any user
Error Messages/Logs
✘ Invalid marketplace source format. Try: owner/repo, https://..., or ./path
Steps to Reproduce
claude plugin marketplace add org-123456@github.com:my-org/my-marketplace.git
Claude Model
None
Is this a regression?
No, this never worked
Last Working Version
_No response_
Claude Code Version
2.0.21
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
Other
Additional Information
_No response_
Showing cached comments. Read the full discussion on GitHub ↗
11 Comments
Found 1 possible duplicate issue:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
👎
👎
This issue has been inactive for 30 days. If the issue is still occurring, please comment to let us know. Otherwise, this issue will be automatically closed in 30 days for housekeeping purposes.
Still an issue.
Unable to load plugins using Azure Devops git repositories because of this. Only Github works
Same issue here. Using Azure DevOps repo, it is able to clone now via SSH, but arbitrarily rejects adding the marketplace because the url doesn't end in
.gitI did manage to get Azure DevOps repositories working but it was ugly.
marketplacetomarketplace.git/plugin marketplace add, but instead only do/plugin-> tab over to "Marketplaces" -> Add Marketplacegit@ssh.dev.azure.com:v3/your-org/project/marketplace.gitA lot of compromises but figured I would share something that at least has the functionality some of us may want. Hopefully some of these restrictions loosen up over time.
While this thread is about custom URLs not ending with
.git, you might also like to note that the URL seems to need to not contain:. It's something that tripped me up and it's possible that it's relevant to the issue here.For GitLab, if you copy the git URL from the UI, you'll get something like
git@gitlab.com:org/group/claude-marketplace.git. This SSH URL format won't work directly, you need to replace the:with/in the path and to add thessh://URI scheme. The following works for us:To be explicit:
This is the opposite of the behaviour when adding via the CLI, where
claude plugin marketplace add git@gitlab.com:org/group/claude-marketplace.gitworks fine.For anyone having difficulties debugging, run
claude --debug. It will print a log file and that log file will likely contain the cause. For us it was:This issue is not listed in the troubleshooting section of the marketplace guide, but the
extraKnownMarketplacedocs have some examples that just happen to not contain colons in the paths:It would be perhaps useful to add a GitLab example.
If your Git server uses a non-standard SSH port, the usual scp-style Git URL can be misleading here.
Key points:
git@host:path/to/repo.gitis the scp-style form. The:is part of the path syntax and cannot represent a port.git@host:1022/org/repo.git, Git interprets1022/...as a path, and will still connect to port 22.What to do instead:
Option A (preferred): use
~/.ssh/configto encode the portgit@my-gitlab:org/group/claude-marketplace.gitssh://git@my-gitlab/org/group/claude-marketplace.gitOption B: use the URL-style form with an explicit port (only if accepted by the validator)
ssh://git@gitlab.example.com:1022/org/group/claude-marketplace.gitIf the marketplace validator rejects
:in the URL (some reports suggest it does), Option A is the most reliable workaround because it avoidshost:portentirely while still using the correct port under the hood.Another workaround is to manually clone into
~/.claude/plugins/marketplaces/foo, manually update~/.claude/plugins/known_marketplaces.jsonthen runclaude plugin marketplace foo update, but it's a huge pain for something that seems like it ought to be a trivial fix :(