mirror of
https://github.com/OpenRouterTeam/spawn.git
synced 2026-04-28 03:49:31 +00:00
fix: scope local warning to openclaw-only + improve spawn skill docs (#3074)
- Revert local security warning to openclaw-only (was blocking all agents) - Update spawn skill to document how to run prompts on child VMs: - Always use `bash -lc` (binaries in ~/.local/bin/ need login shell) - Claude uses `-p` not `--print` or `--headless` - Add `--dangerously-skip-permissions` for unattended child VMs - Don't waste tokens with `which`/`find` or creating non-root users - Sync all on-disk skill files with embedded version Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
a29d0d8a15
commit
ccd86005ce
11 changed files with 187 additions and 92 deletions
|
|
@ -2,27 +2,40 @@
|
|||
|
||||
You have the `spawn` CLI installed. Use it to provision cloud VMs with AI agents.
|
||||
|
||||
## Usage
|
||||
## Provision a Child VM
|
||||
|
||||
```bash
|
||||
spawn <agent> <cloud> --headless --output json --prompt "task description"
|
||||
```
|
||||
|
||||
## Agents: claude, codex, openclaw, zeroclaw, opencode, kilocode, hermes, junie
|
||||
## Clouds: hetzner, digitalocean, aws, gcp, sprite
|
||||
|
||||
## Example
|
||||
|
||||
```bash
|
||||
spawn claude hetzner --headless --output json --prompt "Implement the auth module"
|
||||
```
|
||||
**Agents:** claude, codex, openclaw, zeroclaw, 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
|
||||
- `spawn delete --name <name> --yes` — tear down a child VM (headless)
|
||||
- `spawn tree` — see the full spawn tree
|
||||
|
||||
## Context
|
||||
|
|
@ -30,3 +43,4 @@ Returns JSON: `{"status":"success","ip_address":"...","ssh_user":"root","server_
|
|||
- 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
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue