digitalocean/spawn

forked from OpenRouterLabs/spawn

Open original ↗

Captured source

source ↗
published Mar 27, 2026seen 5dcaptured 11hhttp 200method plain

digitalocean/spawn

Description: Spawn any agent, on any cloud

Language: TypeScript

License: Apache-2.0

Stars: 0

Forks: 0

Open issues: 2

Created: 2026-03-27T14:06:30Z

Pushed: 2026-04-21T19:50:54Z

Default branch: main

Fork: yes

Parent repository: OpenRouterLabs/spawn

Archived: no

README:

Spawn

Launch any AI agent on any cloud with a single command. Coding agents, research agents, self-hosted AI tools — Spawn deploys them all. All models powered by OpenRouter. (ALPHA software, use at your own risk!)

9 agents. 7 clouds. 63 working combinations. Zero config.

Install

macOS / Linux — and Windows users inside a WSL2 terminal (Ubuntu, Debian, etc.):

curl -fsSL https://openrouter.ai/labs/spawn/cli/install.sh | bash

Windows PowerShell (outside WSL):

irm https://openrouter.ai/labs/spawn/cli/install.ps1 | iex

Usage

spawn # Interactive picker
spawn # Launch directly
spawn matrix # Show the full agent x cloud matrix

Examples

spawn # Interactive picker
spawn claude sprite # Claude Code on Sprite
spawn codex hetzner # Codex CLI on Hetzner
spawn claude sprite --prompt "Fix bugs" # Non-interactive with prompt
spawn codex sprite -p "Add tests" # Short form
spawn claude # Show clouds available for Claude
spawn delete # Delete a running server
spawn delete -c hetzner # Delete a server on Hetzner

Commands

| Command | Description | |---------|-------------| | spawn | Interactive agent + cloud picker | | spawn | Launch agent on cloud directly | | spawn --dry-run | Preview without provisioning | | spawn --zone | Set zone/region for the cloud | | spawn --size | Set instance size/type for the cloud | | spawn --prompt "text" | Non-interactive with prompt (or -p) | | spawn --prompt-file | Prompt from file (or -f) | | spawn --headless | Provision and exit (no interactive session) | | spawn --output json | Headless mode with structured JSON on stdout | | spawn --model | Set the model ID (overrides agent default) | | spawn --config | Load options from a JSON config file | | spawn --steps | Comma-separated setup steps to enable | | spawn --custom | Show interactive size/region pickers | | spawn | Show available clouds for an agent | | spawn | Show available agents for a cloud | | spawn matrix | Full agent x cloud matrix | | spawn list | Browse and rerun previous spawns | | spawn list | Filter history by agent or cloud name | | spawn list -a | Filter history by agent | | spawn list -c | Filter history by cloud | | spawn list --flat | Show flat list (disable tree view) | | spawn list --json | Output history as JSON | | spawn list --clear | Clear all spawn history | | spawn tree | Show recursive spawn tree (parent/child relationships) | | spawn tree --json | Output spawn tree as JSON | | spawn history export | Dump history as JSON to stdout (used by parent VMs) | | spawn fix | Re-run agent setup on an existing VM (re-inject credentials, reinstall) | | spawn fix | Fix a specific spawn by name or ID | | spawn link | Register an existing VM by IP | | spawn link --agent | Specify the agent running on the VM | | spawn link --cloud | Specify the cloud provider | | spawn last | Instantly rerun the most recent spawn | | spawn agents | List all agents with descriptions | | spawn clouds | List all cloud providers | | spawn feedback "message" | Send feedback to the Spawn team | | spawn uninstall | Uninstall spawn CLI and optionally remove data | | spawn update | Check for CLI updates | | spawn delete | Interactively select and destroy a cloud server | | spawn delete -a | Filter servers to delete by agent | | spawn delete -c | Filter servers to delete by cloud | | spawn delete --name --yes | Headless delete by name (no prompts) | | spawn status | Show live state of cloud servers | | spawn status -a | Filter status by agent | | spawn status -c | Filter status by cloud | | spawn status --prune | Remove gone servers from history | | spawn help | Show help message | | spawn version | Show version |

Config File

The --config flag loads options from a JSON file. CLI flags override config values.

{
"model": "openai/gpt-5.3-codex",
"steps": ["github", "browser", "telegram"],
"name": "my-dev-box",
"setup": {
"telegram_bot_token": "123456:ABC-DEF...",
"github_token": "ghp_xxxx"
}
}
spawn codex gcp --config setup.json --headless --output json

Setup Steps

Control which optional setup steps run with --steps:

spawn openclaw gcp --steps github,browser # Only GitHub + Chrome
spawn claude gcp --steps "" # Skip all optional steps

Available steps vary by agent:

| Step | Agents | Description | |------|--------|-------------| | github | All | GitHub CLI + git identity | | reuse-api-key | All | Reuse saved OpenRouter key | | browser | openclaw | Chrome browser (~400 MB) | | telegram | openclaw | Telegram bot (set TELEGRAM_BOT_TOKEN for non-interactive) | | whatsapp | openclaw | WhatsApp linking (interactive QR scan, skipped in headless) |

Fast Mode

Use --fast for significantly faster deploys. Enables all speed optimizations:

spawn claude hetzner --fast

What --fast does:

  • Parallel boot: server creation runs concurrently with API key prompt and account checks
  • Tarballs: installs agents from pre-built tarballs instead of live install
  • Skip cloud-init: for lightweight agents (Claude, OpenCode, Hermes), skips the package install wait since the base OS already has what's needed
  • Snapshots: uses pre-built cloud images when available (Hetzner, DigitalOcean)

Beta Features

Individual optimizations can be enabled separately with --beta . The flag is repeatable:

spawn claude gcp --beta tarball --beta parallel

| Feature | Description | |---------|-------------| | tarball | Use pre-built tarball for agent install (faster, skips live install) | | images | Use pre-built cloud images/snapshots (faster boot) | | parallel | Parallelize server boot with setup prompts | | recursive | Install spawn CLI on VM so it can spawn child VMs | | sandbox | Run local agents in a Docker container (sandboxed) |

--fast enables tarball, images, and parallel (not recursive or sandbox).

Recursive Spawn

Use --beta recursive to let spawned VMs create their own child VMs:…

Excerpt shown — open the source for the full document.

Notability

notability 3.0/10

Routine fork by a company, no notable traction.