Skip to content

fix: SSH-less plugin install — try.sh HTTPS default + failure hint - #24

Merged
zheng-weihao merged 3 commits into
mainfrom
fix/install-https-escape-hatch
Jul 29, 2026
Merged

zheng-weihao merged 3 commits into
mainfrom
fix/install-https-escape-hatch

Conversation

@zheng-weihao

Copy link
Copy Markdown
Member

Problem

install.sh passes an owner/repo shorthand straight to each agent CLI's marketplace add, and the CLI picks the clone protocol. Measured on a clean machine (no ~/.ssh key):

CLI shorthand expansion no SSH key
codex 0.144.4 HTTPS first (zip → sparse → SSH last resort) ✅ works
qodercli 1.1.3 SSH first, HTTPS fallback ✅ works (one wasted SSH timeout)
claude SSH, no effective fallback ❌ plugin install fails

Orbit owns this: handing the protocol choice to external CLIs bets that every CLI implements degradation. They don't.

Fix (layered — SSH default untouched)

  1. try.sh defaults to the explicit HTTPS URL for network installs (ORBIT_SOURCE=https://github.com/orbcli/orbit.git, overridable). New users all take this path; zero-setup success wins. Local checkouts keep path sourcing so dogfooding still picks up local edits.
  2. Hint on plugin-install failure (shorthand sources only): prints the explicit-HTTPS retry command, in curl form — the typical victim piped install.sh and has no local checkout. No default change, no auto-retry.
  3. README/USAGE document ORBIT_SOURCE as the no-SSH-key escape hatch.

Accepted side effect: with a URL source, orbit.sh itself arrives via shallow clone instead of single-file curl (a few seconds slower). Right trade for a one-shot demo script.

Test

  • shellcheck clean on both scripts; bats tests/ 220/220.
  • End-to-end verified on a clean machine (no SSH key): claude plugin install failed before, succeeds with the HTTPS source; qodercli unaffected.

Plugin marketplace installs hand an owner/repo shorthand to the agent
CLI, and the CLI picks the clone protocol: claude expands it to SSH
with no fallback, so a machine without SSH keys can't install the
plugin (codex and qodercli degrade on their own, in opposite orders).

- try.sh: default the install source to the explicit HTTPS URL when
  piped from the network (zero-setup success for new users); local
  checkouts keep path sourcing, ORBIT_SOURCE still overrides.
- install.sh: when a plugin install fails with a shorthand source,
  hint the explicit-HTTPS retry (curl form — the typical victim has
  no local checkout). No default change, no auto-retry: SSH users
  keep SSH.
- README/USAGE: document ORBIT_SOURCE as the no-SSH-key escape hatch.

Signed-off-by: zheng-weihao <zheng-weihao@outlook.com>
@zheng-weihao
zheng-weihao force-pushed the fix/install-https-escape-hatch branch from a21fa2f to 037de5d Compare July 29, 2026 17:27
…eps the shorthand

Signed-off-by: zheng-weihao <zheng-weihao@outlook.com>
… (codex prefers HTTPS)

Signed-off-by: zheng-weihao <zheng-weihao@outlook.com>
@zheng-weihao
zheng-weihao merged commit bc6eaac into main Jul 29, 2026
2 checks passed
@zheng-weihao
zheng-weihao deleted the fix/install-https-escape-hatch branch July 29, 2026 18:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant