🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Agent Spawner

by @austineral

Spawn a new OpenClaw agent through conversation. Uses official Docker setup and non-interactive onboarding, carries over API keys, tools, plugins, and skills...

Versionv0.1.0
Downloads1,547
Installs3
Stars⭐ 1
TERMINAL
clawhub install agent-spawner

πŸ“– About This Skill


name: agent-spawner description: Spawn a new OpenClaw agent through conversation. Uses official Docker setup and non-interactive onboarding, carries over API keys, tools, plugins, and skills from the current agent. User answers 2-3 questions. Use when the user wants to create, spin up, deploy, or provision a new OpenClaw agent.

Agent Spawner

Deploy a new OpenClaw agent conversationally. Official install, carry over config from the current agent. User never edits a file.

1. Read Current Config (silent)

cat ~/.openclaw/openclaw.json
cat ~/.openclaw/.env 2>/dev/null
env | grep -iE 'API_KEY|TOKEN'
ls ~/.openclaw/extensions/
ls /skills/

Identify:

  • Provider: check auth.profiles in config β€” could be Anthropic, OpenAI, Gemini, custom, etc.
  • API key: from env var or config (e.g. ANTHROPIC_API_KEY, GEMINI_API_KEY, OPENAI_API_KEY)
  • Model: from agents.defaults.model
  • Tool keys: anything in tools.* (search APIs, etc.)
  • Plugins: plugins.installs β€” names and npm specs
  • Skills: run openclaw skills list to see what's bundled vs workspace-only. Only carry over non-bundled skills.
  • 2. Ask

    1. "Where should I deploy it?" β€” Docker (local or remote SSH) or bare metal? 2. "Name?" β€” for container. Generate one if they don't care. 3. "Anything special?" β€” purpose, constraints. Optional.

    Don't ask about keys, plugins, skills, ports, or config. Carry everything over, use defaults.

    3. Confirm Plan

    After gathering answers, present the full plan before doing anything. Show everything in one summary:

    Here's the plan:

    πŸ“¦ Deploy: Docker on πŸ“› Name: 🌐 Port:

    Carrying over from current agent: βœ… Provider: Anthropic (API key) βœ… Model: anthropic/claude-sonnet-4-20250514 βœ… Brave Search API key βœ… Plugins: openclaw-agent-reach βœ… Skills: agent-spawner, weather βœ… Heartbeat: 30m

    The new agent will bootstrap its own identity on first message.

    Good to go?

    Only list items that actually exist. Wait for explicit confirmation before proceeding. If the user wants changes, adjust and re-confirm.

    4. Deploy

    Docker

    git clone https://github.com/openclaw/openclaw.git 
    cd 
    

    Set env and run non-interactive onboard. Match the provider detected in step 1:

    export OPENCLAW_IMAGE=alpine/openclaw:latest
    export OPENCLAW_CONFIG_DIR=~/.openclaw-
    export OPENCLAW_WORKSPACE_DIR=~/.openclaw-/workspace
    export OPENCLAW_GATEWAY_PORT=
    export OPENCLAW_GATEWAY_BIND=lan

    mkdir -p $OPENCLAW_CONFIG_DIR/workspace

    Onboard flags vary by provider. Use the matching --auth-choice and key flag:

    | Provider | --auth-choice | Key flag | |----------|--------------|----------| | Anthropic | apiKey | --anthropic-api-key | | Gemini | gemini-api-key | --gemini-api-key | | OpenAI | apiKey | (set OPENAI_API_KEY env) | | Custom | custom-api-key | --custom-api-key + --custom-base-url + --custom-model-id |

    docker compose run --rm openclaw-cli onboard --non-interactive --accept-risk \
      --mode local \
      --auth-choice  \
      ---api-key "$API_KEY" \
      --gateway-port 18789 \
      --gateway-bind lan \
      --skip-skills

    docker compose up -d openclaw-gateway

    Official compose uses bind mounts β€” host user owns files, no permission issues.

    Onboard error about gateway connection is expected (not running yet). Config is written.

    Bare metal

    curl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-onboard

    openclaw onboard --non-interactive --accept-risk \ --mode local \ --auth-choice \ ---api-key "$API_KEY" \ --gateway-port 18789 \ --gateway-bind lan \ --install-daemon \ --daemon-runtime node \ --skip-skills

    5. Patch Running Agent

    CLI alias:

  • Docker: OC="docker compose exec openclaw-gateway node /app/openclaw.mjs"
  • Bare metal: OC="openclaw"
  • Config (only patch what the current agent actually has):

    $OC config set agents.defaults.model ""
    $OC config set agents.defaults.heartbeat.every "30m"
    

    Tool keys β€” only if they exist in current config

    $OC config set tools.web.search.apiKey ""

    Plugins (from plugins.installs in current config):

    $OC plugins install 
    

    Repeat for each plugin

    Skills (copy workspace skills):

    # Docker
    docker cp /skills/ :/home/node/.openclaw/workspace/skills/
    

    Bare metal

    cp -r /skills/ ~/.openclaw/workspace/skills/

    Restart:

    docker compose restart openclaw-gateway  # Docker
    openclaw gateway restart                 # bare metal
    

    6. Hand Off

    Read the gateway token:

    grep -A1 '"token"' $OPENCLAW_CONFIG_DIR/openclaw.json
    

    Tell the user:

  • URL: http://:/
  • Token: (from config β€” onboard auto-generates one)
  • "Say hello β€” it'll bootstrap itself."
  • Notes

  • openclaw not in PATH inside Docker. Use node /app/openclaw.mjs.
  • --accept-risk required for non-interactive onboard.
  • alpine/openclaw:latest β€” pre-built official image.
  • Don't use named Docker volumes β€” root ownership issues. Official compose uses bind mounts.
  • Multiple agents on same host: use different OPENCLAW_CONFIG_DIR and OPENCLAW_GATEWAY_PORT.
  • Plugins and skills persist in ~/.openclaw/ volume (extensions/ and workspace/skills/).
  • SSH keys, git config, apt packages are ephemeral β€” not in the volume, by design.
  • πŸ“‹ Tips & Best Practices

  • openclaw not in PATH inside Docker. Use node /app/openclaw.mjs.
  • --accept-risk required for non-interactive onboard.
  • alpine/openclaw:latest β€” pre-built official image.
  • Don't use named Docker volumes β€” root ownership issues. Official compose uses bind mounts.
  • Multiple agents on same host: use different OPENCLAW_CONFIG_DIR and OPENCLAW_GATEWAY_PORT.
  • Plugins and skills persist in ~/.openclaw/ volume (extensions/ and workspace/skills/).
  • SSH keys, git config, apt packages are ephemeral β€” not in the volume, by design.