fix(marketplace): use relative sources to avoid SSH-only clones#111
Open
fix(marketplace): use relative sources to avoid SSH-only clones#111
Conversation
Both plugin entries in .claude-plugin/marketplace.json used absolute
GitHub sources (github / git-subdir), which trigger a second git clone
when a user runs `/plugin install`. That clone defaults to the SSH
transport and fails on machines without SSH keys or without
github.com in known_hosts:
git@github.com: Permission denied (publickey).
Host key verification failed.
The failure is common in corporate environments (HTTPS-only proxies)
and GitHub Codespaces / devcontainers (no SSH host keys preloaded),
and Claude Code surfaces it silently — the skill shows a red circle
with no actionable error. The marketplace itself clones fine because
Claude Code's marketplace loader falls back to HTTPS, but the plugin
install path does not.
Since both plugins live inside this same repo that hosts
marketplace.json, switch to relative sources so Claude Code reuses the
already-cloned marketplace checkout and never performs a second clone:
- `nx` → `"source": "./"` (plugin manifest at .claude-plugin/plugin.json)
- `polygraph` → `"source": "./generated/polygraph"` (manifest at
generated/polygraph/.claude-plugin/plugin.json)
This matches the pattern already used by .cursor-plugin/marketplace.json
in this repo (`"source": "."`) and by vercel-labs/agent-browser, both of
which install cleanly in HTTPS-only and devcontainer environments.
Verified locally with:
claude plugin validate .claude-plugin/marketplace.json # ✔ passed
claude plugin marketplace add <local-clone>
claude plugin install nx@nx-claude-plugins # ✔ installed
claude plugin install polygraph@nx-claude-plugins # ✔ installed
After install, all 7 nx skills (nx-workspace, nx-generate, nx-run-tasks,
nx-plugins, nx-import, monitor-ci, link-workspace-packages) and the
polygraph subagents/skills load as expected.
Fixes nrwl#106
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #106. Both plugin entries in
.claude-plugin/marketplace.jsonused absolute GitHub sources, which trigger a second git clone during/plugin install— that clone defaults to SSH and fails on machines without SSH keys, and silently fails in GitHub Codespaces / devcontainers wheregithub.comisn't inknown_hosts.Since both plugins live in this repo, switching to relative sources makes Claude Code reuse the already-cloned marketplace checkout and never performs a second clone.
nx→"source": "./"polygraph→"source": "./generated/polygraph"Mirrors the pattern already in use by
.cursor-plugin/marketplace.jsonhere ("source": ".") and by vercel-labs/agent-browser, both of which install cleanly in HTTPS-only and devcontainer environments.Test plan
Verified end-to-end against a local clone of this branch:
claude plugin validate .claude-plugin/marketplace.json→ ✔ passedclaude plugin marketplace add <local-clone>→ registered asnx-claude-pluginsclaude plugin install nx@nx-claude-plugins→ ✔ installed (no SSH clone attempted)claude plugin install polygraph@nx-claude-plugins→ ✔ installednx:nx-workspace,nx:nx-run-tasks,nx:nx-plugins,nx:nx-import,nx:monitor-ci,nx:link-workspace-packages. (nx:nx-generateusessubagent: general-purpose+context: fork, so it's enumerated on a different path — verified present in the plugin cache atplugins/cache/nx-claude-plugins/nx/0.2.33/skills/nx-generate/SKILL.md.)polygraph:polygraph,polygraph:get-latest-ci,polygraph:await-polygraph-ci.Before this fix, neither plugin would install on this machine (silent failure, red circle in the Claude Code UI). After this fix, both install and their skills load immediately.
Notes
artifacts/changed, sonpx nx sync-artifactsis not required..claude-plugin/plugin.json(nx) andgenerated/polygraph/.claude-plugin/plugin.json(polygraph) already exist and are unchanged.