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. Also invoke for questions about running OpenClaw agents: memory recall (memory_search), cron scheduling, multi-agent setup, or any openclaw.json behavior. OpenClaw has proprietary configuration syntax (SecretRef, dmPolicy, node.invoke, tool profiles) and CLI commands that require this skill to answer correctly.4---5
6# OpenClaw Genie
7
8OpenClaw 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 single
12Gateway process. All data stays local.
13
14---
15
16## Quick Start
17
18```bash
19# One-liner install (macOS/Linux, requires Node 22+)
20curl -fsSL https://openclaw.ai/install.sh | bash
21
22# Or via npm
23npm install -g openclaw@latest
24
25# Interactive setup — gateway, workspace, channels, skills
26openclaw onboard --install-daemon
27
28# Verify
29openclaw status
30openclaw gateway status
31```
32
33Web Control UI: `http://127.0.0.1:18789/`
34
35---
36
37## Core Architecture
38
39```
40Channels (WhatsApp, Discord, Telegram, Slack, Signal, …)
41 ↓
42 Gateway ← WebSocket control plane (port 18789), single source of truth
43 ↓
44 Agents ← isolated workspaces, sessions, memory, tools
45 ↓
46 Tools ← exec, browser, skills, hooks, messaging, sub-agents
47 ↓
48 Nodes ← companion devices (macOS/iOS/Android): camera, canvas, screen
49```
50
51- **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`.
56
57---
58
59## Agent Configuration
60
61Workspace files in `~/.openclaw/workspace/` (default agent) or `~/.openclaw/workspace-<agentId>/`:
62
63| 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 |
73
74Bootstrap injection: IDENTITY → SOUL → USER → MEMORY → daily log → skills → session.
75Limits: 20,000 chars/file, 150,000 chars total (configurable).
76
77Multi-agent config uses `agents.list[]` and `bindings[]` in openclaw.json (see `references/multi-agent.md`).
78
79---
80
81## Configuration — openclaw.json
82
83Location: `~/.openclaw/openclaw.json` (JSON5 — comments and trailing commas OK).
84
85```jsonc
86{
87 "models": { // primary, fallbacks, aliases, image model
88 "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, subagents
93 "tools": { }, // profiles, allow/deny, loop detection, exec config
94 "skills": { }, // entries, load dirs, install manager
95 "browser": { }, // profiles, SSRF policy, executable path
96 "sandbox": { }, // mode (off/non-main/all), scope, Docker hardening
97 "gateway": { }, // port, auth, discovery, binding
98 "automation": { }, // cron, webhooks, heartbeat
99 "hooks": { }, // internal hooks config
100 "session": { }, // dmScope, resets, sendPolicy, maintenance
101 "auth": { } // OAuth profiles, key rotation, order
102}
103```
104
105- **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.
109
110For full reference, read `references/configuration.md`.
111
112---
113
114## Channels Quick Reference
115
116| 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 |
131
132**Access control**: DM policy (`pairing`/`allowlist`/`open`/`disabled`), group policy, mention gating. Multi-account per channel supported.
133
134For per-channel details, read `references/channels.md`.
135
136---
137
138## Memory System
139
140- **Daily logs**: `memory/YYYY-MM-DD.md` — today + yesterday loaded at session start
141- **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 weights
144- **Post-processing**: MMR deduplication (lambda 0.7) + temporal decay (30-day half-life)
145- **Providers**: auto-selects local → OpenAI → Gemini → Voyage → Mistral
146- **QMD backend**: Optional local-first sidecar (BM25 + vectors + reranking)
147- **Auto flush**: Silent agentic turn before context compaction preserves important memories
148
149For full memory config, read `references/memory.md`.
150
151---
152
153## Tools Overview
154
155| 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) |
169
170**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`).
172
173For full tools, skills, and hooks reference, read `references/tools.md`.
174
175---
176
177## Hooks & Automation
178
179**Hooks** — event-driven TypeScript handlers in `<workspace>/hooks/`:
180
181| 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 |
188
189**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.
193
194**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`).
195
196---
197
198## Deployment Options
199
200```bash
201# Local service (default)
202openclaw gateway install && openclaw gateway start
203
204# One-liner Docker
205./docker-setup.sh
206
207# Manual Docker
208docker build -t openclaw:local -f Dockerfile .
209docker compose up -d openclaw-gateway
210```
211
212**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.
215
216For full deployment guide, read `references/deployment.md`.
217
218---
219
220## CLI Essentials
221
222| 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 |
244
245**Global flags**: `--dev`, `--profile <name>`, `--json`, `--no-color`
246
247---
248
249## When to Read Reference Files
250
251| 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` |