OpenClaw is an open-source personal AI assistant framework that runs on your own devices. Built on TypeScript, it connects the messaging channels you use every day through a Gateway, letting you chat with your AI assistant on 20+ platforms including WhatsApp, Telegram, Slack, and Discord.
The goal of this article is the same as the Hermes guide: read just this one article, and you’ll master OpenClaw. From installation and deployment to usage tips, it’s all covered.
What is OpenClaw
The core philosophy of OpenClaw is a “personal AI assistant” — you run it on your own devices, and you control your data. It belongs to the category of autonomous task-execution agents, the same category as Hermes Agent and Claude Code, but with a different focus:
- Local-first Gateway - A single control plane manages sessions, channels, tools, and events, with all data staying on your devices
- Multi-channel inbox - 20+ messaging platforms unified into one, with a single assistant covering all communication channels
- Multi-agent routing - Route different channels/contacts to isolated agent instances, each with its own workspace and session
- Voice wake + conversation mode - macOS/iOS support wake words, Android supports continuous voice conversation
- Live Canvas - Agent-driven visual workspace, supports the A2UI protocol
- Companion apps - Windows Hub, macOS menu bar app, iOS/Android node apps
- Skill ecosystem - Install and share skills through the ClawHub skill marketplace
Key differences between OpenClaw and Hermes:
| Dimension | OpenClaw | Hermes Agent |
|---|---|---|
| Language | TypeScript (Node.js) | Python |
| Installation | npm / install script | pip / install script |
| Config format | JSON5 (openclaw.json) | YAML (config.yaml) |
| Data directory | ~/.openclaw/ | ~/.hermes/ |
| Number of messaging platforms | 20+ | 15+ |
| Desktop app | Windows Hub / macOS menu bar | Hermes Desktop |
| Skill marketplace | ClawHub | Hermes Skills Hub |
| Voice | Voice Wake + Talk Mode | STT + TTS |
| Visualization | Live Canvas (A2UI) | Dashboard |
System Requirements
Before installing, confirm that your environment meets the following conditions:
| Requirement | Minimum version | Notes |
|---|---|---|
| Node.js | 22.19+ or 24+ | 24 is the recommended version; the install script will install it automatically |
| Memory | 512MB+ | The Gateway itself has a small footprint |
| Disk | 200MB+ | Includes dependencies and skills |
| API Key | Any model provider | Anthropic, OpenAI, Google, etc. |
Supported platforms:
- macOS (Apple Silicon + Intel)
- Linux (x86_64, aarch64)
- Windows (native + WSL2)
- Docker containers
- Raspberry Pi
- Android (via Termux or node app)
- iOS (via node app)
Installation Guide
1. macOS / Linux / WSL2
One-line installation (recommended):
1 | curl -fsSL https://openclaw.ai/install.sh | bash |
The install script will automatically complete the following steps:
- Detect the operating system and package manager
- Install Node.js 24 (if missing or version is too low)
- Globally install the OpenClaw package
- Launch the interactive Onboarding wizard
After installation, run Onboarding:
1 | openclaw onboard --install-daemon |
The Onboarding wizard will guide you through:
- Selecting a model provider and entering your API Key
- Configuring the Gateway (generating tokens, setting ports)
- Choosing messaging channels (can be skipped for later configuration)
- Installing the Gateway daemon (launchd/systemd user service)
Skip Onboarding (CI/automation scenarios):
1 | curl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-onboard |
Local prefix installation (no dependency on system Node.js):
1 | curl -fsSL https://openclaw.ai/install-cli.sh | bash |
This installs OpenClaw and Node.js into the ~/.openclaw/ directory without polluting the system environment.
2. Windows
Option 1: Windows Hub desktop app (recommended)
Visit https://docs.openclaw.ai/platforms/windows to download the Windows Hub installer. It provides a graphical interface setup, system tray status, chat window, node mode, and local MCP mode.
Option 2: PowerShell installation
1 | iwr -useb https://openclaw.ai/install.ps1 | iex |
Skip Onboarding:
1 | & ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -NoOnboard |
Option 3: WSL2
Use the same install script as Linux inside WSL2. The Gateway runs in WSL2, and the Windows side accesses the control panel via a browser.
3. npm / pnpm / bun installation
If you already manage your own Node.js environment:
1 | # npm |
4. Docker deployment
Docker is the recommended way for server deployment, providing an isolated Gateway environment.
Using prebuilt images:
1 | # GHCR (primary registry) |
The setup script will automatically:
- Pull/build the Docker image
- Prompt for the provider API Key
- Generate a Gateway token and write it to
.env - Create the authentication key directory
- Start the Gateway via Docker Compose
Offline installation (air-gapped environments):
1 | # Pull the image on a machine with internet access |
Docker deployment notes:
- Minimum 2GB of memory (
pnpm installmay OOM on a 1GB host) - Official tags:
main,latest,<version>(e.g.,2026.2.26) - The
-browservariant (e.g.,latest-browser) ships with Chromium built in, suitable for sandboxed browsers - Before deploying on a VPS, be sure to read the security hardening documentation
- Control panel address:
http://127.0.0.1:18789/
5. Other platforms
Raspberry Pi: Supports ARM architecture, uses the same install script as Linux.
Android (Termux): Install Node.js in Termux, then install via npm. You can also install the OpenClaw Android node app for a native experience.
iOS: Install the OpenClaw node app from the App Store and connect it to your Gateway.
Nix: Use the Nix flake provided by github.com/openclaw/nix-openclaw.
Initial Configuration
After installation, the Onboarding wizard is the main entry point for configuration:
1 | openclaw onboard # Full Onboarding flow |
Configuration file structure
OpenClaw uses a JSON5-format configuration file:
1 | ~/.openclaw/ |
When the configuration file does not exist, safe defaults are used. The configuration file must be a regular file (not a symbolic link, because OpenClaw writes using atomic replacement).
If the configuration file is in a non-default location, set the environment variable:
1 | export OPENCLAW_CONFIG_PATH=/path/to/openclaw.json |
CLI configuration commands
1 | # Read a configuration value |
Minimal configuration example
1 | // ~/.openclaw/openclaw.json |
Model and provider configuration
OpenClaw supports multiple model providers, configured via models.providers:
1 | { |
Model failover: Configure primary and fallbacks to automatically switch when the primary model is unavailable.
Key storage: The API Key supports three formats:
1 | // 1. Plain string |
The environment variable reference format is recommended, with keys stored in the ~/.openclaw/.env file.
Health check
1 | openclaw doctor # Check configuration, dependencies, and security settings |
openclaw doctor will check:
- Node.js version
- Configuration file integrity
- Whether the API Key is set
- Whether the DM security policy is reasonable
- Whether the sandbox configuration is safe
Basic Usage
Starting the Gateway
When Onboarding has installed the daemon, the Gateway starts automatically. Manual control:
1 | openclaw gateway status # View status |
Opening the control panel
1 | openclaw dashboard # Open the control panel in the browser |
The control panel address defaults to http://127.0.0.1:18789/ and requires entering the Gateway token to log in.
Sending messages
1 | # Send a message to a specified channel |
Foreground debug mode
1 | # Stop the daemon |
Updating
1 | openclaw update # Update to the latest stable version |
Core Features in Detail
Messaging Channels
OpenClaw supports 20+ messaging platforms, which is its core advantage:
| Platform | Notes |
|---|---|
| Via the Baileys library, QR code pairing | |
| Telegram | Bot Token, easiest to configure |
| Discord | Requires Bot Token + Message Content Intent |
| Slack | Bot Token + App Token |
| Google Chat | Enterprise users |
| Signal | Via signal-cli |
| iMessage | Via BlueBubbles |
| IRC | Traditional IRC protocol |
| Microsoft Teams | Enterprise users |
| Matrix | Decentralized chat |
| Feishu | Enterprise IM |
| LINE | Popular in Japan/Southeast Asia |
| Mattermost | Open-source Slack alternative |
| Nextcloud Talk | Self-hosted |
| Supported | |
| Supported | |
| WebChat | Web chat |
| Twitch | Live stream chat |
| Zalo | Popular in Vietnam |
| Nostr | Decentralized protocol |
Channel configuration example (Telegram):
1 | { |
DM security policy:
The default behavior is dmPolicy: "pairing" - unknown senders receive a pairing code, and the Bot does not process their messages. Only after the pairing is approved is the sender added to the whitelist.
1 | # Approve pairing |
If you need to open public DM, set it explicitly:
1 | { |
Multi-channel routing: Different channels can be routed to different agents:
1 | { |
Workspace and personality
OpenClaw’s workspace defines the agent’s identity and behavior:
| File | Purpose |
|---|---|
SOUL.md |
Assistant personality definition, determines the AI’s way of thinking and work boundaries |
MEMORY.md |
Long-term memory, persists across sessions |
USER.md |
User profile, records user preferences and information |
AGENTS.md |
Workspace instructions, similar to a system prompt |
IDENTITY.md |
Identity information (deprecated, recommended to merge into SOUL.md) |
TOOLS.md |
Tool instructions (OpenClaw has built-in tool descriptions) |
Workspace path configuration:
1 | { |
Skill system (Skills)
Skills are reusable workflows distributed through the ClawHub skill marketplace.
Skill sources (4 tiers):
| Source | Path | Notes |
|---|---|---|
| Workspace skills | workspace/skills/ |
Specific to the current workspace |
| Global skills | ~/.openclaw/skills/ |
Shared by all agents |
| Personal cross-project | ~/.agents/skills/ |
Shared across tools |
| Project-level shared | workspace/.agents/skills/ |
Shared by the project team |
Skill marketplace: Visit https://clawhub.ai to browse and install skills.
Tool system
OpenClaw has a variety of built-in tools:
| Tool | Function |
|---|---|
| bash | Shell command execution |
| process | Process management |
| read / write / edit | File operations |
| browser | Browser automation |
| canvas | Live Canvas visualization |
| nodes | Node device control |
| cron | Scheduled tasks |
| sessions | Session management |
| discord / slack | Platform-specific operations |
Tool policy and sandbox:
1 | { |
Typical sandbox default policy: allows bash, process, read, write, edit, sessions_*; denies browser, canvas, nodes, cron, discord, gateway.
Voice features
OpenClaw’s voice capabilities are stronger than most agents:
| Feature | Platform | Notes |
|---|---|---|
| Voice Wake | macOS / iOS | Wake word activates the assistant |
| Talk Mode | Android | Continuous voice conversation |
| TTS | All platforms | Text-to-speech (ElevenLabs + system TTS) |
TTS configuration:
1 | { |
Live Canvas
Live Canvas is OpenClaw’s unique visual workspace, where the agent can drive UI elements:
- Rendered via the A2UI protocol in the macOS app
- The agent can create interactive components
- Suitable for data visualization, dashboards, and workflow display
MCP servers
OpenClaw supports MCP (Model Context Protocol) to connect external tools:
1 | { |
Session management
OpenClaw’s session system supports multiple sessions and inter-session communication:
1 | # Session tools |
Session reset policy configuration:
1 | { |
Cron scheduled tasks
1 | { |
Automation is achieved via Webhooks and Cron:
- Cron Jobs: Execute tasks on a schedule
- Webhooks: Event-driven triggers
- Gmail Pub/Sub: Email-triggered automation
Authentication and security
Authentication configuration:
1 | { |
Security best practices:
- Default DM pairing mode to prevent abuse by strangers
- Non-main sessions run in the sandbox
- Use
openclaw doctorto check security configuration - Read the Gateway exposure runbook before remote exposure
In-session chat commands
When chatting with the assistant in a messaging platform or the control panel, use slash commands to control behavior:
Session control
1 | /status View Gateway and session status |
activation mention: Only responds when @mentioned (default for group chats)activation always: Always responds to all messages
Tips and Best Practices
1. Model selection strategy
OpenClaw’s model configuration supports failover chains:
1 | { |
Recommendations for different scenarios:
| Scenario | Recommended model | Reason |
|---|---|---|
| Code writing | Claude Sonnet/Opus | Strong code generation |
| Daily conversation | GPT-4o | Fast |
| Voice conversation | Gemini 2.0 Flash | Low latency |
| Long document processing | Claude (200K context) | Large context window |
| Local deployment | Ollama + Qwen2.5 | No API cost |
2. Multi-agent architecture
OpenClaw natively supports multi-agent routing, which is one of its core advantages:
1 | { |
Each agent has:
- An independent workspace (SOUL.md, MEMORY.md)
- Independent model configuration
- Independent session history
- An independent skill set
3. Context compaction
1 | { |
4. Thinking depth control
Different tasks suit different thinking depths:
1 | # Simple question, quick answer |
Or switch dynamically in chat:
1 | /think high |
5. Security hardening
Checklist before remote exposure:
- Run
openclaw doctorto check security configuration - Ensure DM pairing mode is enabled (default)
- Configure the
allowFromwhitelist - Enable the sandbox (non-main sessions)
- Set the Gateway authentication token
- Configure firewall rules
1 | { |
6. Performance optimization
1 | { |
humanDelay simulates human typing delay to make replies more natural. Set it to off in automation scenarios.
7. Node devices
OpenClaw’s node apps extend the assistant’s capabilities:
- macOS node: Voice Wake, Live Canvas, Camera capture
- iOS node: Voice conversation, location commands, media understanding
- Android node: Talk Mode, continuous voice
Node apps connect to your Gateway and do not require an additional API Key.
8. Migrating from Hermes
If you previously used Hermes Agent, OpenClaw provides a migration path:
1 | # View the migration guide |
Conversely, migrating from OpenClaw to Hermes:
1 | hermes claw migrate # Interactive migration |
Migration includes: SOUL.md, memories, skills, channel configuration, API Keys, MCP server configuration, etc.
Troubleshooting
Installation issues
Issue: Node.js version too low
1 | node --version # Check version |
Issue: Build scripts blocked after pnpm install
1 | pnpm approve-builds -g # Approve build scripts |
Issue: Docker build OOM (exit 137)
The host has less than 2GB of memory. Use a prebuilt image instead of building locally:
1 | export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest" |
Gateway issues
Gateway not running:
1 | openclaw gateway status # Check status |
Daemon not installed:
1 | openclaw onboard --install-daemon # Reinstall the daemon |
Port conflict:
1 | # Use a different port |
Channel issues
Telegram Bot not responding:
- Check that the Bot Token is correct
- Confirm that
allowFromincludes your user ID - Check the DM pairing status
WhatsApp needs re-pairing:
WhatsApp uses QR code pairing (Baileys), not token migration. Run openclaw configure to re-pair.
Discord Bot only works in DMs:
You need to enable Message Content Intent in the Discord Developer Portal.
Configuration issues
Configuration file syntax error:
OpenClaw uses the JSON5 format, which supports comments and trailing commas. But you still need to ensure the syntax is correct:
1 | # Validate the configuration |
API Key not found:
The key may be stored in multiple locations:
models.providers.*.apiKeyinopenclaw.json- The
~/.openclaw/.envfile - The
envsub-object ofopenclaw.json agents/main/agent/auth-profiles.json
Use openclaw doctor to check all locations.
CLI command cheat sheet
1 | # Installation and update |
OpenClaw vs Hermes: How to choose
| Dimension | Choose OpenClaw | Choose Hermes |
|---|---|---|
| Number of messaging platforms | Need 20+ channels (iMessage, LINE, QQ, etc.) | 15+ channels is enough |
| Voice interaction | Need Voice Wake / Talk Mode | STT + TTS is enough |
| Visualization | Need Live Canvas | Dashboard is enough |
| Language ecosystem | Prefer TypeScript/Node.js | Prefer Python |
| Multi-agent | Native multi-agent routing | Profile system |
| Self-evolution | Skill marketplace | Skills + Curator auto-maintenance |
| Persistent memory | MEMORY.md + USER.md | Structured memory system |
| MCP support | Yes | Yes |
| Migration tool | Migrate in from Hermes | Migrate in from OpenClaw |
Both projects provide migration tools for each other, so you can switch at any time.
Summary
OpenClaw is a feature-rich personal AI assistant framework, whose core advantages are:
- Multi-channel coverage - 20+ messaging platforms, one assistant covering all communication channels
- Multi-agent routing - Different channels routed to different agents, each independent
- Local-first - Data stays on your devices, privacy is guaranteed
- Voice and visualization - Voice Wake, Talk Mode, Live Canvas
- Secure defaults - DM pairing, sandbox, whitelist
Learning path: Install -> Onboarding -> Configure channels -> Test conversation -> Add skills and automation as needed.
Official documentation: https://docs.openclaw.ai
GitHub repository: https://github.com/openclaw/openclaw
Skill marketplace: https://clawhub.ai