mirror of
https://github.com/OpenRouterTeam/spawn.git
synced 2026-04-29 20:39:29 +00:00
* feat: SPAWN_CLI_DIR env var to force local source in e2e and shell scripts When SPAWN_CLI_DIR is set, the entire toolchain uses local TypeScript source instead of downloading pre-bundled scripts from GitHub releases: - e2e.sh: auto-sets SPAWN_CLI_DIR to repo root when running locally - provision.sh: exports SPAWN_CLI_DIR into the headless subshell - commands.ts: reads local shell scripts instead of fetching from CDN - All 36 cloud/agent shell scripts: exec local main.ts when set This enables e2e tests to validate local changes before they're released. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(security): add path traversal defense to SPAWN_CLI_DIR script loading Canonicalize the path via realpathSync and verify it stays inside the resolved CLI directory before reading. Prevents SPAWN_CLI_DIR from being used to read arbitrary files via ../ traversal. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(security): harden SPAWN_CLI_DIR path traversal defense - Validate cloud/agent names don't contain '..', '/' or '\' before constructing file paths - Fix root-directory edge case in prefix check by handling trailing separator correctly Agent: pr-maintainer Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: B <6723574+louisgv@users.noreply.github.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)
Environment Variables
| Variable | Description | Default |
|---|---|---|
DO_API_TOKEN |
DigitalOcean API token | — (OAuth if unset) |
DO_DROPLET_NAME |
Name for the created droplet | auto-generated |
DO_REGION |
Datacenter region (see regions below) | nyc3 |
DO_DROPLET_SIZE |
Droplet size slug (see sizes below) | s-2vcpu-4gb |
Available Regions
| Slug | Location |
|---|---|
nyc1 |
New York 1 |
nyc3 |
New York 3 (default) |
sfo3 |
San Francisco 3 |
ams3 |
Amsterdam 3 |
sgp1 |
Singapore 1 |
lon1 |
London 1 |
fra1 |
Frankfurt 1 |
tor1 |
Toronto 1 |
blr1 |
Bangalore 1 |
syd1 |
Sydney 1 |
Available Droplet Sizes
| Slug | Specs | Price |
|---|---|---|
s-1vcpu-1gb |
1 vCPU · 1 GB RAM | $6/mo |
s-1vcpu-2gb |
1 vCPU · 2 GB RAM | $12/mo |
s-2vcpu-2gb |
2 vCPU · 2 GB RAM | $18/mo |
s-2vcpu-4gb |
2 vCPU · 4 GB RAM | $24/mo (default) |
s-4vcpu-8gb |
4 vCPU · 8 GB RAM | $48/mo |
s-8vcpu-16gb |
8 vCPU · 16 GB RAM | $96/mo |
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)
Override region and droplet size:
DO_REGION=fra1 \
DO_DROPLET_SIZE=s-1vcpu-2gb \
DO_API_TOKEN=your-token \
OPENROUTER_API_KEY=sk-or-v1-xxxxx \
bash <(curl -fsSL https://openrouter.ai/labs/spawn/digitalocean/claude.sh)
Interactive Region and Size Picker
Pass --custom to select from a menu of regions and droplet sizes interactively:
bash <(curl -fsSL https://openrouter.ai/labs/spawn/digitalocean/claude.sh) --custom