Skip to content

Deploy Your AI Sales Agent: OpenClaw Install Guide

Install and deploy an AI sales agent with OpenClaw 2026.10.x: system specs, exact commands, SOUL.md config, verify steps, and real install fixes.

6 min readIntermediate

Can you stand up a self-hosted AI sales agent tonight without a $40k SDR contract? Yes – if OpenClaw is the runtime, not another chatbot demo.

OpenClaw is an open-source local AI gateway. Install once, point it at Claude, OpenAI, or a local model, drop a sales-shaped SOUL.md in the workspace, talk from Slack or Telegram. As of mid-October 2026 the stable line is 2026.10.x. Install @latest, then confirm with openclaw --version (GitHub has tagged builds such as 2026.10.4 on the releases page).

What you’re deploying (and what you’re not)

This isn’t Salesforce Agentforce or a hosted AI SDR. You’re deploying the control plane that hosts your sales agent: Gateway on your machine or VPS, memory on disk, channels you already use. Enterprise SDRs still win on dialers and data contracts. OpenClaw wins when agent files, API keys, and deal notes stay under your roof.

I burned an evening putting the persona under the wrong folder and watching a healthy Gateway answer like a generic assistant. That path mistake is why this guide starts with install facts, not ICP philosophy.

System requirements before you touch npm

From the official install page:

Piece Minimum Recommended
Node.js 24.16+ or 26.1+ Node 26
OS macOS / Linux / Windows Linux or macOS for always-on Gateway
pnpm Only for source builds –
GPU None (cloud LLM) Only if you attach local Ollama models

~1 GB RAM / 1 vCPU / ~5 GB disk. That’s the community floor for a personal cloud-LLM agent – not a hard number on the main install page. 2 GB+ once skills or a browser sidecar join. Local models? Budget more. Source: community hardware notes on OpenClaw Launch.

Also grab an Anthropic or OpenAI API key (or another supported provider). Slack bot token or Telegram bot if you want sales alerts outside the Control UI.

Official download sources

Install OpenClaw for your AI sales agent

One-liner first. Detects OS, provisions a supported Node if needed, installs the CLI, starts onboarding.

# macOS / Linux / WSL2
curl -fsSL https://openclaw.ai/install.sh | bash

Already manage Node yourself? Global package on Node 24.16+ or 26.1+. npm 12 or npm 11.16+:

npm install -g openclaw@latest --allow-scripts=openclaw
openclaw onboard --install-daemon

npm 11.15 and earlier: drop --allow-scripts=openclaw. pnpm: pnpm add -g --allow-build=openclaw openclaw@latest, then the same onboard command. Details match the install docs above.

Docker sketch for a VPS:

docker run -d --name openclaw --restart unless-stopped 
 -v ~/.openclaw:/home/node/.openclaw 
 -p 127.0.0.1:18789:18789 
 ghcr.io/openclaw/openclaw:latest

Bind loopback first. Public expose only behind auth/TLS you actually understand.

First-time configuration: make it a sales agent

Onboarding wires the model key, workspace, and Gateway daemon (LaunchAgent on macOS, systemd user unit on Linux, Scheduled Task on Windows). Wizard done? Shape the agent.

Find the workspace the Gateway actually uses:

openclaw config get agents.defaults.workspace
# usually ~/.openclaw/workspace

Create SOUL.mdthere – not under ~/.openclaw/agents/main/. State lives in the agents tree; persona lives in the workspace. Community threads still hit this weekly (bootstrap files load from workspace; openclaw setup reseeds missing ones).

# ~/.openclaw/workspace/SOUL.md
You are a sales operations agent for [Company].

Job: watch pipeline health, draft follow-ups, never auto-send email.

Rules:
- Prioritize by deal value × close probability
- Flag any deal with no activity for 7+ days
- Drafts only - human approves every outbound message
- Bullet reports, no fluff
- Refuse to invent CRM facts; say what's missing

Pro tip: After editing bootstrap files, run openclaw gateway restart. Persona injects at session start. Still getting “I’m just an AI assistant”? Run openclaw setup, then confirm the workspace path the service sees – CLI config and the LaunchAgent/systemd unit can point at different state dirs. Fix with openclaw gateway install --force when status shows a config (CLI) vs config (service) split.

Optional: a MEMORY.md with ICP notes, stage SLAs, and key accounts so the first scan isn’t empty. Connect Slack/Telegram in the Control UI or channel docs when you want channel alerts.

Verify the install works

openclaw --version # expect 2026.10.x from @latest
openclaw doctor # no blocking errors
openclaw gateway status # Runtime: running
openclaw dashboard # Control UI

Ask in the dashboard (or linked channel): “Who are you and what’s your job on this sales team?” You want the SOUL.md role back – not a stock greeting. Then: “Draft a follow-up for a $40k deal silent 12 days – do not send.”

Status weird? Climb the ladder: openclaw status → gateway status → logs --follow → doctor → channels status --probe.

Common install errors and fixes

  1. EBADENGINE / node-runtime-preflight – Node below 24.16 or 26.1 (22/23 get rejected). Install a supported runtime, reinstall the CLI, rewrite the service with openclaw gateway install --force.
  2. openclaw: command not found – global npm bin not on PATH. Check npm prefix -g and fix PATH.
  3. EADDRINUSE :::18789 or “another gateway instance already listening” – leftover after a partial crash/upgrade. lsof -i :18789 (Windows: netstat), kill the PID, or change gateway.port; openclaw doctor --repair helps on some installs. Default listen address is 127.0.0.1:18789.
  4. Lifecycle scripts blocked on npm 12 – reinstall with --allow-scripts=openclaw.
  5. Generic personality after a “perfect” install – almost always the workspace/SOUL placement or CLI-vs-service split covered in the config section. Align path, restart Gateway; don’t keep editing files under agents/main/.

Upgrade from an older OpenClaw / uninstall

Day-to-day: openclaw update (preferred) or stop Gateway → npm install -g openclaw@latest --allow-scripts=openclaw → openclaw doctor --fix → start Gateway.

The catch is pre-July 2026 installs. Don’t leap to latest. Official updating docs: stop Gateway, install [email protected], run doctor --fix so legacy SQLite/plugin/channel state imports, then@latest and doctor again. Skip the bridge and you get half-migrated state. Walkthrough: updating docs.

Full cleanup:

openclaw uninstall --all --yes --non-interactive
npm rm -g openclaw
# if anything remains:
rm -rf "${OPENCLAW_STATE_DIR:-$HOME/.openclaw}"

Plain openclaw uninstall is service-only. Use --all when you mean wipe state and workspace. Steps live on the uninstall docs.

FAQ

Is OpenClaw itself an AI sales agent product?

No. It’s the local agent runtime. Sales behavior comes from workspace files, tools/skills, and the model you attach.

Docker or native install for a sales desk VPS?

Laptop: native CLI + daemon. Shared VPS: Docker/Podman, state volume mounted, Gateway on 127.0.0.1 (SSH tunnel or reverse proxy) is safer on a shared box. Same onboard/SOUL steps either way – keep the volume so persona and memory survive image pulls.

Will the agent email prospects by itself on day one?

Only if you hand it send credentials and strip human-approval rules. People assume “sales agent” means auto-outbound on first boot. It doesn’t. A sane first SOUL.md forces drafts-only; auto-send is a deliverability and compliance choice you make later, with CRM write-back and quiet hours, after you’ve watched a week of drafts.

Run the installer. Finish openclaw onboard --install-daemon. Write ~/.openclaw/workspace/SOUL.md. Ask the dashboard who it is. Match your sales role? You’re deployed.