mirror of
https://github.com/OpenRouterTeam/spawn.git
synced 2026-05-03 14:20:19 +00:00
MODAL_SANDBOX_ID and sandbox name were interpolated directly into Python code strings, allowing potential code injection. Now all user-controlled values are passed via environment variables and read with os.environ in Python. Changes: - create_server: pass name/image via _MODAL_NAME/_MODAL_IMAGE env vars, use getattr() for image lookup, add sandbox name validation - run_server: pass sandbox ID and command via env vars - interactive_session: pass sandbox ID and command via env vars - destroy_server: pass sandbox ID via env var - Add validate_sandbox_id() to enforce sb-<alphanumeric> format - upload_file: remove printf '%q' escaping (base64 is safe) Agent: security-auditor 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 | ||
| kilocode.sh | ||
| nanoclaw.sh | ||
| openclaw.sh | ||
| opencode.sh | ||
| plandex.sh | ||
| README.md | ||
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)