spawn/modal
A d9da7eac1e
refactor: Reduce complexity in kamatera and modal cloud libraries (#362)
Extract helper functions from the two longest create_server() functions:

kamatera/lib/common.sh (73 -> 21 lines):
- _read_ssh_public_key: reads SSH public key file
- _build_kamatera_init_script: builds cloud-init heredoc
- _submit_and_wait_kamatera_server: API call, command parsing, wait loop

modal/lib/common.sh (67 -> 23 lines):
- _validate_modal_params: validates image name and sandbox name
- _invoke_modal_create: runs Python SDK sandbox creation
- _report_modal_create_error: troubleshooting guidance output

Agent: complexity-hunter

Co-authored-by: A <6723574+louisgv@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-10 23:19:42 -08:00
..
lib refactor: Reduce complexity in kamatera and modal cloud libraries (#362) 2026-02-10 23:19:42 -08:00
aider.sh refactor: Extract ENV_TEMP pattern to inject_env_vars_local (Modal) 2026-02-08 04:04:01 +00:00
amazonq.sh refactor: Extract ENV_TEMP pattern to inject_env_vars_local (Modal) 2026-02-08 04:04:01 +00:00
claude.sh QA-Bot setup (#335) 2026-02-10 19:51:07 -08:00
cline.sh refactor: Extract ENV_TEMP pattern to inject_env_vars_local (Modal) 2026-02-08 04:04:01 +00:00
codex.sh refactor: Extract ENV_TEMP pattern to inject_env_vars_local (Modal) 2026-02-08 04:04:01 +00:00
continue.sh feat: Add Continue agent for 8 clouds (digitalocean, vultr, linode, aws-lightsail, gcp, github-codespaces, e2b, modal) (#316) 2026-02-10 18:01:08 -08:00
gemini.sh refactor: Extract ENV_TEMP pattern to inject_env_vars_local (Modal) 2026-02-08 04:04:01 +00:00
goose.sh refactor: Extract ENV_TEMP pattern to inject_env_vars_local (Modal) 2026-02-08 04:04:01 +00:00
gptme.sh refactor: Extract ENV_TEMP pattern to provider-specific inject functions 2026-02-08 04:15:02 +00:00
interpreter.sh refactor: Extract ENV_TEMP pattern to inject_env_vars_local (Modal) 2026-02-08 04:04:01 +00:00
kilocode.sh feat: Add kilocode scripts for e2b, modal, fly, civo, scaleway, daytona (#113) 2026-02-09 19:45:51 -08:00
nanoclaw.sh refactor: Extract ENV_TEMP pattern to inject_env_vars_local (Modal) 2026-02-08 04:04:01 +00:00
openclaw.sh refactor: Extract ENV_TEMP pattern to inject_env_vars_local (Modal) 2026-02-08 04:04:01 +00:00
opencode.sh fix: Use robust OpenCode install method across all clouds (#48) 2026-02-07 23:02:18 -08:00
plandex.sh Add Plandex coding agent with 14 cloud implementations (#36) 2026-02-07 21:35:04 -08:00
README.md fix: Improve CLI error handling, fix bash compat, and update cloud READMEs (#90) 2026-02-09 09:33:57 -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)

gptme

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

OpenCode

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

Plandex

bash <(curl -fsSL https://openrouter.ai/lab/spawn/modal/plandex.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)