OpenClaw Installation Skill
OpenClaw is a personal AI assistant that runs on your own devices, connecting to messaging channels like WhatsApp, Telegram, Slack, Discord, Signal, iMessage, and more.
Prerequisites
- •Node.js ≥22 (required)
- •pnpm (recommended) or npm
- •Git (for source builds)
Verify Node version:
node --version # Must be v22.x or higher
Installation Methods
Method 1: NPM Global Install (Recommended)
npm install -g openclaw@latest # or with pnpm: pnpm add -g openclaw@latest # Run onboarding wizard openclaw onboard --install-daemon
The wizard installs the Gateway daemon (launchd on macOS, systemd on Linux) so it stays running.
Method 2: Build from Source
git clone https://github.com/openclaw/openclaw.git cd openclaw pnpm install pnpm ui:build # Auto-installs UI deps on first run pnpm build pnpm openclaw onboard --install-daemon # Dev loop (auto-reload on TS changes) pnpm gateway:watch
Method 3: Docker
See references/docker-setup.md for containerized deployment.
Method 4: Nix
# Using nix-clawdbot nix flake show github:openclaw/nix-clawdbot
Quick Start Commands
# Start gateway openclaw gateway --port 18789 --verbose # Send a message openclaw message send --to +1234567890 --message "Hello from OpenClaw" # Talk to the assistant openclaw agent --message "Ship checklist" --thinking high # Health check openclaw doctor # Update OpenClaw openclaw update --channel stable
Configuration
Minimal config at ~/.openclaw/openclaw.json:
{
"agent": {
"model": "anthropic/claude-opus-4-5"
}
}
For full configuration options, see references/configuration.md.
Channel Setup
Each channel requires specific configuration. Quick overview:
| Channel | Key Config | Auth Method |
|---|---|---|
channels.whatsapp.allowFrom | QR code via openclaw channels login | |
| Telegram | TELEGRAM_BOT_TOKEN or channels.telegram.botToken | BotFather token |
| Slack | SLACK_BOT_TOKEN + SLACK_APP_TOKEN | Slack App OAuth |
| Discord | DISCORD_BOT_TOKEN or channels.discord.token | Discord Bot token |
| Signal | channels.signal section | signal-cli setup |
| iMessage | macOS only, Messages signed in | Native integration |
For detailed channel setup, see references/channels.md.
Security Defaults
OpenClaw treats inbound DMs as untrusted input by default:
- •DM pairing (
dmPolicy="pairing"): Unknown senders receive a pairing code - •Approve senders:
openclaw pairing approve <channel> <code> - •For open access: set
dmPolicy="open"with"*"in allowlist
Run openclaw doctor to check for risky configurations.
Directory Structure
~/.openclaw/ ├── openclaw.json # Main configuration ├── credentials/ # Channel credentials (auto-generated) ├── workspace/ # Agent workspace │ ├── AGENTS.md # Injected prompt │ ├── SOUL.md # Personality config │ ├── TOOLS.md # Tool definitions │ └── skills/ # Local skills └── state/ # Runtime state
Skills Management
# Install from ClawdHub clawhub install <skill-name> # Sync all skills clawhub sync --all # List installed skills openclaw skills list
Skills load from:
- •
<workspace>/skills(highest priority) - •
~/.openclaw/skills - •Bundled skills (lowest priority)
Troubleshooting
Common Issues
Node version too old:
# Install Node 22 via nvm nvm install 22 nvm use 22
Gateway won't start:
openclaw doctor # Diagnose issues openclaw gateway --verbose # See detailed logs
Channel connection fails:
openclaw channels status openclaw channels login # Re-authenticate
Permission denied (macOS):
- •Grant Terminal/IDE full disk access in System Preferences
- •For Voice Wake: grant microphone access
Logs
# View gateway logs tail -f ~/.openclaw/logs/gateway.log # Debug mode openclaw gateway --verbose --debug
Development Channels
- •stable: Tagged releases (
vYYYY.M.D), npm dist-taglatest - •beta: Prerelease (
vYYYY.M.D-beta.N), npm dist-tagbeta - •dev: Moving head of
main, npm dist-tagdev
Switch channels:
openclaw update --channel stable|beta|dev
Useful Links
- •Docs: https://docs.openclaw.ai
- •GitHub: https://github.com/openclaw/openclaw
- •ClawdHub (Skills): https://clawhub.com
- •Discord: https://discord.gg/clawd