OpenClaw, the self-hosted AI assistant formerly called Clawdbot and then Moltbot, installs with one command or a desktop app. The installer script detects your operating system, installs Node.js if it's missing, installs OpenClaw and launches onboarding (OpenClaw install docs). As of September 24, 2026, these are the commands:
# macOS, Linux or WSL2
curl -fsSL https://openclaw.ai/install.sh | bash# Windows (PowerShell)
iwr -useb https://openclaw.ai/install.ps1 | iexIn onboarding, pick Quick start. It leaves the Gateway running in that terminal, so press Ctrl+C once the dashboard opens and run openclaw gateway install to turn it into a background service. openclaw gateway status should then report the Gateway listening on port 18789.
If you're following a Clawdbot tutorial from early 2026, skip its npm install -g clawdbot step. That package hasn't been updated since January 25, 2026. Install the current openclaw package instead.
Pick the install method that fits
Every method ends with the same Gateway: the always-on process that routes messages and keeps your chat apps connected (Gateway runbook). The methods differ in who manages Node.js and which machine the Gateway lives on. The official install page puts the install itself at about two minutes (openclaw.ai/install). Signing in to a model provider during onboarding can take longer.
| If you… | Use | What to expect |
|---|---|---|
| Are fine with a terminal on macOS or Linux | Installer script | Installs Node if needed, then starts onboarding |
| Use Windows | Windows Hub, PowerShell or WSL2 | Three supported paths; the Hub app needs no terminal |
| Would rather skip the terminal on macOS or Linux | Desktop app | Sets up the Gateway, chat and onboarding for you |
| Already manage Node yourself, for example with nvm | npm, pnpm or bun | Needs Node 24.16+ or 26.1+ before you start |
| Want the assistant to answer while your laptop is closed | Linux server, VPS or Raspberry Pi | CLI install plus a systemd service |
| Want an isolated, throwaway environment | Docker | Needs Docker Compose v2 |
| Only want to try it once | npx openclaw@latest | The Gateway runs until you press Ctrl+C |
System requirements: what you need before you install
| Requirement | As of September 24, 2026 |
|---|---|
| Operating system | macOS 15 or later, Windows 10 or 11, or Linux (the Linux desktop app is x64 only) |
| Node.js | 24.16 or later on the 24.x line, or 26.1 or later; Node 26 is recommended |
| AI access | A Claude Code or Codex CLI login, or an API key from a model provider |
| pnpm | Only needed to build from source |
| Docker (optional) | Docker Desktop or Docker Engine with Docker Compose v2 |
These come from the install docs, the official install page and getting started. The terminal installer runs on Debian, Ubuntu, Fedora, Arch and Raspberry Pi OS.
You usually don't need to install Node first. When it's missing, the installer script provisions Node 26 on macOS and Node 24 LTS on Linux. If you manage Node yourself, check node --version. Node 22 is too old, and Node 25 isn't supported either: the openclaw package declares >=24.16.0 <25 || >=26.1.0 (npm). Node 22.12 was the floor for the January 2026 clawdbot package, not for current OpenClaw releases.
The install docs don't set a general RAM minimum. The official figures that do exist are narrower. Docker needs at least 6 GB of RAM, but only when you build the image locally from source. The Raspberry Pi guide lists 1 GB of RAM, one CPU core, 500 MB of free disk and a 64-bit OS as its minimum, and recommends 2 GB or more. A small machine is enough because, with a cloud model provider, the model runs on the provider's servers and your machine only hosts the Gateway.
Phones can't host the Gateway. The Android and iPhone apps are companions that connect to a Gateway running somewhere else (more in the FAQ).
Install on macOS, Linux (including Ubuntu) or WSL2
The installer script is the method the docs recommend for terminal users. On Windows, set up WSL2 with systemd first (WSL2 steps), then run the same command inside your distro.
Run the installer script
curl -fsSL https://openclaw.ai/install.sh | bashOn macOS, the first run may ask for your administrator password so it can install Homebrew.
To install without starting onboarding, for example over SSH or in a provisioning script, add --no-onboard and run onboarding when you're ready:
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-onboard
openclaw onboard --install-daemonIf you'd rather read the script before it runs, download it with curl -fsSL https://openclaw.ai/install.sh -o install.sh, open it, then run bash install.sh.
Finish onboarding
The installer opens the onboarding wizard (getting started):
- Quick start looks for an existing Claude Code or Codex CLI login or a provider API key. It verifies what it finds with a real completion, saves the config and opens the web dashboard. If nothing it finds works, it switches to manual provider setup.
- Custom setup walks through every guided option instead.
Change settings later with openclaw configure. openclaw onboard --classic opens the classic step-by-step wizard.
Keep the Gateway running
Quick start keeps the Gateway in the foreground, so it stops when you close the terminal. Press Ctrl+C and install it as a service. Your config stays saved.
openclaw gateway installThis creates a LaunchAgent on macOS, a systemd user unit on Linux and WSL2, or a Scheduled Task on native Windows. If Windows denies task creation, OpenClaw falls back to a login item in your Startup folder. openclaw onboard --install-daemon does the same job during onboarding.
On a Linux machine you only reach over SSH, also enable lingering so the service keeps running after you log out (Gateway runbook):
sudo loginctl enable-linger $(whoami)Check that the install worked
Run these checks in order (install docs, getting started):
| Command | A good result | If it fails |
|---|---|---|
openclaw --version | Prints a version number | "command not found" almost always means npm's global bin folder isn't on your PATH |
openclaw doctor | Reports no config problems | Apply the fixes it suggests |
openclaw gateway status | The Gateway is running and listening on port 18789 | Run openclaw gateway install again, then see the port guide below |
openclaw dashboard | The Control UI opens in your browser | Check openclaw gateway status first |
Then type a message in the Control UI chat. An AI reply means your provider login or key works. Finally, restart the machine and run openclaw gateway status again. If the Gateway came back on its own, the service is set up correctly.
For a PATH problem, these three commands show where the chain breaks:
node -v # Is Node installed?
npm prefix -g # Where do global packages go?
echo "$PATH" # Is that bin folder on PATH?When you can't tell which part is failing, run openclaw triage. It runs read-only health checks and writes a sanitized summary that it can hand to Claude Code, Codex CLI or the built-in OpenClaw agent. Nothing leaves your machine until you pick an agent, and secrets, tokens and raw logs stay out of the summary.
For specific symptoms, use OpenClaw Port Not Listening when the Gateway won't bind to port 18789, OpenClaw API key errors when onboarding can't verify your provider, and the OpenClaw error troubleshooting center for error codes.
Install on Windows
Windows has three supported paths (Windows docs). The January 2026 Clawdbot README strongly recommended WSL2 on Windows. Native Windows is now supported as well.
| Path | Choose it when | What it sets up |
|---|---|---|
| Windows Hub app | You want a desktop app with setup, tray status and chat | An app-owned WSL Gateway, configured for you |
| PowerShell installer | You want the CLI and Gateway directly in Windows | A native Gateway started by a Scheduled Task |
| WSL2 | You want the most Linux-compatible Gateway | A systemd service inside your own distro |
Windows Hub app
Windows Hub runs on Windows 10 20H2 or later and Windows 11. It installs without administrator rights and ships as signed x64 and ARM64 installers.
- Download
OpenClawCompanion-Setup-x64.exe, orOpenClawCompanion-Setup-arm64.exeon an ARM PC, from the install page. - Launch OpenClaw Companion from the Start menu. With no saved Gateway, setup opens.
- Choose Set up locally. The app creates its own
OpenClawGatewayWSL distro, installs the Gateway inside it and pairs itself. An existing Ubuntu distro isn't touched. - When the tray icon turns green, open Command Center from the tray to confirm the connection.
Local setup relies on WSL. If it fails, the usual causes are WSL being disabled, virtualization being blocked, or a network failure while the Gateway package installs. The setup log is at %LOCALAPPDATA%\OpenClawTray\Logs\Setup\easy-setup-latest.txt.
PowerShell installer
iwr -useb https://openclaw.ai/install.ps1 | iexFrom Command Prompt, the install page's version does the same job: powershell -c "irm https://openclaw.ai/install.ps1 | iex". To skip onboarding, run:
& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1 ))) -NoOnboardAfter onboarding, openclaw gateway install registers a Scheduled Task named "OpenClaw Gateway". It starts the Gateway through a hidden wrapper, so the background Gateway doesn't open a visible console window. Check the result with:
openclaw --version
openclaw doctor
openclaw gateway status --jsonWSL2
Install WSL from PowerShell:
wsl --install
# or pick a distro explicitly
wsl --install -d Ubuntu-24.04Inside the distro, enable systemd so openclaw gateway install can create its service:
sudo tee /etc/wsl.conf >/dev/null <<'EOF'
[boot]
systemd=true
EOFThat command replaces any existing /etc/wsl.conf. If you already have one, add the [boot] section by hand instead. Restart WSL with wsl --shutdown in PowerShell, reopen the distro and run the Linux installer:
curl -fsSL https://openclaw.ai/install.sh | bash
# after onboarding, press Ctrl+C if the Gateway is still in the foreground
openclaw gateway install
openclaw gateway statusTo start the Gateway before anyone signs in to Windows, the Windows docs add lingering, the dbus-x11 package and a boot-time scheduled task.
Install the desktop app on macOS or Linux
The official install page marks the desktop app as the recommended option on each platform. It installs the Gateway, chat and setup for you, with no terminal needed (openclaw.ai/install).
macOS: download the app from the install page, or the OpenClaw-<version>.dmg file from GitHub releases. Install and launch OpenClaw.app. It can set up a local Gateway on first launch or connect to a Gateway you already run elsewhere.
Linux: download the x64 AppImage or .deb package. Install the .deb with sudo apt install ./OpenClaw-<version>-amd64.deb, or make the AppImage executable and run it. On first launch, choose Get started, then On this computer to install anything missing and start the Gateway as a systemd user service (Linux docs).
The AppImage needs glibc 2.35 or newer. Ubuntu 22.04 and Debian 12 qualify. RHEL 9 and Rocky Linux 9 ship glibc 2.34 and can't run it, so use a CLI install there. The AppImage also expects FUSE 2 (libfuse2, or libfuse2t64 on Ubuntu 24.04 and later). Without FUSE, start it with APPIMAGE_EXTRACT_AND_RUN=1.
Install with npm, pnpm or bun
Use this method if you already manage Node yourself. Check node --version first: you need 24.16 or later on the 24.x line, or 26.1 or later (install docs).
# npm 12, or npm 11.16 and later
npm install -g openclaw@latest --allow-scripts=openclaw
openclaw onboard --install-daemonnpm 12 blocks unapproved install scripts by default. Without the flag, it reports OpenClaw's preinstall and postinstall steps as blocked. On npm 11.15 and earlier, drop --allow-scripts=openclaw, because those versions don't have the option. Check your version with npm --version. The npm approve-scripts openclaw command that npm 11.16 suggests fails for global installs with ENOMATCH.
For pnpm and bun:
# pnpm
pnpm add -g --allow-build=openclaw openclaw@latest
openclaw onboard --install-daemon
# bun 1.4 or later
bun add -g --trust openclaw@latest
bun run --bun openclaw onboard --install-daemon --daemon-runtime bunNode remains OpenClaw's primary runtime. The second bun command runs onboarding and the managed Gateway under Bun.
Everything in one folder. curl -fsSL https://openclaw.ai/install-cli.sh | bash keeps OpenClaw and its own copy of Node under a local prefix such as ~/.openclaw, and changes nothing else on macOS, Linux or WSL2. It skips onboarding, so run openclaw onboard --install-daemon afterwards.
From source. For contributors or anyone who wants to run a local checkout:
git clone https://github.com/openclaw/openclaw.git
cd openclaw
corepack enable
pnpm install && pnpm build && pnpm ui:build
pnpm add --global "openclaw@link:$PWD"
openclaw onboard --install-daemonIf pnpm says its global bin directory isn't on PATH, run pnpm setup, reopen the shell and retry.
Try it once. npx openclaw@latest runs onboarding and a foreground Gateway without a global install (getting started). The Gateway stops when you press Ctrl+C, and your config stays saved for a proper install later.
Run OpenClaw 24/7 on a server, VPS or Raspberry Pi
A Gateway on a laptop only answers while the laptop is awake. For round-the-clock replies, run it on an always-on Linux host and reach it from your laptop or phone. The Gateway on that host owns your state and workspace, so back the host up regularly (Linux server guide).
You don't need a Mac mini for this. The official Linux server guide lists Azure, DigitalOcean, Fly.io, GCP, Hetzner, Hostinger, Northflank, Oracle Cloud, Railway, Render and Raspberry Pi, among others, and notes that AWS works too. A Mac only matters for macOS-only features such as iMessage, and the docs cover macOS VMs for that case.

