Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Spawn a new OpenClaw agent through conversation. Uses official Docker setup and non-interactive onboarding, carries over API keys, tools, plugins, and skills...
Spawn a new OpenClaw agent through conversation. Uses official Docker setup and non-interactive onboarding, carries over API keys, tools, plugins, and skills...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
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.
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.
Deploy a new OpenClaw agent conversationally. Official install, carry over config from the current agent. User never edits a file.
cat ~/.openclaw/openclaw.json cat ~/.openclaw/.env 2>/dev/null env | grep -iE 'API_KEY|TOKEN' ls ~/.openclaw/extensions/ ls <workspace>/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.
"Where should I deploy it?" โ Docker (local or remote SSH) or bare metal? "Name?" โ for container. Generate one if they don't care. "Anything special?" โ purpose, constraints. Optional. Don't ask about keys, plugins, skills, ports, or config. Carry everything over, use defaults.
After gathering answers, present the full plan before doing anything. Show everything in one summary: Here's the plan: ๐ฆ Deploy: Docker on <target> ๐ Name: <agent-name> ๐ Port: <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.
git clone https://github.com/openclaw/openclaw.git <agent-name> cd <agent-name> 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-<agent-name> export OPENCLAW_WORKSPACE_DIR=~/.openclaw-<agent-name>/workspace export OPENCLAW_GATEWAY_PORT=<unused port, default 18789> 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-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 docker compose run --rm openclaw-cli onboard --non-interactive --accept-risk \ --mode local \ --auth-choice <detected> \ --<provider>-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.
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-onboard openclaw onboard --non-interactive --accept-risk \ --mode local \ --auth-choice <detected> \ --<provider>-api-key "$API_KEY" \ --gateway-port 18789 \ --gateway-bind lan \ --install-daemon \ --daemon-runtime node \ --skip-skills
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 "<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 "<key>" Plugins (from plugins.installs in current config): $OC plugins install <npm-spec> # Repeat for each plugin Skills (copy workspace skills): # Docker docker cp <source-workspace>/skills/ <container>:/home/node/.openclaw/workspace/skills/ # Bare metal cp -r <source-workspace>/skills/ ~/.openclaw/workspace/skills/ Restart: docker compose restart openclaw-gateway # Docker openclaw gateway restart # bare metal
Read the gateway token: grep -A1 '"token"' $OPENCLAW_CONFIG_DIR/openclaw.json Tell the user: URL: http://<host>:<port>/ Token: (from config โ onboard auto-generates one) "Say hello โ it'll bootstrap itself."
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.
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.