dailytutorfor.you
DevOps & Cloud

OpenClaw: Personal AI Assistant Multi-Channel yang Self-Hosted

Pelajari cara setup OpenClaw, gateway AI self-hosted yang menghubungkan WhatsApp, Telegram, Discord, Slack, dan 20+ channel lainnya ke AI assistant pribadimu. Full control, no cloud lock-in.

11 min read2026-03-18

OpenClaw: Personal AI Assistant Multi-Channel yang Self-Hosted

Introduction

Bayangkan punya AI assistant yang bisa kamu hubungi dari mana sajaβ€”WhatsApp, Telegram, Discord, bahkan iMessageβ€”tanpa harus bergantung pada layanan cloud yang mahal atau mengorbankan privasi data. OpenClaw adalah solusinya.

OpenClaw adalah self-hosted gateway yang menjembatani aplikasi chat favoritmu dengan AI assistant. Kamu menjalankan satu Gateway process di mesin sendiri (laptop, VPS, atau Raspberry Pi), dan itu menjadi jembatan antara messaging apps dan AI assistant yang selalu tersedia.

🦞 EXFOLIATE! EXFOLIATE! β€” The space lobster motto

Kenapa OpenClaw berbeda?

  • Self-hosted: Berjalan di hardware kamu, aturan kamu yang berlaku
  • Multi-channel: Satu Gateway melayani WhatsApp, Telegram, Discord, Slack, Signal, dan 20+ channel lainnya secara bersamaan
  • Agent-native: Dibangun untuk AI agents dengan tool use, sessions, memory, dan multi-agent routing
  • Open source: MIT licensed, komunitas-driven
  • No vendor lock-in: Pilih model dan provider sesuka hati

Fakta menarik: OpenClaw mendukung lebih banyak channel daripada kebanyakan commercial AI assistantβ€”dan kamu punya full control atas semuanya.


Prerequisites

Sebelum mulai, pastikan kamu punya:

  • Node.js 22+ (direkomendasikan Node 24)
  • API key dari provider pilihanmu (OpenAI, Anthropic, atau lainnya)
  • Terminal/CLI access
  • 5 menit waktu untuk setup dasar

Supported Platforms

  • Desktop OS: macOS, Linux, Windows (via WSL2)
  • Mobile: iOS app, Android app (companion nodes)
  • Server: VPS, Raspberry Pi, atau machine apapun yang bisa run Node

Core Concepts

Arsitektur OpenClaw

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ MESSAGING CHANNELS β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ WhatsApp β”‚ Telegram β”‚ Discord β”‚ Slack β”‚ Signal β”‚ iMessage β”‚ β”‚ Google Chat β”‚ IRC β”‚ Matrix β”‚ Teams β”‚ LINE β”‚ Mattermost β”‚ ... β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ OPENCLAW GATEWAY β”‚ β”‚ (Control Plane) β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β€’ Session Management β€’ Channel Routing β”‚ β”‚ β€’ Multi-Agent Support β€’ Message Streaming β”‚ β”‚ β€’ Tool Orchestration β€’ Presence & Typing β”‚ β”‚ β€’ Security & Auth β€’ Cron & Automation β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ β–Ό β–Ό β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ PI AGENT β”‚ β”‚ CLI / Web β”‚ β”‚ MOBILE APPS β”‚ β”‚ (AI Runtime) β”‚ β”‚ Control UI β”‚ β”‚ iOS / Androidβ”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Komponen Utama

1. Gateway Single control plane untuk semua operasi. Menangani session management, channel connections, routing, dan tool orchestration.

2. Pi Agent AI runtime yang memproses messages dan menjalankan tools. Support streaming responses untuk output panjang.

3. Channels Connectors ke berbagai messaging platforms. Setiap channel punya konfigurasi sendiri tapi dikoordinasi oleh Gateway.

4. Skills "Instructions" yang mengajari agent cara menggunakan tools. AgentSkills-compatible format.

5. Nodes Companion apps untuk iOS dan Android. Menambahkan kemampuan camera, voice, canvas, dan device commands.

