Set Up OpenClaw as Your Personal AI Agent in 2026
OpenClaw is the open-source AI agent that hit 356,000 GitHub stars in three months. It connects any LLM — Claude, GPT, Kimi K2.5, local models via Ollama — to your messaging apps and runs as a persistent daemon on your machine. No vendor lock-in, no subscription beyond API costs.
This is a practical OpenClaw setup guide. Install it, configure it, connect it to a messaging platform, and have it running in under 15 minutes.
What OpenClaw actually is
OpenClaw is a self-hosted personal AI assistant. It runs on your computer (or a VPS), connects to 23+ messaging platforms — WhatsApp, Telegram, Discord, Slack, Signal, iMessage — and executes tasks using whichever AI model you choose.
The project started as a weekend WhatsApp relay by Peter Steinberger (founder of PSPDFKit) in late 2025. It launched as “Clawdbot” in November 2025, got renamed to “Moltbot” after a trademark complaint from Anthropic, and settled on “OpenClaw” in January 2026. Steinberger joined OpenAI in February 2026, and the project moved to a non-profit foundation to stay independent.
Key facts:
- Open source (MIT license) — inspect, modify, distribute
- Model agnostic — Claude, GPT, Gemini, Kimi K2.5, DeepSeek, Ollama local models
- Persistent — runs as a daemon, always on, not session-based
- MCP support — connects to Model Context Protocol servers for extended capabilities
- Memory system — three tiers: long-term (MEMORY.md), daily notes, and experimental “Dreaming” consolidation
Prerequisites
Before installing:
- Node.js 22.14+ (Node 24 recommended). Check with
node --version. - An API key from at least one provider — Anthropic, OpenAI, Google, or Moonshot.
- A messaging app you want to connect (Telegram is the easiest to start with).
Install OpenClaw
npm install -g openclaw@latest
openclaw onboard --install-daemon
The onboard command walks you through:
- Choosing your AI provider and entering your API key
- Selecting a messaging platform to connect
- Installing the daemon so OpenClaw runs in the background
After setup, verify it is running:
openclaw gateway status
Open the dashboard to see your agent:
openclaw dashboard
That is the entire install. The daemon starts automatically and reconnects after reboots.
Common install issues (and fixes)
“Node version too old” — OpenClaw requires Node 22.14+. If node --version returns anything below that, install Node 24 via nvm (nvm install 24 && nvm use 24) rather than your system’s Node — system Node tends to lag months behind on most Linux distros.
“EACCES permission denied” on npm install -g — npm’s global directory needs your user to own it. Either run npm config set prefix ~/.npm-global and add that to your PATH, or use a Node version manager (nvm/fnm) which avoids the problem entirely. Don’t use sudo — that creates root-owned files in your home that break later updates.
“Daemon failed to start: port 7779 already in use” — something else is bound to OpenClaw’s gateway port. Find the process with lsof -i :7779, kill it if it’s stale, or change OpenClaw’s gateway port in ~/.openclaw/config.yaml. A previous OpenClaw process not fully shut down is the most common cause.
Dashboard won’t open in browser — the dashboard binds to 127.0.0.1 by default for security. If you’re SSH’d into a remote machine, port-forward with ssh -L 7779:localhost:7779 user@host and open http://localhost:7779 in your local browser.
Connect a messaging platform
Telegram is the fastest to set up. You need a Telegram bot token from @BotFather:
- Message @BotFather on Telegram
- Send
/newbotand follow the prompts - Copy the bot token
- Add it to your OpenClaw config
Telegram (recommended starting point)
You need a bot token from @BotFather:
- Message @BotFather on Telegram
- Send
/newbotand follow the prompts - Copy the bot token (format:
123456789:ABCdef...) - Add it to your OpenClaw config under
messaging.telegram.token
Restart the daemon (openclaw daemon restart) and message your bot. The first message should get a response within a few seconds.
WhatsApp (via Baileys, no business API needed)
WhatsApp doesn’t require a paid Business API account — OpenClaw uses the Baileys library to connect to WhatsApp Web. Setup:
- Run
openclaw connect whatsapp - A QR code appears in your terminal
- Open WhatsApp on your phone → Settings → Linked Devices → Link a Device
- Scan the terminal QR code
- OpenClaw connects, your phone shows the new linked device
This is a personal-account connection — messages route through your existing WhatsApp account. Keep your phone occasionally online so the linked session stays valid (WhatsApp may force re-pair if your phone is offline for weeks).
Signal (privacy-focused, uses a dedicated number)
Signal requires a phone number that isn’t already on Signal (you can’t share with an existing account). Common pattern: get a cheap second SIM or VoIP number (Twilio, JustCall, MySudo) and register that number with Signal during OpenClaw setup. After registration, messaging that Signal number talks to your agent.
Signal end-to-end encrypts everything including the messages your agent sees and sends — useful if you want a fully private chat channel between you and your assistant. Trade-off: Signal’s CLI dependency (signal-cli) can be finicky to install on some Linux distros.
For Discord, Slack, iMessage, and the other 20+ platforms — each has a connector in the OpenClaw docs at docs.openclaw.ai.
Once connected, message your bot. OpenClaw receives the message, routes it to your chosen AI model, and sends the response back. It handles conversation history, file attachments, and tool calls automatically.
Add MCP servers
OpenClaw supports Model Context Protocol servers natively. MCP servers give your agent access to external tools — GitHub, Notion, databases, APIs.
MCP server definitions live in your OpenClaw config under mcp.servers. When you install an MCP skill, OpenClaw registers those tools and your agent can call them during conversations.
If you are already using MCP servers with Claude Code, the same servers work with OpenClaw. The protocol is standardized — the server does not care which client connects to it.
A typical mcp.servers block in ~/.openclaw/config.yaml looks like this:
mcp:
servers:
github:
command: npx
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: ghp_xxxxxxxxxxxxx
filesystem:
command: npx
args: ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/Documents"]
postgres:
command: npx
args: ["-y", "@modelcontextprotocol/server-postgres", "postgresql://..."]
Popular MCP servers worth wiring up early:
- filesystem — read/write files in scoped directories
- github — issues, PRs, file operations across repos
- brave-search / tavily — web search
- postgres / sqlite — query your databases directly from chat
- gmail / google-calendar — read/send email, manage events
- slack — post to channels, read history
Browse the full registry at github.com/modelcontextprotocol/servers. Adding a new server is a config edit — no rebuild, just restart the daemon.
Memory: how OpenClaw remembers
OpenClaw has a three-tier memory system, all stored locally on your machine:
- MEMORY.md — Long-term facts and preferences. Loaded at the start of every conversation. Think of it as the agent’s permanent knowledge base.
- memory/YYYY-MM-DD.md — Daily notes. Today’s and yesterday’s files are auto-loaded. Good for tracking tasks, decisions, and context that matters this week but not forever.
- DREAMS.md — Experimental feature introduced in v2026.4.9. Performs “REM backfill” — replays historical daily notes and consolidates important patterns into long-term memory automatically.
All memory stays in ~/.openclaw/workspace. Nothing is cloud-synced by default. You own your data.
This is similar to how I built persistent memory for my Claude Code agent — the same pattern of file-based memory that loads on session start.
Run OpenClaw on a VPS
If you want your agent running 24/7 without keeping your laptop open, deploy to a VPS. Minimum requirements:
- 2 GB RAM (4 GB recommended)
- 10 GB storage
- sudo/root access
The recommended deployment method on Linux is Docker. OpenClaw has official VPS docs at docs.openclaw.ai/vps.
A minimal docker-compose.yml looks like this:
services:
openclaw:
image: openclaw/openclaw:latest
restart: unless-stopped
environment:
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
- TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN}
volumes:
- ./openclaw-data:/root/.openclaw
ports:
- "127.0.0.1:7779:7779" # bind to localhost only
Put secrets in a .env file next to the compose file (never commit it), then docker compose up -d. The openclaw-data volume persists memory, conversation history, and configuration across container restarts.
Cloud providers with one-click or documented guides:
- DigitalOcean — Marketplace droplet with hardened firewall, non-root execution, Docker isolation
- Hostinger — One-click Docker Manager VPS template
- Oracle Cloud — Free tier (4 ARM CPUs, 24 GB RAM, 200 GB storage) usable for $0/month
A basic VPS from Hetzner or DigitalOcean costs under $10/month. OpenClaw itself is free — you only pay for API calls to your model provider.
OpenClaw vs Claude Code
Both are AI agents. They solve different problems.
Claude Code is a purpose-built coding agent. It runs in your terminal, operates on your codebase, and excels at multi-file edits, test writing, and debugging. It only works with Claude models and requires a Claude Pro or Max subscription. Sessions are terminal-bound — close the terminal, the session ends.
OpenClaw is a general-purpose personal assistant. It connects to messaging apps, runs as a persistent daemon, and works with any model. It handles calendar management, email, web browsing, file organization, and conversation across platforms. It is not as deep on coding tasks as Claude Code.
The overlap is growing. Claude Code now has Channels for Telegram/Discord messaging, and OpenClaw’s coding capabilities are improving. But today, the use cases are distinct:
- Need a coding agent? Claude Code.
- Need an always-on personal assistant across messaging apps? OpenClaw.
- Want both? Run both. They do not conflict.
Security: one thing to know
In January 2026, a remote code execution vulnerability (CVE-2026-25253) was disclosed. Over 135,000 OpenClaw instances were found exposed on the public internet without proper firewall configuration.
If you deploy OpenClaw on a VPS:
- Use a firewall. Block all ports except the ones your messaging connector needs.
- Do not expose the gateway to the public internet without authentication.
- Keep OpenClaw updated. The release cadence is near-daily (current version: v2026.4.11). Security patches ship fast.
The DigitalOcean Marketplace droplet is the most security-hardened one-click option — it includes rate-limiting and an authenticated gateway token out of the box.
If you’re rolling your own VPS instead, here’s a minimal Ubuntu firewall (UFW) baseline that closes everything except SSH and the messaging connectors you actually use:
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp # SSH
sudo ufw allow 443/tcp # HTTPS out (already covered by default, explicit for clarity)
sudo ufw enable
sudo ufw status verbose
Notice port 7779 (the OpenClaw gateway) is not exposed publicly. Messaging connectors (Telegram, WhatsApp) use outbound connections only — they pull updates rather than receiving inbound webhooks, so no inbound port is needed. The dashboard binds to 127.0.0.1 and is reached via SSH port-forwarding.
If you opted for an external webhook-based connector (Slack with public webhooks, custom integrations), allow only that specific port and put it behind a reverse proxy with auth (Caddy or nginx with basic-auth at minimum).
FAQ
Is OpenClaw free?
The software is free and open source (MIT license). You pay only for API calls to your model provider. Running Kimi K2.5 or local Ollama models keeps costs near zero. Claude and GPT API costs vary by usage.
Can I run OpenClaw with local models?
Yes. Connect Ollama as your model provider and run models like Llama, Mistral, or Qwen locally. No API costs, but you need a machine with enough GPU/CPU to run inference.
Does OpenClaw support MCP servers like Claude Code?
Yes. MCP is natively supported. Server definitions go in your config file, and the agent can call MCP tools during conversations. The same MCP servers that work with Claude Code work with OpenClaw.
How is memory different from Claude Code?
Both use file-based memory. Claude Code uses CLAUDE.md and project-level instructions. OpenClaw has MEMORY.md (long-term), daily notes, and the experimental Dreaming feature for automatic memory consolidation. OpenClaw’s memory is more structured for personal assistant use cases.
I’m documenting the full agent stack — OpenClaw, Claude Code, MCP servers, automation pipelines — in my Build & Automate community. Real production setups, not demo projects.
This post was published using Notipo — my Notion-to-WordPress sync tool. Write in Notion, publish to WordPress automatically.
Related Reading
- Give Your AI Agent Persistent Memory — Memory architectures for agents — file-based, vector, hybrid — with real-world trade-offs.
- Run a Claude Agent on a Schedule — Cron jobs, persistent memory, and graceful failure for scheduled Claude agents.
- Run a Claude Code Agent in Production — How to run Claude Code as a real production agent — observability, retries, secrets, drift handling.