On a public VPS, decide how you'll administer the box before you install anything, for example through Tailscale or hardened SSH. Then install the CLI, run onboarding with the service, and enable lingering:
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-onboard
openclaw onboard --install-daemon
sudo loginctl enable-linger $(whoami)On a headless machine, the Raspberry Pi guide recommends a provider API key over OAuth sign-in.
Keep the Gateway on loopback and reach the dashboard through an SSH tunnel. From your laptop:
ssh user@your-server 'openclaw dashboard --no-open' # prints the dashboard URL
ssh -N -L 18789:127.0.0.1:18789 user@your-server # leave this runningOpen the printed URL in your local browser, or open http://127.0.0.1:18789/ and sign in with the Gateway token (Linux docs, Raspberry Pi guide). If you bind the Gateway to your LAN or tailnet instead, OpenClaw requires a shared secret (gateway.auth.token or gateway.auth.password). On the server, openclaw gateway status and systemctl --user status openclaw-gateway.service confirm the service is up.
For a Raspberry Pi, the Raspberry Pi guide assumes 64-bit Raspberry Pi OS and a Pi 4 or 5 with at least 2 GB of RAM (4 GB recommended). Add swap on boards with 2 GB or less. A USB SSD is faster than an SD card and survives more write cycles.
Install with Docker and Docker Compose
Docker is optional. The Docker docs position it for an isolated, throwaway Gateway or a host where you don't want local installs. If you already develop on your own machine, the docs point you to the normal installer instead.
You need Docker Desktop or Docker Engine with Docker Compose v2, plus enough disk for images and logs. The 6 GB RAM requirement applies only when you build the image from source, and the pre-built image skips that build:
git clone https://github.com/openclaw/openclaw.git
cd openclaw
export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"
./scripts/docker/setup.shWithout the export line, the script builds openclaw:local from source. Either way, it runs onboarding: it asks for your provider API keys, writes a generated Gateway token to .env and starts the Gateway with Docker Compose. Open http://127.0.0.1:18789/ and paste that token into Settings.
Day-to-day commands, run from the repo root:
# Print the dashboard URL again
docker compose run --rm openclaw-cli dashboard --no-open
# Liveness check
curl -fsS http://127.0.0.1:18789/healthz
# Add Telegram (use --channel discord for Discord)
docker compose run --rm openclaw-cli channels add --channel telegram --token "<token>"
# Move to a newer image
docker compose pull openclaw-gateway openclaw-cli
docker compose up -d openclaw-gatewayStick to ghcr.io/openclaw/openclaw or its Docker Hub mirror openclaw/openclaw. The docs advise against unofficial mirrors because they don't follow OpenClaw's release timing. On a VPS, read the Docker docs' security hardening notes before exposing anything, especially the part about the DOCKER-USER firewall chain.
Coming from Clawdbot, Moltbot or an early OpenClaw
You installed the clawdbot or moltbot package
Clawdbot became Moltbot and then OpenClaw in January 2026 (OpenClaw announcement). The npm packages under the old names stayed behind. As of September 24, 2026:
| npm package | Latest version | Published |
|---|---|---|
clawdbot | 2026.1.24-3 | January 25, 2026 |
moltbot | 0.1.0, which ships no command | January 27, 2026 |
openclaw | 2026.9.6 | September 23, 2026 |
So npm install -g clawdbot installs a January build, not OpenClaw. A January install can also leave an old Gateway service and a settings folder behind:

