spawn/local
A e760de064a
fix: use shared setup_continue_config to prevent JSON injection in local/continue.sh (#921)
local/continue.sh used a double-quoted heredoc to write the API key
directly into ~/.continue/config.json without escaping. If the key
contained double quotes, it could produce invalid JSON or inject
additional config fields. Replace inline heredoc with the shared
setup_continue_config helper which uses json_escape.

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-13 05:03:38 -08:00
..
lib feat: Add local cloud provider for running agents on local machine (#381) 2026-02-11 00:50:05 -08:00
aider.sh fix: use log_step for progress messages in recent scripts (#524) 2026-02-11 14:04:14 -08:00
claude.sh fix: replace log_warn with log_step/log_info for non-warning messages (#604) 2026-02-12 03:24:30 -08:00
cline.sh feat: implement local/cline.sh (#853) 2026-02-13 02:09:26 -08:00
codex.sh fix: replace log_warn with log_step/log_info for non-warning messages (#604) 2026-02-12 03:24:30 -08:00
continue.sh fix: use shared setup_continue_config to prevent JSON injection in local/continue.sh (#921) 2026-02-13 05:03:38 -08:00
gemini.sh feat: implement local/gemini script (#750) 2026-02-12 15:31:26 -08:00
goose.sh fix: replace log_warn with log_step/log_info for non-warning messages (#604) 2026-02-12 03:24:30 -08:00
gptme.sh fix: use log_step for progress messages in recent scripts (#524) 2026-02-11 14:04:14 -08:00
interpreter.sh feat: Add local/interpreter implementation (#557) 2026-02-11 16:41:37 -08:00
kilocode.sh feat: implement local/kilocode.sh (#807) 2026-02-13 02:30:59 -08:00
nanoclaw.sh fix: replace log_warn with log_step/log_info for non-warning messages (#604) 2026-02-12 03:24:30 -08:00
openclaw.sh fix: replace log_warn with log_step/log_info for non-warning messages (#604) 2026-02-12 03:24:30 -08:00
plandex.sh feat: implement local/plandex.sh (#854) 2026-02-13 02:10:08 -08:00
README.md refactor: replace Python with jq in Hetzner lib, fix /lab → /labs URLs (#827) 2026-02-12 23:14:11 -08:00

Local Machine

Run agents directly on your local machine without any cloud provisioning.

No server creation or destruction. Installs agents and injects OpenRouter credentials locally. Useful for local development and testing.

Quick Start

If you have the spawn CLI installed:

spawn claude local
spawn openclaw local
spawn nanoclaw local
spawn aider local
spawn goose local
spawn codex local
spawn interpreter local
spawn gptme local
spawn continue local

Or run directly without the CLI:

bash <(curl -fsSL https://openrouter.ai/labs/spawn/local/claude.sh)
bash <(curl -fsSL https://openrouter.ai/labs/spawn/local/openclaw.sh)
bash <(curl -fsSL https://openrouter.ai/labs/spawn/local/nanoclaw.sh)
bash <(curl -fsSL https://openrouter.ai/labs/spawn/local/aider.sh)
bash <(curl -fsSL https://openrouter.ai/labs/spawn/local/goose.sh)
bash <(curl -fsSL https://openrouter.ai/labs/spawn/local/codex.sh)
bash <(curl -fsSL https://openrouter.ai/labs/spawn/local/interpreter.sh)
bash <(curl -fsSL https://openrouter.ai/labs/spawn/local/gptme.sh)
bash <(curl -fsSL https://openrouter.ai/labs/spawn/local/continue.sh)

Non-Interactive Mode

OPENROUTER_API_KEY=sk-or-v1-xxxxx \
  bash <(curl -fsSL https://openrouter.ai/labs/spawn/local/claude.sh)

What It Does

Local scripts will:

  • Install the agent if not already present
  • Obtain an OpenRouter API key (via OAuth or environment variable)
  • Append environment variables to ~/.zshrc for the agent to use
  • Launch the agent

No cloud servers are created or destroyed.

Environment Variables

Variable Description
OPENROUTER_API_KEY OpenRouter API key (prompted via OAuth if not set)
SPAWN_PROMPT If set, runs the agent non-interactively with this prompt