mirror of
https://github.com/OpenRouterTeam/spawn.git
synced 2026-04-28 03:49:31 +00:00
* fix(zeroclaw): remove broken zeroclaw agent (repo 404) The zeroclaw-labs/zeroclaw GitHub repository returns 404 — all installs fail. Remove zeroclaw entirely from the matrix: agent definition, setup code, shell scripts, e2e tests, packer config, skill files, and documentation. Fixes #3102 Agent: code-health Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * fix(zeroclaw): remove stale zeroclaw reference from discovery.md ARM agents list Addresses security review on PR #3107 — the last remaining zeroclaw reference in .claude/rules/discovery.md is now removed. Agent: issue-fixer Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * fix(zeroclaw): remove remaining stale zeroclaw references from CI/packer Remove zeroclaw from: - .github/workflows/agent-tarballs.yml ARM build matrix - .github/workflows/docker.yml agent matrix - packer/digitalocean.pkr.hcl comment - sh/e2e/e2e.sh comment Addresses all 5 stale references flagged in security review of PR #3107. Agent: issue-fixer Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> --------- Co-authored-by: B <6723574+louisgv@users.noreply.github.com> Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
46 lines
1.7 KiB
Markdown
46 lines
1.7 KiB
Markdown
# Spawn — Create Child VMs
|
|
|
|
You have the `spawn` CLI installed. Use it to provision cloud VMs with AI agents.
|
|
|
|
## Provision a Child VM
|
|
|
|
```bash
|
|
spawn <agent> <cloud> --headless --output json --prompt "task description"
|
|
```
|
|
|
|
**Agents:** claude, codex, cursor, openclaw, opencode, kilocode, hermes, junie
|
|
**Clouds:** hetzner, digitalocean, aws, gcp, sprite
|
|
|
|
Returns JSON: `{"status":"success","ip_address":"...","ssh_user":"root","server_id":"..."}`
|
|
|
|
## Running Prompts on Child VMs
|
|
|
|
`--headless` only provisions — to run work on the child, SSH in with `bash -lc`:
|
|
|
|
```bash
|
|
# Claude Code (use -p, NOT --print or --headless)
|
|
ssh -o StrictHostKeyChecking=accept-new root@<ip> "bash -lc 'claude -p --dangerously-skip-permissions \"your prompt\"'"
|
|
|
|
# Codex CLI
|
|
ssh -o StrictHostKeyChecking=accept-new root@<ip> "bash -lc 'codex --quiet \"your prompt\"'"
|
|
```
|
|
|
|
### IMPORTANT — do NOT waste tokens rediscovering these:
|
|
- **Always use `bash -lc`** — agent binaries are in `~/.local/bin/` which is only on PATH in login shells
|
|
- **Claude uses `-p`** for non-interactive output (NOT `--print`, NOT `--headless`)
|
|
- **Add `--dangerously-skip-permissions`** to skip approval prompts on child VMs
|
|
- **Never try `which claude` or `find`** to locate binaries — they are always at `~/.local/bin/<agent>`
|
|
- **Never create non-root users** to work around permission issues — just use `-p`
|
|
|
|
## Managing Children
|
|
|
|
- `spawn list --json` — see running children
|
|
- `spawn delete --name <name> --yes` — tear down a child VM (headless)
|
|
- `spawn tree` — see the full spawn tree
|
|
|
|
## Context
|
|
|
|
- You are running inside a spawned VM (SPAWN_DEPTH is set)
|
|
- Cloud credentials are pre-configured — no auth prompts
|
|
- OpenRouter billing is shared with the parent
|
|
|