spawn/render
A 81bab47a74
fix: Escape API keys in continue.sh JSON configs to prevent injection (#374)
Replace vulnerable heredoc patterns across 27 continue.sh scripts with
setup_continue_config() helper that uses json_escape() + upload_config_file()
to safely handle API keys containing special characters like quotes or braces.

Also fix _save_token_to_config() in shared/common.sh which had the same
unescaped heredoc vulnerability for local token storage.

Relates to #104

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>
2026-02-11 00:13:19 -08:00
..
lib fix: Validate issue param and fix Render JSON injection + Hyperstack API bug (#234) 2026-02-10 12:52:23 -08:00
aider.sh feat: Add Render cloud provider (#225) 2026-02-10 12:34:04 -08:00
amazonq.sh feat: Add Amazon Q CLI on Render (#257) 2026-02-10 15:22:49 -08:00
claude.sh fix: Prevent shell/Python injection in Codespaces, Render, and FluidStack (#252) 2026-02-10 14:14:41 -08:00
cline.sh feat: Add Cline on Render (#261) 2026-02-10 15:23:32 -08:00
codex.sh feat: Add render/codex implementation (#235) 2026-02-10 12:52:11 -08:00
continue.sh fix: Escape API keys in continue.sh JSON configs to prevent injection (#374) 2026-02-11 00:13:19 -08:00
gemini.sh feat: Add render/gemini implementation (#243) 2026-02-10 12:54:36 -08:00
goose.sh feat: Add render/goose.sh (#245) 2026-02-10 12:55:16 -08:00
gptme.sh feat: Add gptme on Render (#266) 2026-02-10 15:24:13 -08:00
interpreter.sh feat: Add render/interpreter implementation (#238) 2026-02-10 12:53:33 -08:00
kilocode.sh feat: Add Kilo Code on Render (#269) 2026-02-10 15:24:49 -08:00
nanoclaw.sh fix: Prevent shell/Python injection in Codespaces, Render, and FluidStack (#252) 2026-02-10 14:14:41 -08:00
openclaw.sh fix: Prevent shell/Python injection in Codespaces, Render, and FluidStack (#252) 2026-02-10 14:14:41 -08:00
opencode.sh feat: Add OpenCode on Render (#274) 2026-02-10 15:25:20 -08:00
plandex.sh feat: Add Plandex on Render (#278) 2026-02-10 15:25:51 -08:00
README.md feat: Add render/goose.sh (#245) 2026-02-10 12:55:16 -08:00

Render

Render is a modern cloud platform for deploying full-stack applications, APIs, and websites. It offers a developer-first experience with automatic deployments, built-in SSL, and managed infrastructure.

Features

  • Free Hobby Plan: Free tier for development and small projects
  • Docker Support: Native Docker container support
  • CLI & SSH Access: Full CLI tooling with SSH access via render ssh
  • REST API: Comprehensive API for programmatic provisioning
  • Auto Deployments: Automatic deployments from Git repositories
  • Managed Services: PostgreSQL, Redis, and other managed services

Authentication

Render scripts require a RENDER_API_KEY. Get yours at: https://dashboard.render.com/u/settings/api-keys

The scripts will:

  1. Check for RENDER_API_KEY environment variable
  2. Fall back to saved key at ~/.config/spawn/render.json
  3. Prompt for the key if neither is available

Available Agents

Claude Code

bash <(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/render/claude.sh)

Deploys Claude Code with OpenRouter integration. Configures:

  • Automatic OpenRouter API base URL
  • Bypass permissions mode for autonomous operation
  • Dark theme and vim editor settings

OpenClaw

bash <(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/render/openclaw.sh)

Deploys OpenClaw with multi-channel gateway and TUI. Starts gateway in background, then launches interactive TUI. Prompts for model selection (default: openrouter/auto).

NanoClaw

bash <(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/render/nanoclaw.sh)

Deploys NanoClaw WhatsApp-based AI agent. Requires WhatsApp QR code scan for authentication.

Aider

bash <(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/render/aider.sh)

Deploys Aider with OpenRouter model routing. Prompts for model selection (default: openrouter/auto).

Goose

bash <(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/render/goose.sh)

Deploys Goose AI coding agent by Block with native OpenRouter support.

Codex CLI

bash <(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/render/codex.sh)

Deploys Codex CLI with OpenRouter integration via OPENAI_BASE_URL override.

Open Interpreter

bash <(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/render/interpreter.sh)

Deploys Open Interpreter with OpenRouter integration via OPENAI_BASE_URL override.

Gemini CLI

bash <(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/render/gemini.sh)

Deploys Gemini CLI with OpenRouter integration via OPENAI_BASE_URL and GEMINI_API_KEY override.

Service Details

  • Plan: Starter (can be configured)
  • Region: Oregon (default)
  • Runtime: Docker
  • Base Image: render-examples/docker-hello-world (minimal Ubuntu with SSH)

Environment Variables

All scripts support:

  • RENDER_API_KEY: Your Render API token
  • OPENROUTER_API_KEY: Your OpenRouter API key (or OAuth flow)

Cleanup

Services are automatically cleaned up on exit. Manual cleanup:

render services:delete <service-id>

Limitations

  • Render's free Hobby plan has resource limits (512MB RAM, 0.1 CPU)
  • Services spin down after 15 minutes of inactivity
  • Cold starts take 30-60 seconds