mirror of
https://github.com/OpenRouterTeam/spawn.git
synced 2026-05-20 18:00:23 +00:00
* fix: run bun in foreground in DigitalOcean scripts to unfreeze interactive prompts The _run_with_restart function backgrounded bun with `& + wait` so a SIGTERM trap could forward the signal. But backgrounding removes bun from the terminal's foreground process group, which prevents @clack/prompts multiselect from entering raw mode — arrow keys print as raw escape sequences (^[[A^[[B) and the SSH key selection prompt freezes. Fix: run bun in the foreground and detect SIGTERM from exit code 143 (128+15) instead of using a trap flag + PID tracking. This preserves the restart-on-signal behavior while giving bun full terminal access for interactive prompts. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: replace @clack/prompts multiselect with /dev/tty picker for SSH keys When the CLI (parent bun) spawns bash → child bun for cloud scripts, the parent's event loop keeps fd 0 registered and races with the child's @clack/prompts for terminal input. This causes the SSH key multiselect to render but freeze — arrow keys print as raw escape sequences. Fix: add multiPickToTTY() in picker.ts that opens /dev/tty directly, bypassing process.stdin entirely. Replace the @clack/prompts multiselect in ssh-keys.ts with this new function. Also add process.stdin.unref() to prepareStdinForHandoff() so the parent stops polling fd 0. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * perf: disable SSH compression for interactive sessions Compression=yes adds per-keystroke CPU overhead that causes noticeable input lag on normal connections. Only beneficial on slow/high-latency links. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| claude.sh | ||
| codex.sh | ||
| kilocode.sh | ||
| openclaw.sh | ||
| opencode.sh | ||
| README.md | ||
| zeroclaw.sh | ||
DigitalOcean
DigitalOcean Droplets via REST API. DigitalOcean
Agents
Claude Code
bash <(curl -fsSL https://openrouter.ai/labs/spawn/digitalocean/claude.sh)
OpenClaw
bash <(curl -fsSL https://openrouter.ai/labs/spawn/digitalocean/openclaw.sh)
ZeroClaw
bash <(curl -fsSL https://openrouter.ai/labs/spawn/digitalocean/zeroclaw.sh)
Codex CLI
bash <(curl -fsSL https://openrouter.ai/labs/spawn/digitalocean/codex.sh)
OpenCode
bash <(curl -fsSL https://openrouter.ai/labs/spawn/digitalocean/opencode.sh)
Kilo Code
bash <(curl -fsSL https://openrouter.ai/labs/spawn/digitalocean/kilocode.sh)
Non-Interactive Mode
DO_DROPLET_NAME=dev-mk1 \
DO_API_TOKEN=your-token \
OPENROUTER_API_KEY=sk-or-v1-xxxxx \
bash <(curl -fsSL https://openrouter.ai/labs/spawn/digitalocean/claude.sh)