1. Project Overview & Quickstart (openclaw/LICENSE)
LICENSE
Open-source repository openclaw/LICENSE
Repository Details
- Repository: openclaw/LICENSE
- Primary Language: Code
Note: High-volume repository documentation is actively indexed and synchronized by YakaAI.
2. Official Technical Reference & Guides (openclaw/docs)
File: README.md
openclaw-docs
Mirror repo for the published OpenClaw docs site.
Source of truth lives in openclaw/openclaw, under docs/.
How it works
- English docs are authored in
openclaw/openclaw. openclaw/openclaw/.github/workflows/docs-sync-publish.ymlmirrors the docs tree into this repo.- This repo stores the published docs tree plus generated locale output.
openclaw/docs/.github/workflows/translate-incremental.ymldebounces normal docs changes, whiletranslate-all.ymlhandles full reconciliation for glossary changes, weekly schedule, release dispatch, or manual dispatch..github/workflows/r2-pages.ymlbuilds the full unpruned static site and uploads changed objects to Cloudflare R2..github/workflows/pages.ymldeploys the small Cloudflare Worker router that preserves clean URLs and markdown negotiation while reading docs from R2.
Translation behavior
- Locale pages under
docs/<locale>/**are generated output. - Each translated page stores
x-i18n.source_hash. - The translate workflow computes a pending file list before calling the model.
- If no English source hashes changed, the workflow skips the expensive translation step entirely.
- If files changed, only the pending files are translated.
- The workflow retries transient model-format failures.
- Locale outputs are uploaded as artifacts first, then committed together by the finalizer.
- Incremental and full translation use separate concurrency lanes, so small docs edits do not cancel weekly or glossary-triggered full reconciliation.
- The weekly scheduled run uses full reconciliation mode to repair missed or flaky locale updates.
Editing rules
- Do not treat this repo as the primary place for English doc edits.
- Make English doc changes in
openclaw/openclaw, then let sync copy them here. - Locale pages under
docs/<locale>/**are generated output. .openclaw-sync/source.jsonrecords whichopenclaw/openclawcommit this mirror was synced from.
Static site build
npm run docs:buildrenders the mirrored Mintlify-flavored docs intodist/docs-site.npm run docs:build:cloudflareis the legacy Worker Static Assets fallback build.npm run docs:build:r2renders the full unpruned site and preparesdist/docs-r2-manifest.jsonfor R2 upload.npm run docs:r2:uploaduploads only changed R2 objects, reports cache hits/misses, and refuses to turn a broken remote manifest read into a full-tree reupload.- Manual R2 refreshes audit objects before upload; unchanged objects remain cache hits, and transient HEAD failures fall back to the signed manifest.
R2_UPLOAD_PUT_ALL=1is the emergency escape hatch for intentionally rewriting every object. npm run docs:smokechecks representative English and locale pages plus the Pagefind search bundle.npm run docs:checkruns both steps.- The generated site includes the language picker and static full-text search via Pagefind.
- Cloudflare deploys
workers/docs-router.ts, which serves slashless page URLs, English markdown responses for.mdpaths orAccept: text/markdown, and/api/searchthrough theDOCS_BUCKETR2 binding. - Cloudflare hosting details and limitations are documented in
CLOUDFLARE.md.
Secrets
OPENCLAW_DOCS_SYNC_TOKENlives inopenclaw/openclawand lets the source repo push into this repo.OPENCLAW_DOCS_I18N_OPENAI_API_KEYlives in this repo and powers locale translation refreshes.CLOUDFLARE_API_TOKENlives in this repo and deploys thedocs.openclaw.airouter.- R2 uploads verify
CLOUDFLARE_API_TOKEN, try temporary R2 credentials, and normally fall back to the token-derived direct S3 credential form.OPENCLAW_R2_ACCESS_KEY_ID/OPENCLAW_R2_SECRET_ACCESS_KEYare only fallback upload credentials when the Cloudflare token cannot be verified.
File: docs/index.md
summary: "OpenClaw is a multi-channel gateway for AI agents that runs on any OS."
read_when:
- Introducing OpenClaw to newcomers
title: "OpenClaw"
OpenClaw ๐ฆ
"EXFOLIATE! EXFOLIATE!" โ A space lobster, probably
Browse docs
Mobile browsers may show the section menu without the full desktop tab bar. Use
these hub links to reach the same top-level docs areas from the page body.
What is OpenClaw?
OpenClaw is a self-hosted gateway that connects your favorite chat apps โ Discord, Google Chat, iMessage, Matrix, Microsoft Teams, Signal, Slack, Telegram, WhatsApp, Zalo, and more via channel plugins โ to AI coding agents. You run a single Gateway process on your own machine (or a server), and it becomes the bridge between your messaging apps and an always-available AI assistant.
Who is it for? Developers and power users who want a personal AI assistant they can message from anywhere โ without giving up control of their data or relying on a hosted service.
What makes it different?
- Self-hosted: runs on your hardware, your rules
- Multi-channel: one Gateway serves every configured channel plugin simultaneously
- Agent-native: built for coding agents with tool use, sessions, memory, and multi-agent routing
- Open source: MIT licensed, community-driven
What do you need? Node 26 (recommended), or another supported release: Node 22.22.3+, Node 24.15+, or Node 25.9+. You also need an API key from your chosen provider and 5 minutes. For best quality and security, use the strongest latest-generation model available.
How it works
flowchart LR
A["Chat apps + plugins"] --> B["Gateway"]
B --> C["OpenClaw agent"]
B --> D["CLI"]
B --> E["Web Control UI"]
B --> F["macOS app"]
B --> G["iOS and Android nodes"]The Gateway is the single source of truth for sessions, routing, and channel connections.
Key capabilities
Quick start
```bash
npm install openclaw@latest --allow-scripts=openclaw
```
On npm 11.15 and earlier, omit `--allow-scripts=openclaw`.```bash
openclaw dashboard
```
Or connect a channel ([Telegram](/channels/telegram) is fastest) and chat from your phone.Need the full install and dev setup? See Getting Started.
Dashboard
Open the browser Control UI after the Gateway starts.
- Local default: http://127.0.0.1:18789/
- Remote access: Web surfaces and Tailscale
Configuration (optional)
Config lives at ~/.openclaw/openclaw.json.
- If you do nothing, OpenClaw uses the bundled OpenClaw agent runtime; DMs share the agent's main session, and each group chat gets its own session.
- If you want to lock it down, start with
channels.whatsapp.allowFromand (for groups) mention rules.
Example:
{
channels: {
whatsapp: {
allowFrom: ["+15555550123"],
groups: { "*": { requireMention: true } },
},
},
messages: { groupChat: { mentionPatterns: ["@openclaw"] } },
}