Session Model

  • Main Session: Direct messages collapse ke satu session per user
  • Group Sessions: Isolated per group dengan mention-based activation
  • Multi-Agent: Route berbeda channels/accounts ke isolated agents dengan workspace terpisah

Step-by-Step: Instalasi OpenClaw

Method 1: Quick Install (Recommended)

macOS/Linux:

curl -fsSL https://openclaw.ai/install.sh | bash

Windows (PowerShell):

iwr -useb https://openclaw.ai/install.ps1 | iex

Method 2: NPM Global Install

npm install -g openclaw@latest

Atau dengan pnpm/bun:

pnpm add -g openclaw@latest # atau bun add -g openclaw@latest

Method 3: From Source

Untuk development atau custom builds:

git clone https://github.com/openclaw/openclaw.git cd openclaw pnpm install pnpm build pnpm openclaw onboard --install-daemon

Step-by-Step: Onboarding & Setup

1. Run Onboarding Wizard

openclaw onboard --install-daemon

Wizard ini akan:

  • Setup auth configuration
  • Configure gateway settings
  • Optional: setup channels
  • Install gateway as system service (launchd/systemd)

2. Verify Gateway Status

openclaw gateway status

Kalau service running, outputnya akan menunjukkan status dan port.

3. Open Control UI

openclaw dashboard

Atau langsung buka browser ke http://127.0.0.1:18789/

4. Test dengan Agent

openclaw agent --message "Hello, introduce yourself!"

Step-by-Step: Connect Channels

WhatsApp

# Login dan scan QR code openclaw channels login whatsapp # Pairing untuk DM security openclaw pairing approve +1234567890

Konfigurasi tambahan (optional):

{ channels: { whatsapp: { allowFrom: ["+1234567890", "+1987654321"], groups: { "*": { requireMention: true } } } } }

Telegram

  1. Buat bot via @BotFather di Telegram
  2. Copy bot token
  3. Configure di OpenClaw:
openclaw config set channels.telegram.botToken YOUR_BOT_TOKEN

Atau di config file:

{ channels: { telegram: { botToken: "YOUR_BOT_TOKEN_HERE" } } }

