This page provides a high-level introduction to OpenClaw's architecture, core concepts, and system organization. It explains what OpenClaw is, how its major components fit together, and where to find detailed documentation for each subsystem.
For installation and first-time setup, see Getting Started. For architectural details of the Gateway control plane, see Core Concepts. For platform-specific details, see Platform Architecture.
OpenClaw is a multi-platform AI gateway and personal assistant system that orchestrates conversations between messaging channels and AI agents package.json1-4 It connects to messaging apps like WhatsApp, Telegram, Slack, and Discord, providing a unified interface for AI interaction docs/gateway/configuration-reference.md31-190
The system is designed around a Personal Assistant Trust Model, assuming a single trusted operator boundary per gateway docs/help/faq.md184-187 It enables agents to perform real-world tasks through a rich tool ecosystem, including browser automation, filesystem access, and media generation docs/plugins/architecture.md27-44
Sources: package.json1-4 docs/gateway/configuration-reference.md31-190 docs/plugins/architecture.md27-44 docs/help/faq.md184-187
The following diagram illustrates how the high-level system components map to specific code entities and directories within the repository.
Gateway as Central Control Plane
The Gateway is the core engine that manages the lifecycle of the assistant. It handles:
plugin-sdk docs/plugins/sdk-overview.md23-51openclaw.json against a generated schema src/config/schema.base.generated.ts5-10agent-harness and specialized providers docs/concepts/model-providers.md53-60Sources: src/config/schema.base.generated.ts1-10 docs/plugins/sdk-overview.md23-51 docs/concepts/model-providers.md53-60 docs/gateway/configuration-reference.md35-56
The Gateway is the Node.js process serving as the entry point package.json16-17 It manages Agents, which are isolated execution contexts. The system supports multi-agent routing where specific channels or topics can be bound to different models and prompts docs/gateway/configuration-reference.md58-79
A Session represents a specific conversation thread. Channels are the transport layers (like Telegram or WhatsApp). Channels support specific dmPolicy settings like pairing (requiring owner approval) or allowlist docs/gateway/configuration-reference.md39-44
Tools are functional capabilities (like web search, exec, or browser) that the agent can invoke docs/cli/index.md274-336 Skills are modular extensions that teach agents how to use these tools for specific domains docs/cli/index.md145-152 OpenClaw includes a bundled skill library under ./skills package.json46
For a deeper dive, see Core Concepts.
Sources: docs/gateway/configuration-reference.md35-106 docs/cli/index.md145-336 docs/plugins/architecture.md27-44 package.json46
OpenClaw is built for high portability across desktop, server, and mobile environments.
| Platform | Role | Technology |
|---|---|---|
| Server / Desktop | Core Gateway | Node.js (ESM), TypeScript package.json16-53 |
| Web | Control UI | Vite-based Dashboard & WebChat docs/cli/index.md21 |
| iOS / macOS | Native Client | Swift-based Apps apps/macos/Sources/OpenClaw/Resources/Info.plist |
| Android | Native Client | Kotlin & Jetpack Compose apps/android/app/build.gradle.kts1-40 |
| Container | Deployment | Docker / Podman Multi-arch package.json1-15 |
For details on the build system and native integrations, see Platform Architecture.
Sources: package.json1-53 apps/android/app/build.gradle.kts1-40 docs/plugins/sdk-overview.md53-112 docs/cli/index.md327-336
OpenClaw operates on a Personal Assistant Trust Model. Because the assistant has access to sensitive local tools (like shell execution), it defaults to a "fail-closed" posture:
openclaw security audit to detect filesystem permissions, permissive exec approvals, and gateway exposure docs/cli/index.md119-120Sources: docs/gateway/configuration-reference.md35-56 docs/cli/index.md119-281 docs/help/faq.md184-187
The recommended way to set up OpenClaw is via the interactive onboarding wizard.
This command guides you through:
For a full walkthrough, see Getting Started.
Sources: docs/help/faq.md146-169 docs/concepts/model-providers.md16-20 docs/gateway/configuration-reference.md107-190