README.md
</picture>
OpenClaw is a personal AI assistant you run on your own devices. It answers you on the channels you already use. It can speak and listen on macOS/iOS/Android, and can render a live Canvas you control. The Gateway is just the control plane โ the product is the assistant.
If you want a personal, single-user assistant that feels local, fast, and always-on, this is it.
Supported channels include: WhatsApp, Telegram, Slack, Discord, Google Chat, Signal, iMessage, BlueBubbles, IRC, Microsoft Teams, Matrix, Feishu, LINE, Mattermost, Nextcloud Talk, Nostr, Synology Chat, Tlon, Twitch, Zalo, Zalo Personal, WeChat, QQ, WebChat.
Website ยท Docs ยท Vision ยท DeepWiki ยท Getting Started ยท Updating ยท Showcase ยท FAQ ยท Onboarding ยท Nix ยท Docker ยท Discord
New install? Start here: Getting started
Preferred setup: run openclaw onboard in your terminal.
OpenClaw Onboard guides you step by step through setting up the gateway, workspace, channels, and skills. It is the recommended CLI setup path and works on macOS, Linux, and Windows (via WSL2; strongly recommended).
Works with npm, pnpm, or bun.
</picture>
</a>
</td>
<td align="center" width="16.66%">
<a href="https://github.com/">
<picture>
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/openclaw/openclaw/main/docs/assets/sponsors/github-light.svg">
</picture>
</a>
</td>
<td align="center" width="16.66%">
<a href="https://www.nvidia.com/">
<picture>
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/openclaw/openclaw/main/docs/assets/sponsors/nvidia.svg">
</picture>
</a>
</td>
<td align="center" width="16.66%">
<a href="https://vercel.com/">
<picture>
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/openclaw/openclaw/main/docs/assets/sponsors/vercel-light.svg">
</picture>
</a>
</td>
<td align="center" width="16.66%">
<a href="https://blacksmith.sh/">
<picture>
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/openclaw/openclaw/main/docs/assets/sponsors/blacksmith-light.svg">
</picture>
</a>
</td>
<td align="center" width="16.66%">
<a href="https://www.convex.dev/">
<picture>
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/openclaw/openclaw/main/docs/assets/sponsors/convex-light.svg">
</picture>
</a>
</td>
Subscriptions (OAuth):
Model note: while many providers and models are supported, prefer a current flagship model from the provider you trust and already use. See Onboarding.
Runtime: Node 24 (recommended) or Node 22.14+.
npm install -g openclaw@latest
# or: pnpm add -g openclaw@latest
openclaw onboard --install-daemon
OpenClaw Onboard installs the Gateway daemon (launchd/systemd user service) so it stays running.
Runtime: Node 24 (recommended) or Node 22.14+.
Full beginner guide (auth, pairing, channels): Getting started
openclaw onboard --install-daemon
openclaw gateway --port 18789 --verbose
# Send a message
openclaw message send --target +1234567890 --message "Hello from OpenClaw"
# Talk to the assistant (optionally deliver back to any connected channel: WhatsApp/Telegram/Slack/Discord/Google Chat/Signal/iMessage/BlueBubbles/IRC/Microsoft Teams/Matrix/Feishu/LINE/Mattermost/Nextcloud Talk/Nostr/Synology Chat/Tlon/Twitch/Zalo/Zalo Personal/WeChat/QQ/WebChat)
openclaw agent --message "Ship checklist" --thinking high
Upgrading? Updating guide (and run openclaw doctor).
Models config + CLI: Models. Auth profile rotation + fallbacks: Model failover.
OpenClaw connects to real messaging surfaces. Treat inbound DMs as untrusted input.
Full security guide: Security
Default behavior on Telegram/WhatsApp/Signal/iMessage/Microsoft Teams/Discord/Google Chat/Slack:
dmPolicy="pairing" / channels.discord.dmPolicy="pairing" / channels.slack.dmPolicy="pairing"; legacy: channels.discord.dm.policy, channels.slack.dm.policy): unknown senders receive a short pairing code and the bot does not process their message.openclaw pairing approve <channel> <code> (then the sender is added to a local allowlist store).dmPolicy="open" and include "*" in the channel allowlist (allowFrom / channels.discord.allowFrom / channels.slack.allowFrom; legacy: channels.discord.dm.allowFrom, channels.slack.dm.allowFrom).Run openclaw doctor to surface risky/misconfigured DM policies.
main session, so the agent has full access when it is just you.agents.defaults.sandbox.mode: "non-main" to run non-main sessions inside sandboxes. Docker is the default sandbox backend; SSH and OpenShell backends are also available.bash, process, read, write, edit, sessions_list, sessions_history, sessions_send, sessions_spawn; deny browser, canvas, nodes, cron, discord, gateway./status, /new, /reset, /compact, /think <level>, /verbose on|off, /trace on|off, /usage off|tokens|full, /restart, /activation mention|alwayssessions_list, sessions_history, sessions_sendThe Gateway alone delivers a great experience. All apps are optional and add extra features.
If you plan to build/run companion apps, follow the platform runbooks below.
Note: signed builds required for macOS permissions to stick across rebuilds (see macOS Permissions).
openclaw nodes โฆ.Runbook: iOS connect.
openclaw devices ...).Use pnpm for source checkouts. The repository is a pnpm workspace, and bundled
plugins load from extensions/* during development so their package-local
dependencies and your edits are used directly. Plain npm install at the repo
root is not a supported source setup.
For the dev loop:
git clone https://github.com/openclaw/openclaw.git
cd openclaw
pnpm install
# First run only (or after resetting local OpenClaw config/workspace)
pnpm openclaw setup
# Optional: prebuild Control UI before first startup
pnpm ui:build
# Dev loop (auto-reload on source/config changes)
pnpm gateway:watch
If you need a built dist/ from the checkout (for Node, packaging, or release validation), run:
pnpm build
pnpm ui:build
pnpm openclaw setup writes the local config/workspace needed for pnpm gateway:watch. It is safe to re-run, but you normally only need it on first setup or after resetting local state. pnpm gateway:watch does not rebuild dist/control-ui, so rerun pnpm ui:build after ui/ changes or use pnpm ui:dev when iterating on the Control UI. If you want this checkout to run onboarding directly, use pnpm openclaw onboard --install-daemon.
Note: pnpm openclaw ... runs TypeScript directly (via tsx). pnpm build produces dist/ for running via Node / the packaged openclaw binary, while pnpm gateway:watch rebuilds the runtime on demand during the dev loop.
vYYYY.M.D or vYYYY.M.D-<patch>), npm dist-tag latest.vYYYY.M.D-beta.N), npm dist-tag beta (macOS app may be missing).main, npm dist-tag dev (when published).Switch channels (git + npm): openclaw update --channel stable|beta|dev.
Details: Development channels.
~/.openclaw/workspace (configurable via agents.defaults.workspace).AGENTS.md, SOUL.md, TOOLS.md.~/.openclaw/workspace/skills/<skill>/SKILL.md.Minimal ~/.openclaw/openclaw.json (model + defaults):
{
agent: {
model: "<provider>/<model-id>",
},
}
Full configuration reference (all keys + examples).
OpenClaw was built for Molty, a space lobster AI assistant. ๐ฆ by Peter Steinberger and the community.
See CONTRIBUTING.md for guidelines, maintainers, and how to submit PRs. AI/vibe-coded PRs welcome! ๐ค
Special thanks to Mario Zechner for his support and for pi-mono. Special thanks to Adam Doppelt for the lobster.bot domain.
Thanks to all clawtributors:
<!-- clawtributors:start --> <!-- clawtributors:end --> <!-- clawtributors:hidden:start default-avatar-cache: hidden from the rendered wall because these users still use GitHub's default avatar 13otkmdr aaronveklabs adityashaw2 ai-reviewer-qs alexyyyander alphonse-arianee amitbiswal007 bbblending bbddbb1 bitfoundry-ai bugkillerking carlulsoe charzhou cheeeee dalomeve danielz1z diaspar4u dirbalak djangonavarro220 dobbylorenzbot drcrinkle drickon eddertalmor eengad efe-buken eric-fr4 eronfan evandance extrasmall0 ezhikkk fuller-stack-dev fwhite13 gambletan gejifeng harrington-bot heimdallstrategy heyhudson hougangdev jamesgroat jamtujest jaymishra-source joe2643 joetomasone jonathanworks jonisjongithub jscaldwell55 julbarth junjunjunbong kirillshchetinin kyohwang lailoo latitudeki5223 lawrence3699 liaosvcaf livingghost luijoc lukeboyett lurebat mahanandhi maple778 martingarramon matthew19990919 moktamd moltbot886 mujiannan mukhtharcm mylszd natedenh nicholascyh nickhood1984 nico-hoff nikus-pan nonggialiang oliviareid-svg openclaw-bot pablohrcarvalho patrick-barletta pinghuachiu private-peter prospectore rafaelreis-r rexl2018 rexlunae rhjoh ronak-guliani ryancontent ryanngit rybnikov sandpile sbking shivamraut101 shuicici slats24 slepybear sline socialnerd42069 solodmd sudie-codes sumleo superman32432432 ted-developer tempeste theonejvo tosh-hamburg uli-will-code w-sss whiskyboy wittam-01 xieyongliang yassinebkr yuna78 yuweuii yxjsxy zijiess clawtributors:hidden:end -->