All posts
AIApril 12, 2026·9 min read

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. You pay for API calls and nothing beyond that. Here is the OpenClaw setup path…

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. You pay for API calls and nothing beyond that.

Installing it and wiring up a messaging platform takes under 15 minutes. Everything below is that path, config included.

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:

  • MIT licensed.
  • Model agnostic: Claude, GPT, Gemini, Kimi K2.5, DeepSeek, Ollama local models.
  • It runs as a daemon, so it stays up between messages instead of ending with a session.
  • It speaks MCP, so it can call Model Context Protocol servers.
  • Memory sits in three tiers: long-term (MEMORY.md), daily notes, and the 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 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:

  1. Choosing your AI provider and entering your API key
  2. Selecting a messaging platform to connect
  3. 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

The daemon starts on its own from here 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. Signal and WhatsApp take more steps, and Signal needs a phone number of its own.

You need a bot token from @BotFather:

  1. Message @BotFather on Telegram
  2. Send /newbot and follow the prompts
  3. Copy the bot token (format: 123456789:ABCdef...)
  4. 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:

  1. Run openclaw connect whatsapp
  2. A QR code appears in your terminal
  3. Open WhatsApp on your phone → Settings → Linked Devices → Link a Device
  4. Scan the terminal QR code
  5. 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. That is 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.

Discord, Slack, iMessage, and the other 20+ platforms each have a connector in the OpenClaw docs at docs.openclaw.ai.

Once connected, message your bot. OpenClaw picks the message up, routes it to your chosen model and sends the reply back. Conversation history, file attachments and tool calls are handled for you.

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 and a daemon restart.

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. 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, introduced in v2026.4.9. It performs “REM backfill”: replays historical daily notes and consolidates important patterns into long-term memory automatically.

All memory stays in ~/.openclaw/workspace, and nothing is cloud-synced by default.

This is close to how I built persistent memory for my Claude Code agent: 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, so the running cost is whatever your model provider charges for API calls.

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 shallower on coding tasks than Claude Code.

The overlap is growing. Claude Code now has Channels for Telegram/Discord messaging, and OpenClaw’s coding capabilities are improving. Today the split still holds. Claude Code is the one you open for code. OpenClaw is the one that sits in a chat window all day. Running both works, and 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.
  • Never expose the gateway to the public internet without authentication.
  • Keep OpenClaw updated. The release cadence is near-daily (current version: v2026.4.11), and 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. That removes the API bill, 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. What goes in there is the setup as it actually runs.

ai-agentautomationclaude-codedeveloper-toolsgetting-started