OpenClaw Genie
OpenClaw is a self-hosted personal AI agent gateway (MIT license, open source).
It connects LLM agents to 22+ messaging platforms natively (WhatsApp, Telegram,
Discord, Slack, Signal, iMessage, MS Teams, Matrix, and more) with 50+
integrations (Gmail, GitHub, Obsidian, Spotify, and more) through a single
Gateway process. All data stays local.
Quick Start
# One-liner install (macOS/Linux, requires Node 22+)
curl -fsSL https://openclaw.ai/install.sh | bash
# Or via npm
npm install -g openclaw@latest
# Interactive setup — gateway, workspace, channels, skills
openclaw onboard --install-daemon
# Verify
openclaw status
openclaw gateway status
Web Control UI: http://127.0.0.1:18789/
Core Architecture
Channels (WhatsApp, Discord, Telegram, Slack, Signal, …)
↓
Gateway ← WebSocket control plane (port 18789), single source of truth
↓
Agents ← isolated workspaces, sessions, memory, tools
↓
Tools ← exec, browser, skills, hooks, messaging, sub-agents
↓
Nodes ← companion devices (macOS/iOS/Android): camera, canvas, screen
- Gateway: Multiplexed port (WebSocket + HTTP + Control UI). Hot-reloads config.
- Agents: Fully isolated — own workspace, session store, memory, auth profiles, sandbox.
- Channels: 22+ native adapters run simultaneously. Deterministic routing: replies return to origin.
- Nodes: Paired companion devices that expose
canvas.*, camera.*, screen.*, device.*, notifications.* via node.invoke.
- Sessions: Key format
agent:<agentId>:<channel>:<scope>:<chatId>. DM scopes: main, per-peer, per-channel-peer, per-account-channel-peer.
Agent Configuration
Workspace files in ~/.openclaw/workspace/ (default agent) or ~/.openclaw/workspace-<agentId>/:
| File |
Purpose |
SOUL.md |
Agent personality and system prompt |
IDENTITY.md |
Name, emoji, avatar |
USER.md |
User profile information |
MEMORY.md |
Curated long-term memory |
memory/YYYY-MM-DD.md |
Daily append-only session logs |
TOOLS.md |
Tool usage guidance |
BOOTSTRAP.md |
One-time init tasks (deleted after first run) |
HEARTBEAT.md |
Periodic check-in instructions |
Bootstrap injection: IDENTITY → SOUL → USER → MEMORY → daily log → skills → session.
Limits: 20,000 chars/file, 150,000 chars total (configurable).
Multi-agent config uses agents.list[] and bindings[] in openclaw.json (see references/multi-agent.md).
Configuration — openclaw.json
Location: ~/.openclaw/openclaw.json (JSON5 — comments and trailing commas OK).
{
"models": { // primary, fallbacks, aliases, image model
"primary": "anthropic/claude-sonnet-4-5",
"fallbacks": ["openai/gpt-4o"]
},
"channels": { }, // discord, telegram, whatsapp, slack, signal, …
"agents": { }, // list, defaults, bindings, broadcast, subagents
"tools": { }, // profiles, allow/deny, loop detection, exec config
"skills": { }, // entries, load dirs, install manager
"browser": { }, // profiles, SSRF policy, executable path
"sandbox": { }, // mode (off/non-main/all), scope, Docker hardening
"gateway": { }, // port, auth, discovery, binding
"automation": { }, // cron, webhooks, heartbeat
"hooks": { }, // internal hooks config
"session": { }, // dmScope, resets, sendPolicy, maintenance
"auth": { } // OAuth profiles, key rotation, order
}
- Env vars:
~/.openclaw/.env, ${VAR} substitution in config strings.
$include: Nested file inclusion (up to 10 levels).
- Hot reload:
hybrid mode (default) — safe changes hot-apply, critical ones auto-restart. Debounce 300ms.
- Strict validation: Unknown keys prevent Gateway startup.
For full reference, read references/configuration.md.
Channels Quick Reference
| Channel |
Setup |
Notes |
| Discord |
openclaw channels add discord |
Bot API + Gateway; servers, DMs, threads, slash commands, voice |
| Telegram |
openclaw channels add telegram |
grammY; groups, forums, inline buttons, webhook mode |
| WhatsApp |
openclaw channels add whatsapp |
Baileys; QR pairing, media, polls |
| Slack |
openclaw channels add slack |
Bolt SDK; socket or HTTP mode, native streaming |
| Signal |
openclaw channels add signal |
signal-cli; privacy-focused, auto-daemon |
| iMessage |
openclaw channels add bluebubbles |
BlueBubbles; reactions, edits, groups |
| Google Chat |
openclaw channels add googlechat |
HTTP webhook app |
| IRC |
openclaw channels add irc |
NickServ, channels + DMs |
| MS Teams |
openclaw plugins install @openclaw/msteams |
Adaptive Cards, polls |
| Matrix |
openclaw plugins install @openclaw/matrix |
E2EE, threads, rooms |
| Mattermost |
openclaw plugins install @openclaw/mattermost |
Self-hosted |
| Nextcloud Talk |
openclaw plugins install @openclaw/nextcloud-talk |
Self-hosted |
| WebChat |
Built-in web UI |
Browser-based access at gateway URL |
Access control: DM policy (pairing/allowlist/open/disabled), group policy, mention gating. Multi-account per channel supported.
For per-channel details, read references/channels.md.
Memory System
- Daily logs:
memory/YYYY-MM-DD.md — today + yesterday loaded at session start
- Long-term:
MEMORY.md — curated facts, decisions, preferences (private sessions only)
- Tools:
memory_search (vector recall, ~400-token chunks) and memory_get (file reads)
- Hybrid search: BM25 (exact tokens) + vector (semantic) with configurable weights
- Post-processing: MMR deduplication (lambda 0.7) + temporal decay (30-day half-life)
- Providers: auto-selects local → OpenAI → Gemini → Voyage → Mistral
- QMD backend: Optional local-first sidecar (BM25 + vectors + reranking)
- Auto flush: Silent agentic turn before context compaction preserves important memories
For full memory config, read references/memory.md.
Tools Overview
| Tool |
Purpose |
exec |
Shell commands (sandbox/gateway/node hosts) |
process |
Background process management |
browser |
Chromium automation (navigate, click, type, screenshot) |
web_search |
Brave Search API queries |
web_fetch |
URL → markdown extraction |
memory_search |
Semantic vector search over memory |
memory_get |
Direct memory file reads |
message |
Cross-channel messaging (send, react, thread, pin, poll) |
sessions_spawn |
Sub-agent runs (one-shot or persistent, up to depth 5) |
canvas |
Node Canvas UI (HTML display on connected devices) |
nodes |
Paired device control: camera snap/clip, screen record, notifications, canvas A2UI |
pdf |
Native PDF analysis (up to 10 PDFs, Anthropic/Google native mode, extraction fallback) |
Access control: Profiles (minimal, coding, messaging, full), allow/deny lists, tool groups (group:fs, group:runtime, group:sessions, group:web, group:ui, group:automation).
Default profile (since v2026.3.2): onboarding defaults to messaging (not coding).
For full tools, skills, and hooks reference, read references/tools.md.
Hooks & Automation
Hooks — event-driven TypeScript handlers in <workspace>/hooks/:
| Event |
Trigger |
command:new/reset/stop |
Session lifecycle |
agent:bootstrap |
Pre-injection (can mutate bootstrap files) |
gateway:startup |
After channels load |
message:received/sent |
Message lifecycle |
tool_result_persist |
Synchronous tool result transform |
Automation — built into Gateway:
- Cron: Scheduled jobs (cron expressions, intervals, one-shot). Isolated or main-session.
- Webhooks:
/hooks/wake (system events), /hooks/agent (isolated turns), custom mapped endpoints.
- Heartbeat: Periodic check-ins (default 30min), batches multiple checks per turn.
Voice — macOS/iOS wake word + talk mode overlay; continuous voice on Android with ElevenLabs or system TTS; OpenAI-compatible STT endpoint (messages.tts.openai.baseUrl).
Deployment Options
# Local service (default)
openclaw gateway install && openclaw gateway start
# One-liner Docker
./docker-setup.sh
# Manual Docker
docker build -t openclaw:local -f Dockerfile .
docker compose up -d openclaw-gateway
Cloud: Fly.io, Railway, Render, GCP, Hetzner, Cloudflare Workers, Ansible.
Sandbox: Docker isolation for untrusted sessions. Modes: off, non-main, all. Scopes: session, agent, shared.
Remote access: Tailscale/VPN preferred, SSH tunnel fallback.
For full deployment guide, read references/deployment.md.
CLI Essentials
| Command |
Purpose |
openclaw onboard |
Interactive first-time setup |
openclaw gateway start/stop/status |
Service management |
openclaw channels add/list/status/login |
Channel management |
openclaw models list/set/auth/scan |
Model config + auth |
openclaw skills list/info/check |
Skill management |
openclaw hooks list/enable/disable/install |
Hook management |
openclaw agent --message "..." |
Single agent turn |
openclaw agents list/add/delete |
Multi-agent management |
openclaw sessions |
List/manage sessions |
openclaw browser |
Browser control (50+ subcommands) |
openclaw cron list/add/run |
Scheduled jobs |
openclaw nodes status |
List paired companion nodes |
openclaw devices list/approve |
Manage device pairing requests |
openclaw config get/set/unset/validate |
Config helpers (validate checks file before startup) |
openclaw doctor [--fix] |
Health checks + auto-repair |
openclaw security audit [--deep] |
Security audit |
openclaw logs [--follow] |
Tail gateway logs |
openclaw memory search "query" |
Vector search |
openclaw dns setup |
CoreDNS + Tailscale discovery |
openclaw tui |
Terminal UI |
Global flags: --dev, --profile <name>, --json, --no-color
When to Read Reference Files
| If you need… |
Read |
| Full openclaw.json, model providers, env vars, auth, OAuth |
references/configuration.md |
| Per-channel setup, routing, access control, streaming, multi-account |
references/channels.md |
| Memory files, vector search, QMD, embeddings, hybrid search |
references/memory.md |
| Exec, browser, skills, hooks, tool access, sub-agents, nodes |
references/tools.md |
| Docker, cloud deploy, sandboxing, native install, security |
references/deployment.md |
| Multi-agent config, bindings, broadcast, sub-agents, workspaces |
references/multi-agent.md |
1---2name: openclaw-genie3description: Use when the user asks about OpenClaw — installation, configuration, agents, channels, memory, tools, hooks, skills, deployment, Docker, multi-agent, OAuth, gateway, CLI, browser, exec, PDF, voice, secrets, sandboxing, sessions, cron, webhooks, heartbeat, sub-agents, nodes, companion devices, canvas, camera, or messaging platform integration.4---56# OpenClaw Genie78OpenClaw is a self-hosted personal AI agent gateway (MIT license, open source).9It connects LLM agents to 22+ messaging platforms natively (WhatsApp, Telegram,10Discord, Slack, Signal, iMessage, MS Teams, Matrix, and more) with 50+11integrations (Gmail, GitHub, Obsidian, Spotify, and more) through a single12Gateway process. All data stays local.1314---1516## Quick Start1718```bash19# One-liner install (macOS/Linux, requires Node 22+)20curl -fsSL https://openclaw.ai/install.sh | bash2122# Or via npm23npm install -g openclaw@latest2425# Interactive setup — gateway, workspace, channels, skills26openclaw onboard --install-daemon2728# Verify29openclaw status30openclaw gateway status31```3233Web Control UI: `http://127.0.0.1:18789/`3435---3637## Core Architecture3839```40Channels (WhatsApp, Discord, Telegram, Slack, Signal, …)41 ↓42 Gateway ← WebSocket control plane (port 18789), single source of truth43 ↓44 Agents ← isolated workspaces, sessions, memory, tools45 ↓46 Tools ← exec, browser, skills, hooks, messaging, sub-agents47 ↓48 Nodes ← companion devices (macOS/iOS/Android): camera, canvas, screen49```5051- **Gateway**: Multiplexed port (WebSocket + HTTP + Control UI). Hot-reloads config.52- **Agents**: Fully isolated — own workspace, session store, memory, auth profiles, sandbox.53- **Channels**: 22+ native adapters run simultaneously. Deterministic routing: replies return to origin.54- **Nodes**: Paired companion devices that expose `canvas.*`, `camera.*`, `screen.*`, `device.*`, `notifications.*` via `node.invoke`.55- **Sessions**: Key format `agent:<agentId>:<channel>:<scope>:<chatId>`. DM scopes: `main`, `per-peer`, `per-channel-peer`, `per-account-channel-peer`.5657---5859## Agent Configuration6061Workspace files in `~/.openclaw/workspace/` (default agent) or `~/.openclaw/workspace-<agentId>/`:6263| File | Purpose |64|------|---------|65| `SOUL.md` | Agent personality and system prompt |66| `IDENTITY.md` | Name, emoji, avatar |67| `USER.md` | User profile information |68| `MEMORY.md` | Curated long-term memory |69| `memory/YYYY-MM-DD.md` | Daily append-only session logs |70| `TOOLS.md` | Tool usage guidance |71| `BOOTSTRAP.md` | One-time init tasks (deleted after first run) |72| `HEARTBEAT.md` | Periodic check-in instructions |7374Bootstrap injection: IDENTITY → SOUL → USER → MEMORY → daily log → skills → session.75Limits: 20,000 chars/file, 150,000 chars total (configurable).7677Multi-agent config uses `agents.list[]` and `bindings[]` in openclaw.json (see `references/multi-agent.md`).7879---8081## Configuration — openclaw.json8283Location: `~/.openclaw/openclaw.json` (JSON5 — comments and trailing commas OK).8485```jsonc86{87 "models": { // primary, fallbacks, aliases, image model88 "primary": "anthropic/claude-sonnet-4-5",89 "fallbacks": ["openai/gpt-4o"]90 },91 "channels": { }, // discord, telegram, whatsapp, slack, signal, …92 "agents": { }, // list, defaults, bindings, broadcast, subagents93 "tools": { }, // profiles, allow/deny, loop detection, exec config94 "skills": { }, // entries, load dirs, install manager95 "browser": { }, // profiles, SSRF policy, executable path96 "sandbox": { }, // mode (off/non-main/all), scope, Docker hardening97 "gateway": { }, // port, auth, discovery, binding98 "automation": { }, // cron, webhooks, heartbeat99 "hooks": { }, // internal hooks config100 "session": { }, // dmScope, resets, sendPolicy, maintenance101 "auth": { } // OAuth profiles, key rotation, order102}103```104105- **Env vars**: `~/.openclaw/.env`, `${VAR}` substitution in config strings.106- **`$include`**: Nested file inclusion (up to 10 levels).107- **Hot reload**: `hybrid` mode (default) — safe changes hot-apply, critical ones auto-restart. Debounce 300ms.108- **Strict validation**: Unknown keys prevent Gateway startup.109110For full reference, read `references/configuration.md`.111112---113114## Channels Quick Reference115116| Channel | Setup | Notes |117|---------|-------|-------|118| Discord | `openclaw channels add discord` | Bot API + Gateway; servers, DMs, threads, slash commands, voice |119| Telegram | `openclaw channels add telegram` | grammY; groups, forums, inline buttons, webhook mode |120| WhatsApp | `openclaw channels add whatsapp` | Baileys; QR pairing, media, polls |121| Slack | `openclaw channels add slack` | Bolt SDK; socket or HTTP mode, native streaming |122| Signal | `openclaw channels add signal` | signal-cli; privacy-focused, auto-daemon |123| iMessage | `openclaw channels add bluebubbles` | BlueBubbles; reactions, edits, groups |124| Google Chat | `openclaw channels add googlechat` | HTTP webhook app |125| IRC | `openclaw channels add irc` | NickServ, channels + DMs |126| MS Teams | `openclaw plugins install @openclaw/msteams` | Adaptive Cards, polls |127| Matrix | `openclaw plugins install @openclaw/matrix` | E2EE, threads, rooms |128| Mattermost | `openclaw plugins install @openclaw/mattermost` | Self-hosted |129| Nextcloud Talk | `openclaw plugins install @openclaw/nextcloud-talk` | Self-hosted |130| WebChat | Built-in web UI | Browser-based access at gateway URL |131132**Access control**: DM policy (`pairing`/`allowlist`/`open`/`disabled`), group policy, mention gating. Multi-account per channel supported.133134For per-channel details, read `references/channels.md`.135136---137138## Memory System139140- **Daily logs**: `memory/YYYY-MM-DD.md` — today + yesterday loaded at session start141- **Long-term**: `MEMORY.md` — curated facts, decisions, preferences (private sessions only)142- **Tools**: `memory_search` (vector recall, ~400-token chunks) and `memory_get` (file reads)143- **Hybrid search**: BM25 (exact tokens) + vector (semantic) with configurable weights144- **Post-processing**: MMR deduplication (lambda 0.7) + temporal decay (30-day half-life)145- **Providers**: auto-selects local → OpenAI → Gemini → Voyage → Mistral146- **QMD backend**: Optional local-first sidecar (BM25 + vectors + reranking)147- **Auto flush**: Silent agentic turn before context compaction preserves important memories148149For full memory config, read `references/memory.md`.150151---152153## Tools Overview154155| Tool | Purpose |156|------|---------|157| `exec` | Shell commands (sandbox/gateway/node hosts) |158| `process` | Background process management |159| `browser` | Chromium automation (navigate, click, type, screenshot) |160| `web_search` | Brave Search API queries |161| `web_fetch` | URL → markdown extraction |162| `memory_search` | Semantic vector search over memory |163| `memory_get` | Direct memory file reads |164| `message` | Cross-channel messaging (send, react, thread, pin, poll) |165| `sessions_spawn` | Sub-agent runs (one-shot or persistent, up to depth 5) |166| `canvas` | Node Canvas UI (HTML display on connected devices) |167| `nodes` | Paired device control: camera snap/clip, screen record, notifications, canvas A2UI |168| `pdf` | Native PDF analysis (up to 10 PDFs, Anthropic/Google native mode, extraction fallback) |169170**Access control**: Profiles (`minimal`, `coding`, `messaging`, `full`), allow/deny lists, tool groups (`group:fs`, `group:runtime`, `group:sessions`, `group:web`, `group:ui`, `group:automation`).171**Default profile** (since v2026.3.2): onboarding defaults to `messaging` (not `coding`).172173For full tools, skills, and hooks reference, read `references/tools.md`.174175---176177## Hooks & Automation178179**Hooks** — event-driven TypeScript handlers in `<workspace>/hooks/`:180181| Event | Trigger |182|-------|---------|183| `command:new/reset/stop` | Session lifecycle |184| `agent:bootstrap` | Pre-injection (can mutate bootstrap files) |185| `gateway:startup` | After channels load |186| `message:received/sent` | Message lifecycle |187| `tool_result_persist` | Synchronous tool result transform |188189**Automation** — built into Gateway:190- **Cron**: Scheduled jobs (cron expressions, intervals, one-shot). Isolated or main-session.191- **Webhooks**: `/hooks/wake` (system events), `/hooks/agent` (isolated turns), custom mapped endpoints.192- **Heartbeat**: Periodic check-ins (default 30min), batches multiple checks per turn.193194**Voice** — macOS/iOS wake word + talk mode overlay; continuous voice on Android with ElevenLabs or system TTS; OpenAI-compatible STT endpoint (`messages.tts.openai.baseUrl`).195196---197198## Deployment Options199200```bash201# Local service (default)202openclaw gateway install && openclaw gateway start203204# One-liner Docker205./docker-setup.sh206207# Manual Docker208docker build -t openclaw:local -f Dockerfile .209docker compose up -d openclaw-gateway210```211212**Cloud**: Fly.io, Railway, Render, GCP, Hetzner, Cloudflare Workers, Ansible.213**Sandbox**: Docker isolation for untrusted sessions. Modes: `off`, `non-main`, `all`. Scopes: `session`, `agent`, `shared`.214**Remote access**: Tailscale/VPN preferred, SSH tunnel fallback.215216For full deployment guide, read `references/deployment.md`.217218---219220## CLI Essentials221222| Command | Purpose |223|---------|---------|224| `openclaw onboard` | Interactive first-time setup |225| `openclaw gateway start/stop/status` | Service management |226| `openclaw channels add/list/status/login` | Channel management |227| `openclaw models list/set/auth/scan` | Model config + auth |228| `openclaw skills list/info/check` | Skill management |229| `openclaw hooks list/enable/disable/install` | Hook management |230| `openclaw agent --message "..."` | Single agent turn |231| `openclaw agents list/add/delete` | Multi-agent management |232| `openclaw sessions` | List/manage sessions |233| `openclaw browser` | Browser control (50+ subcommands) |234| `openclaw cron list/add/run` | Scheduled jobs |235| `openclaw nodes status` | List paired companion nodes |236| `openclaw devices list/approve` | Manage device pairing requests |237| `openclaw config get/set/unset/validate` | Config helpers (`validate` checks file before startup) |238| `openclaw doctor [--fix]` | Health checks + auto-repair |239| `openclaw security audit [--deep]` | Security audit |240| `openclaw logs [--follow]` | Tail gateway logs |241| `openclaw memory search "query"` | Vector search |242| `openclaw dns setup` | CoreDNS + Tailscale discovery |243| `openclaw tui` | Terminal UI |244245**Global flags**: `--dev`, `--profile <name>`, `--json`, `--no-color`246247---248249## When to Read Reference Files250251| If you need… | Read |252|--------------|------|253| Full openclaw.json, model providers, env vars, auth, OAuth | `references/configuration.md` |254| Per-channel setup, routing, access control, streaming, multi-account | `references/channels.md` |255| Memory files, vector search, QMD, embeddings, hybrid search | `references/memory.md` |256| Exec, browser, skills, hooks, tool access, sub-agents, nodes | `references/tools.md` |257| Docker, cloud deploy, sandboxing, native install, security | `references/deployment.md` |258| Multi-agent config, bindings, broadcast, sub-agents, workspaces | `references/multi-agent.md` |