OpenClaw Genie
OpenClaw is a self-hosted personal AI agent gateway (MIT license, ~229k GitHub
stars). It connects LLM agents to 38+ messaging platforms (WhatsApp, Telegram,
Discord, Slack, Signal, iMessage, MS Teams, Matrix, 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
- Gateway: Multiplexed port (WebSocket + HTTP + Control UI). Hot-reloads config.
- Agents: Fully isolated — own workspace, session store, memory, auth profiles, sandbox.
- Channels: 38+ adapters run simultaneously. Deterministic routing: replies return to origin.
- 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 |
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) |
Access control: Profiles (minimal, coding, messaging, full), allow/deny lists, tool groups (group:fs, group:runtime, group:web, group:ui, group:automation).
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.
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 config get/set/unset |
Config helpers |
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 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 |
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, sandboxing, sessions, cron, webhooks, heartbeat, sub-agents, or messaging platform integration.4---5
6# OpenClaw Genie
7
8OpenClaw is a self-hosted personal AI agent gateway (MIT license, ~229k GitHub
9stars). It connects LLM agents to 38+ messaging platforms (WhatsApp, Telegram,
10Discord, Slack, Signal, iMessage, MS Teams, Matrix, and more) through a single
11Gateway process. All data stays local.
12
13---
14
15## Quick Start
16
17```bash
18# One-liner install (macOS/Linux, requires Node 22+)
19curl -fsSL https://openclaw.ai/install.sh | bash
20
21# Or via npm
22npm install -g openclaw@latest
23
24# Interactive setup — gateway, workspace, channels, skills
25openclaw onboard --install-daemon
26
27# Verify
28openclaw status
29openclaw gateway status
30```
31
32Web Control UI: `http://127.0.0.1:18789/`
33
34---
35
36## Core Architecture
37
38```
39Channels (WhatsApp, Discord, Telegram, Slack, Signal, …)
40 ↓
41 Gateway ← WebSocket control plane (port 18789), single source of truth
42 ↓
43 Agents ← isolated workspaces, sessions, memory, tools
44 ↓
45 Tools ← exec, browser, skills, hooks, messaging, sub-agents
46```
47
48- **Gateway**: Multiplexed port (WebSocket + HTTP + Control UI). Hot-reloads config.
49- **Agents**: Fully isolated — own workspace, session store, memory, auth profiles, sandbox.
50- **Channels**: 38+ adapters run simultaneously. Deterministic routing: replies return to origin.
51- **Sessions**: Key format `agent:<agentId>:<channel>:<scope>:<chatId>`. DM scopes: `main`, `per-peer`, `per-channel-peer`, `per-account-channel-peer`.
52
53---
54
55## Agent Configuration
56
57Workspace files in `~/.openclaw/workspace/` (default agent) or `~/.openclaw/workspace-<agentId>/`:
58
59| File | Purpose |
60|------|---------|
61| `SOUL.md` | Agent personality and system prompt |
62| `IDENTITY.md` | Name, emoji, avatar |
63| `USER.md` | User profile information |
64| `MEMORY.md` | Curated long-term memory |
65| `memory/YYYY-MM-DD.md` | Daily append-only session logs |
66| `TOOLS.md` | Tool usage guidance |
67| `BOOTSTRAP.md` | One-time init tasks (deleted after first run) |
68| `HEARTBEAT.md` | Periodic check-in instructions |
69
70Bootstrap injection: IDENTITY → SOUL → USER → MEMORY → daily log → skills → session.
71Limits: 20,000 chars/file, 150,000 chars total (configurable).
72
73Multi-agent config uses `agents.list[]` and `bindings[]` in openclaw.json (see `references/multi-agent.md`).
74
75---
76
77## Configuration — openclaw.json
78
79Location: `~/.openclaw/openclaw.json` (JSON5 — comments and trailing commas OK).
80
81```jsonc
82{
83 "models": { // primary, fallbacks, aliases, image model
84 "primary": "anthropic/claude-sonnet-4-5",
85 "fallbacks": ["openai/gpt-4o"]
86 },
87 "channels": { }, // discord, telegram, whatsapp, slack, signal, …
88 "agents": { }, // list, defaults, bindings, broadcast, subagents
89 "tools": { }, // profiles, allow/deny, loop detection, exec config
90 "skills": { }, // entries, load dirs, install manager
91 "browser": { }, // profiles, SSRF policy, executable path
92 "sandbox": { }, // mode (off/non-main/all), scope, Docker hardening
93 "gateway": { }, // port, auth, discovery, binding
94 "automation": { }, // cron, webhooks, heartbeat
95 "hooks": { }, // internal hooks config
96 "session": { }, // dmScope, resets, sendPolicy, maintenance
97 "auth": { } // OAuth profiles, key rotation, order
98}
99```
100
101- **Env vars**: `~/.openclaw/.env`, `${VAR}` substitution in config strings.
102- **`$include`**: Nested file inclusion (up to 10 levels).
103- **Hot reload**: `hybrid` mode (default) — safe changes hot-apply, critical ones auto-restart. Debounce 300ms.
104- **Strict validation**: Unknown keys prevent Gateway startup.
105
106For full reference, read `references/configuration.md`.
107
108---
109
110## Channels Quick Reference
111
112| Channel | Setup | Notes |
113|---------|-------|-------|
114| Discord | `openclaw channels add discord` | Bot API + Gateway; servers, DMs, threads, slash commands, voice |
115| Telegram | `openclaw channels add telegram` | grammY; groups, forums, inline buttons, webhook mode |
116| WhatsApp | `openclaw channels add whatsapp` | Baileys; QR pairing, media, polls |
117| Slack | `openclaw channels add slack` | Bolt SDK; socket or HTTP mode, native streaming |
118| Signal | `openclaw channels add signal` | signal-cli; privacy-focused, auto-daemon |
119| iMessage | `openclaw channels add bluebubbles` | BlueBubbles; reactions, edits, groups |
120| Google Chat | `openclaw channels add googlechat` | HTTP webhook app |
121| IRC | `openclaw channels add irc` | NickServ, channels + DMs |
122| MS Teams | `openclaw plugins install @openclaw/msteams` | Adaptive Cards, polls |
123| Matrix | `openclaw plugins install @openclaw/matrix` | E2EE, threads, rooms |
124
125**Access control**: DM policy (`pairing`/`allowlist`/`open`/`disabled`), group policy, mention gating. Multi-account per channel supported.
126
127For per-channel details, read `references/channels.md`.
128
129---
130
131## Memory System
132
133- **Daily logs**: `memory/YYYY-MM-DD.md` — today + yesterday loaded at session start
134- **Long-term**: `MEMORY.md` — curated facts, decisions, preferences (private sessions only)
135- **Tools**: `memory_search` (vector recall, ~400-token chunks) and `memory_get` (file reads)
136- **Hybrid search**: BM25 (exact tokens) + vector (semantic) with configurable weights
137- **Post-processing**: MMR deduplication (lambda 0.7) + temporal decay (30-day half-life)
138- **Providers**: auto-selects local → OpenAI → Gemini → Voyage → Mistral
139- **QMD backend**: Optional local-first sidecar (BM25 + vectors + reranking)
140- **Auto flush**: Silent agentic turn before context compaction preserves important memories
141
142For full memory config, read `references/memory.md`.
143
144---
145
146## Tools Overview
147
148| Tool | Purpose |
149|------|---------|
150| `exec` | Shell commands (sandbox/gateway/node hosts) |
151| `process` | Background process management |
152| `browser` | Chromium automation (navigate, click, type, screenshot) |
153| `web_search` | Brave Search API queries |
154| `web_fetch` | URL → markdown extraction |
155| `memory_search` | Semantic vector search over memory |
156| `memory_get` | Direct memory file reads |
157| `message` | Cross-channel messaging (send, react, thread, pin, poll) |
158| `sessions_spawn` | Sub-agent runs (one-shot or persistent, up to depth 5) |
159| `canvas` | Node Canvas UI (HTML display on connected devices) |
160
161**Access control**: Profiles (`minimal`, `coding`, `messaging`, `full`), allow/deny lists, tool groups (`group:fs`, `group:runtime`, `group:web`, `group:ui`, `group:automation`).
162
163For full tools, skills, and hooks reference, read `references/tools.md`.
164
165---
166
167## Hooks & Automation
168
169**Hooks** — event-driven TypeScript handlers in `<workspace>/hooks/`:
170
171| Event | Trigger |
172|-------|---------|
173| `command:new/reset/stop` | Session lifecycle |
174| `agent:bootstrap` | Pre-injection (can mutate bootstrap files) |
175| `gateway:startup` | After channels load |
176| `message:received/sent` | Message lifecycle |
177| `tool_result_persist` | Synchronous tool result transform |
178
179**Automation** — built into Gateway:
180- **Cron**: Scheduled jobs (cron expressions, intervals, one-shot). Isolated or main-session.
181- **Webhooks**: `/hooks/wake` (system events), `/hooks/agent` (isolated turns), custom mapped endpoints.
182- **Heartbeat**: Periodic check-ins (default 30min), batches multiple checks per turn.
183
184---
185
186## Deployment Options
187
188```bash
189# Local service (default)
190openclaw gateway install && openclaw gateway start
191
192# One-liner Docker
193./docker-setup.sh
194
195# Manual Docker
196docker build -t openclaw:local -f Dockerfile .
197docker compose up -d openclaw-gateway
198```
199
200**Cloud**: Fly.io, Railway, Render, GCP, Hetzner, Cloudflare Workers, Ansible.
201**Sandbox**: Docker isolation for untrusted sessions. Modes: `off`, `non-main`, `all`. Scopes: `session`, `agent`, `shared`.
202**Remote access**: Tailscale/VPN preferred, SSH tunnel fallback.
203
204For full deployment guide, read `references/deployment.md`.
205
206---
207
208## CLI Essentials
209
210| Command | Purpose |
211|---------|---------|
212| `openclaw onboard` | Interactive first-time setup |
213| `openclaw gateway start/stop/status` | Service management |
214| `openclaw channels add/list/status/login` | Channel management |
215| `openclaw models list/set/auth/scan` | Model config + auth |
216| `openclaw skills list/info/check` | Skill management |
217| `openclaw hooks list/enable/disable/install` | Hook management |
218| `openclaw agent --message "..."` | Single agent turn |
219| `openclaw agents list/add/delete` | Multi-agent management |
220| `openclaw sessions` | List/manage sessions |
221| `openclaw browser` | Browser control (50+ subcommands) |
222| `openclaw cron list/add/run` | Scheduled jobs |
223| `openclaw config get/set/unset` | Config helpers |
224| `openclaw doctor [--fix]` | Health checks + auto-repair |
225| `openclaw security audit [--deep]` | Security audit |
226| `openclaw logs [--follow]` | Tail gateway logs |
227| `openclaw memory search "query"` | Vector search |
228| `openclaw tui` | Terminal UI |
229
230**Global flags**: `--dev`, `--profile <name>`, `--json`, `--no-color`
231
232---
233
234## When to Read Reference Files
235
236| If you need… | Read |
237|--------------|------|
238| Full openclaw.json, model providers, env vars, auth, OAuth | `references/configuration.md` |
239| Per-channel setup, routing, access control, streaming, multi-account | `references/channels.md` |
240| Memory files, vector search, QMD, embeddings, hybrid search | `references/memory.md` |
241| Exec, browser, skills, hooks, tool access, sub-agents | `references/tools.md` |
242| Docker, cloud deploy, sandboxing, native install, security | `references/deployment.md` |
243| Multi-agent config, bindings, broadcast, sub-agents, workspaces | `references/multi-agent.md` |