To move over:
- Check what's installed. If
clawdbot --versionanswers with a 2026.1.x version, the old package is still on your machine. - Clear the old Gateway first. The January Clawdbot Gateway also used port 18789 (clawdbot README), so a leftover service can keep the new Gateway from binding to that port. On Linux and WSL2, the uninstall docs say
openclaw gateway uninstalldetects and removes a pre-renameclawdbot-gateway.serviceunit. Install without onboarding, clear the old unit, then onboard (commands below). On macOS, runlsof -i :18789before onboarding, and if an old Clawdbot process holds the port, follow OpenClaw Port Not Listening. - Set OpenClaw up as a new install. The official migration guide covers imports from Claude Code, Claude Desktop and Hermes, and moving OpenClaw between machines. It has no path for Clawdbot- or Moltbot-era state. Run onboarding, sign in to your provider again and reconnect your chat apps. The January package kept its settings in
~/.clawdbot, while OpenClaw uses~/.openclaw, so leave the old folder alone until the new setup does everything you need. - Remove the old CLI when you no longer need it:
npm rm -g clawdbot.
The Linux and WSL2 sequence for step 2:
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-onboard
openclaw gateway uninstall # also removes a pre-rename clawdbot-gateway.service
openclaw onboard --install-daemonYou installed OpenClaw before June 2026
Don't jump straight to the latest release. The official updating guide tells installs older than June 2026 to go through 2026.9.5 first. That bridge release still imports older task, flow and plugin databases and repairs retired config keys, and current releases no longer do. Back up your state directory (~/.openclaw by default) and make sure Node is 24.16+ on the 24.x line or 26.1+.
The commands below are for an npm install with the managed Gateway service. The installer script installs through npm by default, so they cover script installs too. If you run the Gateway in the foreground or under your own supervisor, stop and start it that way instead. In Windows PowerShell, run each command separately rather than chaining them with &&.
openclaw gateway stop && \
npm install -g openclaw@2026.9.5 --allow-scripts=openclaw && \
openclaw --version && \
openclaw doctor --fixConfirm the version reads 2026.9.5 and that Doctor imported what you need, then resolve any failed imports it reports. After that, move to the current release:
npm install -g openclaw@latest --allow-scripts=openclaw && \
openclaw doctor --fix && \
openclaw gateway start && \
openclaw gateway status --deepOn npm 11.15 or earlier, leave out --allow-scripts=openclaw. For pnpm or bun installs, the updating guide gives the matching commands.
What to set up after installing OpenClaw
- Connect a chat app. Telegram is the quickest channel because it only needs a bot token (getting started). Follow the OpenClaw Telegram setup guide. Discord, Slack, WhatsApp, Signal and more are in the official channel docs.
- Use Kimi models. See OpenClaw + Kimi K3: Setup and Migration from Retired K2.5.
- Let the agent drive a browser. See the OpenClaw Browser Relay guide.
FAQ
Is Clawdbot the same as OpenClaw?
Yes. Clawdbot was renamed Moltbot and then OpenClaw in January 2026. Install OpenClaw with the installer script or the openclaw npm package. The clawdbot npm package stops at a January 2026 build.
Can I install OpenClaw on Android or iPhone?
Not the Gateway. The official Android app, from Google Play or a signed APK, is a companion node that "requires a running OpenClaw Gateway". The iPhone app on the App Store connects to a Gateway over your LAN or tailnet. Install OpenClaw on macOS, Windows or Linux first, then pair the phone.
How do I update OpenClaw?
Run openclaw update. It detects whether you installed with npm, pnpm, Bun or git, checks the new version while the old Gateway keeps serving, then activates and verifies it (updating guide). Installs older than June 2026 need the 2026.9.5 bridge first. Docker installs update by pulling the new image and recreating the Gateway container.
How do I uninstall OpenClaw?
Run openclaw uninstall. The prompt preselects only the Gateway service. For a complete removal, also select state, workspace and app, or run openclaw uninstall --all. openclaw uninstall --dry-run --all previews what would be removed. Then remove the CLI with the tool that installed it: npm rm -g openclaw for installer-script and npm installs, or pnpm remove -g openclaw or bun remove -g openclaw (uninstall docs).



