mirror of
https://github.com/OpenRouterTeam/spawn.git
synced 2026-05-08 01:51:14 +00:00
Security: - Fix command injection in modal/lib/common.sh (run_server, upload_file, interactive_session) - Fix command injection in fly/lib/common.sh (run_server, upload_file, interactive_session) - All container providers now use printf '%q' for proper shell escaping Complexity: - Extract _api_should_retry_on_error() helper in shared/common.sh (-19 lines) - Refactor scaleway_api and upcloud_api to use shared retry helper (-24 lines) - Extract _save_fly_token() helper in fly/lib/common.sh (-11 lines) - Extract validateAndGetAgent() in commands.ts, reducing cmdRun/cmdAgentInfo duplication - Refactor cmdList column width calculation to use calculateColumnWidth() UX: - Add actionable next steps to error messages in shared/common.sh - Improve CLI bash fallback error messages with guidance (spawn.sh) - Add OAuth progress indicator during browser authentication wait - Show invalid model ID value and link to openrouter.ai/models - Add troubleshooting steps for agent installation failures Tests: - Update test assertions in test/run.sh to match refactored patterns - All tests passing: 74 TypeScript + 75 bash = 149 total, 0 failures Co-authored-by: A <6723574+louisgv@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| lib | ||
| aider.sh | ||
| amazonq.sh | ||
| claude.sh | ||
| cline.sh | ||
| codex.sh | ||
| gemini.sh | ||
| goose.sh | ||
| gptme.sh | ||
| interpreter.sh | ||
| nanoclaw.sh | ||
| openclaw.sh | ||
| opencode.sh | ||
| plandex.sh | ||
| README.md | ||
Scaleway
Scaleway Cloud instances via REST API. Scaleway
Agents
Claude Code
bash <(curl -fsSL https://openrouter.ai/lab/spawn/scaleway/claude.sh)
OpenClaw
bash <(curl -fsSL https://openrouter.ai/lab/spawn/scaleway/openclaw.sh)
NanoClaw
bash <(curl -fsSL https://openrouter.ai/lab/spawn/scaleway/nanoclaw.sh)
Aider
bash <(curl -fsSL https://openrouter.ai/lab/spawn/scaleway/aider.sh)
Goose
bash <(curl -fsSL https://openrouter.ai/lab/spawn/scaleway/goose.sh)
Codex CLI
bash <(curl -fsSL https://openrouter.ai/lab/spawn/scaleway/codex.sh)
Open Interpreter
bash <(curl -fsSL https://openrouter.ai/lab/spawn/scaleway/interpreter.sh)
Gemini CLI
bash <(curl -fsSL https://openrouter.ai/lab/spawn/scaleway/gemini.sh)
Amazon Q CLI
bash <(curl -fsSL https://openrouter.ai/lab/spawn/scaleway/amazonq.sh)
Cline
bash <(curl -fsSL https://openrouter.ai/lab/spawn/scaleway/cline.sh)
gptme
bash <(curl -fsSL https://openrouter.ai/lab/spawn/scaleway/gptme.sh)
OpenCode
bash <(curl -fsSL https://openrouter.ai/lab/spawn/scaleway/opencode.sh)
Non-Interactive Mode
SCALEWAY_SERVER_NAME=dev-mk1 \
SCW_SECRET_KEY=your-secret-key \
OPENROUTER_API_KEY=sk-or-v1-xxxxx \
bash <(curl -fsSL https://openrouter.ai/lab/spawn/scaleway/claude.sh)
Environment Variables
| Variable | Description | Default |
|---|---|---|
SCW_SECRET_KEY |
Scaleway API secret key (required) | - |
SCW_DEFAULT_PROJECT_ID |
Scaleway project ID (auto-detected if not set) | - |
SCALEWAY_SERVER_NAME |
Server name | prompted |
SCALEWAY_ZONE |
Availability zone | fr-par-1 |
SCALEWAY_TYPE |
Commercial type (instance size) | DEV1-S |
OPENROUTER_API_KEY |
OpenRouter API key | prompted via OAuth |