spawn/modal
Sprite aaf5820d80 fix: add defensive checks for MODAL_SANDBOX_ID after create_server
All modal scripts now validate that create_server() succeeded and that
MODAL_SANDBOX_ID is set before proceeding with setup steps. This prevents
silent failures when Modal sandbox creation fails.

Changes:
- Added explicit error checking after create_server() call
- Added validation that MODAL_SANDBOX_ID is not empty
- Applied to all 10 modal scripts (nanoclaw, aider, claude, interpreter,
  cline, amazonq, gemini, openclaw, goose, codex)

Fixes SC2154 shellcheck warnings for unassigned MODAL_SANDBOX_ID variable.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-08 01:38:47 +00:00
..
lib refactor: extract duplicate get_server_name logic to shared function 2026-02-08 01:16:20 +00:00
aider.sh fix: add defensive checks for MODAL_SANDBOX_ID after create_server 2026-02-08 01:38:47 +00:00
amazonq.sh fix: add defensive checks for MODAL_SANDBOX_ID after create_server 2026-02-08 01:38:47 +00:00
claude.sh fix: add defensive checks for MODAL_SANDBOX_ID after create_server 2026-02-08 01:38:47 +00:00
cline.sh fix: add defensive checks for MODAL_SANDBOX_ID after create_server 2026-02-08 01:38:47 +00:00
codex.sh fix: add defensive checks for MODAL_SANDBOX_ID after create_server 2026-02-08 01:38:47 +00:00
gemini.sh fix: add defensive checks for MODAL_SANDBOX_ID after create_server 2026-02-08 01:38:47 +00:00
goose.sh fix: add defensive checks for MODAL_SANDBOX_ID after create_server 2026-02-08 01:38:47 +00:00
interpreter.sh fix: add defensive checks for MODAL_SANDBOX_ID after create_server 2026-02-08 01:38:47 +00:00
nanoclaw.sh fix: add defensive checks for MODAL_SANDBOX_ID after create_server 2026-02-08 01:38:47 +00:00
openclaw.sh fix: add defensive checks for MODAL_SANDBOX_ID after create_server 2026-02-08 01:38:47 +00:00
README.md Add E2B + Modal sandbox providers, restructure README (#22) 2026-02-07 14:11:04 -08:00

Modal

Modal sandboxed containers via Python SDK. Modal

No SSH — uses Modal Python SDK for exec. Sub-second cold starts. Requires pip install modal.

Agents

Claude Code

bash <(curl -fsSL https://openrouter.ai/lab/spawn/modal/claude.sh)

OpenClaw

bash <(curl -fsSL https://openrouter.ai/lab/spawn/modal/openclaw.sh)

NanoClaw

bash <(curl -fsSL https://openrouter.ai/lab/spawn/modal/nanoclaw.sh)

Aider

bash <(curl -fsSL https://openrouter.ai/lab/spawn/modal/aider.sh)

Goose

bash <(curl -fsSL https://openrouter.ai/lab/spawn/modal/goose.sh)

Codex CLI

bash <(curl -fsSL https://openrouter.ai/lab/spawn/modal/codex.sh)

Open Interpreter

bash <(curl -fsSL https://openrouter.ai/lab/spawn/modal/interpreter.sh)

Gemini CLI

bash <(curl -fsSL https://openrouter.ai/lab/spawn/modal/gemini.sh)

Amazon Q CLI

bash <(curl -fsSL https://openrouter.ai/lab/spawn/modal/amazonq.sh)

Cline

bash <(curl -fsSL https://openrouter.ai/lab/spawn/modal/cline.sh)

Non-Interactive Mode

MODAL_SANDBOX_NAME=dev-mk1 \
OPENROUTER_API_KEY=sk-or-v1-xxxxx \
  bash <(curl -fsSL https://openrouter.ai/lab/spawn/modal/claude.sh)