Discord

  1. Buat bot di Discord Developer Portal
  2. Enable Message Content Intent
  3. Invite bot ke server
  4. Configure:
{ channels: { discord: { botToken: "YOUR_DISCORD_BOT_TOKEN", dmPolicy: "pairing" // atau "open" untuk public } } }

Slack

  1. Create Slack App
  2. Enable Socket Mode
  3. Add OAuth scopes: app_mentions:read, chat:write, channels:history
  4. Install to workspace
  5. Configure:
{ channels: { slack: { appToken: "xapp-...", botToken: "xoxb-...", dmPolicy: "pairing" } } }

Step-by-Step: Multi-Agent Routing

Salah satu fitur powerful OpenClaw adalah kemampuan route berbeda channels ke isolated agents.

Scenario: Personal + Work Agents

{ agents: { personal: { workspace: "~/.openclaw/workspace-personal", channels: ["telegram", "whatsapp"] }, work: { workspace: "~/.openclaw/workspace-work", channels: ["slack", "discord"], model: "claude-sonnet-4" } } }

Hasilnya:

  • Telegram/WhatsApp messages β†’ Personal agent dengan context pribadi
  • Slack/Discord messages β†’ Work agent dengan context kerja
  • Masing-masing punya memory, skills, dan config terpisah

Deep Dive: Skills System

Apa itu Skills?

Skills adalah "instructions" yang mengajari agent cara menggunakan tools. Format AgentSkills-compatible dengan YAML frontmatter.

Struktur Skill

skills/ └── my-awesome-skill/ β”œβ”€β”€ SKILL.md # Main instruction file β”œβ”€β”€ references/ # Optional reference docs └── scripts/ # Optional helper scripts

SKILL.md Format

--- name: weather-checker description: Check weather for any location metadata: { "openclaw": { "emoji": "🌀️", "requires": { "env": ["OPENWEATHER_API_KEY"] } } } --- # Weather Checker Skill When the user asks about weather: 1. Use the `web_fetch` tool to call OpenWeather API 2. Parse the response for temperature, humidity, and conditions 3. Present the information in a friendly format Example API call: https://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}

Skill Locations & Precedence

  1. Bundled skills: Shipped dengan OpenClaw install
  2. Managed skills: ~/.openclaw/skills
  3. Workspace skills: <workspace>/skills (highest precedence)

ClawHub - Skills Registry

Browse dan install skills dari clawhub.com:

# Install skill clawhub install weather-forecaster # Update all skills clawhub update --all

Deep Dive: Security & Pairing

DM Pairing (Default)

Untuk channel dengan DM support, OpenClaw menggunakan pairing system:

  1. Unknown sender mengirim pesan
  2. Bot replies dengan pairing code
  3. Owner approves: openclaw pairing approve <sender>
  4. Sender ditambahkan ke allowlist

Configuration Options

{ channels: { telegram: { dmPolicy: "pairing", // "pairing" | "open" allowFrom: ["*"] // "*" = allow all (hanya jika dmPolicy="open") } } }

Security Checklist

# Run security audit openclaw doctor # Check DM policies openclaw config check dm-policies

Best Practices:

  • Keep dmPolicy: "pairing" untuk personal use
  • Use requireMention: true untuk groups
  • Regularly review pairing allowlist
  • Never expose Gateway ke public internet tanpa auth

Deep Dive: Mobile Nodes

iOS Node

Features:

  • Voice Wake: "Hey Claw" wake word activation
  • Talk Mode: Continuous voice conversation
  • Canvas: Visual workspace yang dikontrol agent
  • Camera: Snap photos dan screen recording
  • Location: Share location ke agent

Setup:

  1. Install OpenClaw app dari App Store
  2. Scan QR code dari Gateway atau enter setup code manually
  3. Grant necessary permissions

Android Node

Features:

  • Connect Tab: Setup code pairing
  • Chat Sessions: Direct chat dengan agent
  • Voice Tab: Voice conversation
  • Canvas: Visual workspace
  • Device Commands: Notifications, SMS, contacts, calendar, photos

Setup:

  1. Install OpenClaw app dari Play Store
  2. Open Connect tab
  3. Enter setup code atau scan QR

Advanced: Voice & Talk Mode

Voice Wake (macOS/iOS)

Configure wake word detection:

{ nodes: { voicewake: { enabled: true, keyword: "hey claw", sensitivity: 0.5 } } }

Talk Mode

Continuous voice conversation tanpa wake word di setiap turn:

# Via CLI openclaw talk --mode continuous # Via config
{ nodes: { talk: { enabled: true, ttsProvider: "elevenlabs", // atau "system" sttProvider: "whisper" } } }

Advanced: Canvas & A2UI

Canvas adalah agent-driven visual workspace. Agent bisa push UI elements yang kamu control.

How It Works

  1. Agent calls canvas.present() dengan UI definition
  2. Canvas renders di macOS/iOS/Android app
  3. User interacts dengan UI
  4. Events dikirim balik ke agent

Example: Dashboard UI

Agent bisa create dashboard seperti:

canvas.present({ type: "dashboard", widgets: [ { type: "weather", location: "Surabaya" }, { type: "tasks", filter: "today" }, { type: "calendar", days: 7 } ] })

Advanced: Cron & Automation

Cron Jobs

Schedule automated tasks:

{ cron: { jobs: [ { id: "morning-briefing", schedule: "0 7 * * *", action: "agent", message: "Give me a morning briefing with weather and calendar" }, { id: "backup-check", schedule: "0 2 * * 0", // Sunday 2 AM action: "exec", command: "/scripts/check-backups.sh" } ] } }

Webhooks

Receive external events:

{ webhooks: { entries: [ { path: "/github", secret: "your-webhook-secret", handler: "skills/github-webhook" } ] } }

Advanced: Remote Access

Tailscale Integration

Secure remote access via Tailscale:

{ gateway: { tailscale: { mode: "serve" // "off" | "serve" | "funnel" } } }
  • serve: Tailnet-only access
  • funnel: Public HTTPS (requires password auth)

SSH Tunnel

Alternative remote access:

# Create tunnel ssh -R 18789:127.0.0.1:18789 user@your-server # Or use autossh for persistent tunnel autossh -M 0 -f -T -N -R 18789:127.0.0.1:18789 user@your-server

Advanced: Docker Deployment

FROM node:24-alpine WORKDIR /app # Install OpenClaw RUN npm install -g openclaw@latest # Create config directory RUN mkdir -p /root/.openclaw # Copy config COPY openclaw.json /root/.openclaw/ # Expose port EXPOSE 18789 # Run gateway CMD ["openclaw", "gateway", "--port", "18789"]

docker-compose.yml:

version: '3.8' services: openclaw: build: . ports: - "18789:18789" volumes: - ./openclaw.json:/root/.openclaw/openclaw.json - openclaw-data:/root/.openclaw restart: unless-stopped volumes: openclaw-data:

Best Practices

1. Use Strong Models

Untuk kualitas terbaik dan lower prompt-injection risk, gunakan model terkuat yang tersedia.

2. Configure Proper Pairing

Jangan buka DM policy ke public kecuali memang diperlukan. Pairing system ada untuk alasan keamanan.

3. Use Workspace Isolation

Untuk use cases berbeda (personal vs work), gunakan separate workspaces dengan isolated agents.

4. Monitor Token Usage

Gunakan /status command atau Control UI untuk memonitor usage dan biaya.

5. Regular Updates

openclaw update --channel stable openclaw doctor # Check health

6. Backup Configuration

# Backup config directory tar -czf openclaw-backup.tar.gz ~/.openclaw/ # Restore tar -xzf openclaw-backup.tar.gz -C ~/

Common Mistakes

❌ Mistake 1: Exposing Gateway Without Auth

# JANGAN INI openclaw gateway --bind 0.0.0.0

Solusi: Gunakan Tailscale atau SSH tunnel untuk remote access.

❌ Mistake 2: Opening DM Policy to Public

{ channels: { telegram: { dmPolicy: "open", allowFrom: ["*"] // BERBAHAYA untuk bot publik tanpa filtering } } }

Solusi: Gunakan dmPolicy: "pairing" atau implement custom filtering logic.

❌ Mistake 3: Not Running Doctor

Solusi: Run openclaw doctor secara regular untuk catch issues early.

❌ Mistake 4: Ignoring Skill Security

Solusi: Baca skill code sebelum enable. Treat third-party skills sebagai untrusted code.


Troubleshooting

Gateway Won't Start

# Check logs openclaw gateway --verbose # Check port conflict lsof -i :18789 # Reset config openclaw config reset

Channel Connection Issues

# Re-login openclaw channels login whatsapp # Check channel status openclaw channels status

Agent Not Responding

# Check agent logs openclaw agent --message "test" --verbose # Verify model config openclaw config check models

Memory Issues

# Check session size openclaw sessions list --verbose # Prune old sessions openclaw sessions prune --older-than 7d

Summary & Next Steps

Key Takeaways

  1. OpenClaw = Self-hosted Gateway - Control penuh, no cloud dependency
  2. Multi-Channel - 20+ messaging platforms dari satu Gateway
  3. Agent-Native - Built untuk AI dengan tools, memory, dan sessions
  4. Secure by Default - Pairing system, allowlists, dan sandbox options
  5. Extensible - Skills system untuk menambah capabilities

Supported Channels (20+)

WhatsApp, Telegram, Discord, Slack, Signal, iMessage, BlueBubbles, IRC, Microsoft Teams, Matrix, Feishu, LINE, Mattermost, Nextcloud Talk, Nostr, Synology Chat, Tlon, Twitch, Zalo, Zalo Personal, WebChat

Next Steps

  1. Install OpenClaw dan run onboarding wizard
  2. Connect your favorite channel (WhatsApp, Telegram, dll)
  3. Explore the Control UI untuk chat, config, dan sessions
  4. Install skills dari ClawHub
  5. Setup mobile nodes untuk akses dari smartphone
  6. Join the community di Discord

References


OpenClaw is built by the community, for the community. EXFOLIATE! 🦞