OpenClaw: Self-Host Your Own Personal AI Assistant Across 22+ Messaging Channels
OpenClaw: Self-Host Your Own Personal AI Assistant Across 22+ Messaging Channels 🦞
What is it? OpenClaw is an open-source, self-hosted personal AI assistant that runs on your own devices. It connects to 22+ messaging channels (WhatsApp, Telegram, Slack, Discord, Signal, iMessage, and more) through a single local Gateway daemon, and responds via the LLM provider of your choice. It supports voice wake, live canvas, multi-agent routing, and extensible skills.
Why it's trending: OpenClaw hit 382,000+ GitHub stars because it solves a real problem: there is no single, self-hosted AI assistant that works across all your messaging apps. Instead of running a separate bot for each channel, OpenClaw provides one Gateway that routes every conversation through a single agent runtime. It's TypeScript, MIT-licensed, and works on macOS, Linux, and Windows.
📋 Prerequisites
Before we start, make sure you have:
- Node.js 22.19+ (Node 24 recommended)
- An API key from an LLM provider (OpenAI, Anthropic, Google, etc.)
- A Linux/macOS server or local machine to run the Gateway
- Basic familiarity with terminal and npm
🧠 Architecture Overview
OpenClaw's architecture is built around a central Gateway daemon that acts as the control plane for all messaging surfaces, LLM provider connections, and device nodes.
-
Gateway (daemon) — A single long-lived WebSocket server on port
18789that owns all messaging surfaces and provider connections. It validates frames against JSON Schema and emits events (agent, chat, presence, health, cron). -
Clients — macOS app, CLI, and Web Admin (Control UI) each connect to the Gateway over WebSocket. They send requests (health, status, send, agent) and subscribe to events.
-
Nodes — iOS, Android, and headless devices connect with
role: node, providing device capabilities like canvas, camera, screen recording, and location. -
LLM Providers — OpenAI, Anthropic, Google, Ollama, and custom endpoints are routed through the Provider Router with configurable failover.
-
Messaging Channels — 22+ connectors (WhatsApp via Baileys, Telegram via grammY, Slack, Discord, Signal, iMessage, IRC, Matrix, and more) bridge conversations to the agent runtime.
-
Workspace —
~/.openclaw/workspace/contains bootstrap files (AGENTS.md, SOUL.md, TOOLS.md, USER.md) that are injected into the system prompt on each session turn. -
Live Canvas — Agent-editable HTML/CSS/JS hosted at
/__openclaw__/canvas/on the Gateway HTTP server.
🚀 Step-by-Step Setup
Step 1: Install OpenClaw
The recommended install method uses the install script:
curl -fsSL https://openclaw.ai/install.sh | bash
Alternatively, install via npm:
npm install -g openclaw@latest
Step 2: Run Onboarding
openclaw onboard --install-daemon
The wizard walks you through:
- Choosing a model provider
- Setting an API key
- Configuring the Gateway
- Installing the daemon (systemd/launchd)
The daemon ensures the Gateway stays running in the background and auto-restarts on failure.
Step 3: Verify the Gateway
openclaw gateway status
You should see the Gateway listening on 127.0.0.1:18789.
Step 4: Open the Dashboard
openclaw dashboard
This opens the Control UI in your browser. From here you can chat with your assistant, manage sessions, and configure settings.
Step 5: Send Your First Message
openclaw agent --message "Hello! What can you help me with today?"
Or type directly in the Control UI chat.
📱 Connecting Messaging Channels
OpenClaw's superpower is connecting to the channels you already use. Here are the fastest setups:
Telegram (easiest)
- Create a bot via @BotFather on Telegram
- Get your bot token
- Add it to your config:
openclaw configure channels.telegram.botToken YOUR_TOKEN
OpenClaw uses Baileys (a WhatsApp Web library) to connect your WhatsApp account:
openclaw configure channels.whatsapp.enabled true
Discord
openclaw configure channels.discord.enabled true
openclaw configure channels.discord.botToken YOUR_TOKEN
Security Note
By default, unknown senders receive a pairing code before the bot processes their messages. Approve with:
openclaw pairing approve <channel> <code>
🧩 Skills and Customization
OpenClaw supports skills — reusable prompt modules that extend the agent's capabilities:
- Workspace skills:
~/.openclaw/workspace/skills/<skill>/SKILL.md - Bundled skills: shipped with the install
- ClawHub: community skill registry at clawhub.ai
The agent reads these bootstrap files from the workspace:
| File | Purpose |
|---|---|
AGENTS.md |
Operating instructions and "memory" |
SOUL.md |
Persona, boundaries, tone |
TOOLS.md |
Tool usage conventions |
USER.md |
Your profile and preferred address |
MEMORY.md |
Long-term memory (if present) |
📦 Docker Deployment
OpenClaw also runs in Docker for server deployments:
docker run -d \
--name openclaw \
-p 18789:18789 \
-v ~/.openclaw:/root/.openclaw \
openclaw/openclaw:latest
🛡️ Security Model
- DM pairing is enabled by default — unknown senders receive a pairing code
- Sandbox mode isolates non-main sessions in Docker containers
- Workspace permissions restrict the agent's file access
- Run
openclaw doctorto check for misconfigured DM policies
✅ Verification Checklist
- Gateway is running:
openclaw gateway status - Agent responds to messages in the Control UI
- Telegram/Discord channels are connected and responding
- Skills from ClawHub load correctly
- Gateway restarts automatically after a system reboot
📚 Resources
- GitHub: github.com/openclaw/openclaw
- Website: openclaw.ai
- Documentation: docs.openclaw.ai
- Getting Started: docs.openclaw.ai/start/getting-started
- Architecture Docs: docs.openclaw.ai/concepts/architecture
- Skill Registry (ClawHub): clawhub.ai
- Discord Community: discord.gg/clawd
- Docker Images: hub.docker.com/r/openclaw/openclaw
- License: MIT