{
  "schemaVersion": "1.0",
  "item": {
    "slug": "agent-spawner",
    "name": "Agent Spawner",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/AustinEral/agent-spawner",
    "canonicalUrl": "https://clawhub.ai/AustinEral/agent-spawner",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/agent-spawner",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=agent-spawner",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "agent-spawner",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-29T13:47:40.838Z",
      "expiresAt": "2026-05-06T13:47:40.838Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=agent-spawner",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=agent-spawner",
        "contentDisposition": "attachment; filename=\"agent-spawner-0.1.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "agent-spawner"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/agent-spawner"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/agent-spawner",
    "agentPageUrl": "https://openagent3.xyz/skills/agent-spawner/agent",
    "manifestUrl": "https://openagent3.xyz/skills/agent-spawner/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/agent-spawner/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Agent Spawner",
        "body": "Deploy a new OpenClaw agent conversationally. Official install, carry over config from the current agent. User never edits a file."
      },
      {
        "title": "1. Read Current Config (silent)",
        "body": "cat ~/.openclaw/openclaw.json\ncat ~/.openclaw/.env 2>/dev/null\nenv | grep -iE 'API_KEY|TOKEN'\nls ~/.openclaw/extensions/\nls <workspace>/skills/\n\nIdentify:\n\nProvider: check auth.profiles in config — could be Anthropic, OpenAI, Gemini, custom, etc.\nAPI key: from env var or config (e.g. ANTHROPIC_API_KEY, GEMINI_API_KEY, OPENAI_API_KEY)\nModel: from agents.defaults.model\nTool keys: anything in tools.* (search APIs, etc.)\nPlugins: plugins.installs — names and npm specs\nSkills: run openclaw skills list to see what's bundled vs workspace-only. Only carry over non-bundled skills."
      },
      {
        "title": "2. Ask",
        "body": "\"Where should I deploy it?\" — Docker (local or remote SSH) or bare metal?\n\"Name?\" — for container. Generate one if they don't care.\n\"Anything special?\" — purpose, constraints. Optional.\n\nDon't ask about keys, plugins, skills, ports, or config. Carry everything over, use defaults."
      },
      {
        "title": "3. Confirm Plan",
        "body": "After gathering answers, present the full plan before doing anything. Show everything in one summary:\n\nHere's the plan:\n\n📦 Deploy: Docker on <target>\n📛 Name: <agent-name>\n🌐 Port: <port>\n\nCarrying over from current agent:\n  ✅ Provider: Anthropic (API key)\n  ✅ Model: anthropic/claude-sonnet-4-20250514\n  ✅ Brave Search API key\n  ✅ Plugins: openclaw-agent-reach\n  ✅ Skills: agent-spawner, weather\n  ✅ Heartbeat: 30m\n\nThe new agent will bootstrap its own identity on first message.\n\nGood to go?\n\nOnly list items that actually exist. Wait for explicit confirmation before proceeding. If the user wants changes, adjust and re-confirm."
      },
      {
        "title": "Docker",
        "body": "git clone https://github.com/openclaw/openclaw.git <agent-name>\ncd <agent-name>\n\nSet env and run non-interactive onboard. Match the provider detected in step 1:\n\nexport OPENCLAW_IMAGE=alpine/openclaw:latest\nexport OPENCLAW_CONFIG_DIR=~/.openclaw-<agent-name>\nexport OPENCLAW_WORKSPACE_DIR=~/.openclaw-<agent-name>/workspace\nexport OPENCLAW_GATEWAY_PORT=<unused port, default 18789>\nexport OPENCLAW_GATEWAY_BIND=lan\n\nmkdir -p $OPENCLAW_CONFIG_DIR/workspace\n\nOnboard flags vary by provider. Use the matching --auth-choice and key flag:\n\nProvider--auth-choiceKey flagAnthropicapiKey--anthropic-api-keyGeminigemini-api-key--gemini-api-keyOpenAIapiKey(set OPENAI_API_KEY env)Customcustom-api-key--custom-api-key + --custom-base-url + --custom-model-id\n\ndocker compose run --rm openclaw-cli onboard --non-interactive --accept-risk \\\n  --mode local \\\n  --auth-choice <detected> \\\n  --<provider>-api-key \"$API_KEY\" \\\n  --gateway-port 18789 \\\n  --gateway-bind lan \\\n  --skip-skills\n\ndocker compose up -d openclaw-gateway\n\nOfficial compose uses bind mounts — host user owns files, no permission issues.\n\nOnboard error about gateway connection is expected (not running yet). Config is written."
      },
      {
        "title": "Bare metal",
        "body": "curl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-onboard\n\nopenclaw onboard --non-interactive --accept-risk \\\n  --mode local \\\n  --auth-choice <detected> \\\n  --<provider>-api-key \"$API_KEY\" \\\n  --gateway-port 18789 \\\n  --gateway-bind lan \\\n  --install-daemon \\\n  --daemon-runtime node \\\n  --skip-skills"
      },
      {
        "title": "5. Patch Running Agent",
        "body": "CLI alias:\n\nDocker: OC=\"docker compose exec openclaw-gateway node /app/openclaw.mjs\"\nBare metal: OC=\"openclaw\"\n\nConfig (only patch what the current agent actually has):\n\n$OC config set agents.defaults.model \"<model>\"\n$OC config set agents.defaults.heartbeat.every \"30m\"\n# Tool keys — only if they exist in current config\n$OC config set tools.web.search.apiKey \"<key>\"\n\nPlugins (from plugins.installs in current config):\n\n$OC plugins install <npm-spec>\n# Repeat for each plugin\n\nSkills (copy workspace skills):\n\n# Docker\ndocker cp <source-workspace>/skills/ <container>:/home/node/.openclaw/workspace/skills/\n# Bare metal\ncp -r <source-workspace>/skills/ ~/.openclaw/workspace/skills/\n\nRestart:\n\ndocker compose restart openclaw-gateway  # Docker\nopenclaw gateway restart                 # bare metal"
      },
      {
        "title": "6. Hand Off",
        "body": "Read the gateway token:\n\ngrep -A1 '\"token\"' $OPENCLAW_CONFIG_DIR/openclaw.json\n\nTell the user:\n\nURL: http://<host>:<port>/\nToken: (from config — onboard auto-generates one)\n\"Say hello — it'll bootstrap itself.\""
      },
      {
        "title": "Notes",
        "body": "openclaw not in PATH inside Docker. Use node /app/openclaw.mjs.\n--accept-risk required for non-interactive onboard.\nalpine/openclaw:latest — pre-built official image.\nDon't use named Docker volumes — root ownership issues. Official compose uses bind mounts.\nMultiple agents on same host: use different OPENCLAW_CONFIG_DIR and OPENCLAW_GATEWAY_PORT.\nPlugins and skills persist in ~/.openclaw/ volume (extensions/ and workspace/skills/).\nSSH keys, git config, apt packages are ephemeral — not in the volume, by design."
      }
    ],
    "body": "Agent Spawner\n\nDeploy a new OpenClaw agent conversationally. Official install, carry over config from the current agent. User never edits a file.\n\n1. Read Current Config (silent)\ncat ~/.openclaw/openclaw.json\ncat ~/.openclaw/.env 2>/dev/null\nenv | grep -iE 'API_KEY|TOKEN'\nls ~/.openclaw/extensions/\nls <workspace>/skills/\n\n\nIdentify:\n\nProvider: check auth.profiles in config — could be Anthropic, OpenAI, Gemini, custom, etc.\nAPI key: from env var or config (e.g. ANTHROPIC_API_KEY, GEMINI_API_KEY, OPENAI_API_KEY)\nModel: from agents.defaults.model\nTool keys: anything in tools.* (search APIs, etc.)\nPlugins: plugins.installs — names and npm specs\nSkills: run openclaw skills list to see what's bundled vs workspace-only. Only carry over non-bundled skills.\n2. Ask\n\"Where should I deploy it?\" — Docker (local or remote SSH) or bare metal?\n\"Name?\" — for container. Generate one if they don't care.\n\"Anything special?\" — purpose, constraints. Optional.\n\nDon't ask about keys, plugins, skills, ports, or config. Carry everything over, use defaults.\n\n3. Confirm Plan\n\nAfter gathering answers, present the full plan before doing anything. Show everything in one summary:\n\nHere's the plan:\n\n📦 Deploy: Docker on <target>\n📛 Name: <agent-name>\n🌐 Port: <port>\n\nCarrying over from current agent:\n  ✅ Provider: Anthropic (API key)\n  ✅ Model: anthropic/claude-sonnet-4-20250514\n  ✅ Brave Search API key\n  ✅ Plugins: openclaw-agent-reach\n  ✅ Skills: agent-spawner, weather\n  ✅ Heartbeat: 30m\n\nThe new agent will bootstrap its own identity on first message.\n\nGood to go?\n\n\nOnly list items that actually exist. Wait for explicit confirmation before proceeding. If the user wants changes, adjust and re-confirm.\n\n4. Deploy\nDocker\ngit clone https://github.com/openclaw/openclaw.git <agent-name>\ncd <agent-name>\n\n\nSet env and run non-interactive onboard. Match the provider detected in step 1:\n\nexport OPENCLAW_IMAGE=alpine/openclaw:latest\nexport OPENCLAW_CONFIG_DIR=~/.openclaw-<agent-name>\nexport OPENCLAW_WORKSPACE_DIR=~/.openclaw-<agent-name>/workspace\nexport OPENCLAW_GATEWAY_PORT=<unused port, default 18789>\nexport OPENCLAW_GATEWAY_BIND=lan\n\nmkdir -p $OPENCLAW_CONFIG_DIR/workspace\n\n\nOnboard flags vary by provider. Use the matching --auth-choice and key flag:\n\nProvider\t--auth-choice\tKey flag\nAnthropic\tapiKey\t--anthropic-api-key\nGemini\tgemini-api-key\t--gemini-api-key\nOpenAI\tapiKey\t(set OPENAI_API_KEY env)\nCustom\tcustom-api-key\t--custom-api-key + --custom-base-url + --custom-model-id\ndocker compose run --rm openclaw-cli onboard --non-interactive --accept-risk \\\n  --mode local \\\n  --auth-choice <detected> \\\n  --<provider>-api-key \"$API_KEY\" \\\n  --gateway-port 18789 \\\n  --gateway-bind lan \\\n  --skip-skills\n\ndocker compose up -d openclaw-gateway\n\n\nOfficial compose uses bind mounts — host user owns files, no permission issues.\n\nOnboard error about gateway connection is expected (not running yet). Config is written.\n\nBare metal\ncurl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-onboard\n\nopenclaw onboard --non-interactive --accept-risk \\\n  --mode local \\\n  --auth-choice <detected> \\\n  --<provider>-api-key \"$API_KEY\" \\\n  --gateway-port 18789 \\\n  --gateway-bind lan \\\n  --install-daemon \\\n  --daemon-runtime node \\\n  --skip-skills\n\n5. Patch Running Agent\n\nCLI alias:\n\nDocker: OC=\"docker compose exec openclaw-gateway node /app/openclaw.mjs\"\nBare metal: OC=\"openclaw\"\n\nConfig (only patch what the current agent actually has):\n\n$OC config set agents.defaults.model \"<model>\"\n$OC config set agents.defaults.heartbeat.every \"30m\"\n# Tool keys — only if they exist in current config\n$OC config set tools.web.search.apiKey \"<key>\"\n\n\nPlugins (from plugins.installs in current config):\n\n$OC plugins install <npm-spec>\n# Repeat for each plugin\n\n\nSkills (copy workspace skills):\n\n# Docker\ndocker cp <source-workspace>/skills/ <container>:/home/node/.openclaw/workspace/skills/\n# Bare metal\ncp -r <source-workspace>/skills/ ~/.openclaw/workspace/skills/\n\n\nRestart:\n\ndocker compose restart openclaw-gateway  # Docker\nopenclaw gateway restart                 # bare metal\n\n6. Hand Off\n\nRead the gateway token:\n\ngrep -A1 '\"token\"' $OPENCLAW_CONFIG_DIR/openclaw.json\n\n\nTell the user:\n\nURL: http://<host>:<port>/\nToken: (from config — onboard auto-generates one)\n\"Say hello — it'll bootstrap itself.\"\nNotes\nopenclaw not in PATH inside Docker. Use node /app/openclaw.mjs.\n--accept-risk required for non-interactive onboard.\nalpine/openclaw:latest — pre-built official image.\nDon't use named Docker volumes — root ownership issues. Official compose uses bind mounts.\nMultiple agents on same host: use different OPENCLAW_CONFIG_DIR and OPENCLAW_GATEWAY_PORT.\nPlugins and skills persist in ~/.openclaw/ volume (extensions/ and workspace/skills/).\nSSH keys, git config, apt packages are ephemeral — not in the volume, by design."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/AustinEral/agent-spawner",
    "publisherUrl": "https://clawhub.ai/AustinEral/agent-spawner",
    "owner": "AustinEral",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/agent-spawner",
    "downloadUrl": "https://openagent3.xyz/downloads/agent-spawner",
    "agentUrl": "https://openagent3.xyz/skills/agent-spawner/agent",
    "manifestUrl": "https://openagent3.xyz/skills/agent-spawner/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/agent-spawner/agent.md"
  }
}