6.4 KiB
summary, read_when, title
| summary | read_when | title | |||
|---|---|---|---|---|---|
| Install OpenClaw - installer script, npm/pnpm/bun, from source, Docker, and more |
|
Install |
System requirements
- Node 24 (recommended) or Node 22.19+ - the installer script handles this automatically
- macOS, Linux, or Windows - both native Windows and WSL2 are supported; WSL2 is more stable. See Windows.
pnpmis only needed if you build from source
Recommended: installer script
The fastest way to install. It detects your OS, installs Node if needed, installs OpenClaw, and launches onboarding.
```bash curl -fsSL https://openclaw.ai/install.sh | bash ``` ```powershell iwr -useb https://openclaw.ai/install.ps1 | iex ```To install without running onboarding:
```bash curl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-onboard ``` ```powershell & ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -NoOnboard ```For all flags and CI/automation options, see Installer internals.
Alternative install methods
Local prefix installer (install-cli.sh)
Use this when you want OpenClaw and Node kept under a local prefix such as
~/.openclaw, without depending on a system-wide Node install:
curl -fsSL https://openclaw.ai/install-cli.sh | bash
It supports npm installs by default, plus git-checkout installs under the same prefix flow. Full reference: Installer internals.
Already installed? Switch between package and git installs with
openclaw update --channel dev and openclaw update --channel stable. See
Updating.
npm, pnpm, or bun
If you already manage Node yourself:
```bash npm install -g openclaw@latest openclaw onboard --install-daemon ```<Note>
The hosted installer clears npm freshness filters such as `min-release-age`
for the OpenClaw package install. If you install manually with npm, your own
npm policy still applies.
</Note>
```bash
pnpm add -g openclaw@latest
pnpm approve-builds -g
openclaw onboard --install-daemon
```
<Note>
pnpm requires explicit approval for packages with build scripts. Run `pnpm approve-builds -g` after the first install.
</Note>
```bash
bun add -g openclaw@latest
openclaw onboard --install-daemon
```
<Note>
Bun is supported for the global CLI install path. For the Gateway runtime, Node remains the recommended daemon runtime.
</Note>
From source
For contributors or anyone who wants to run from a local checkout:
git clone https://github.com/openclaw/openclaw.git
cd openclaw
pnpm install && pnpm build && pnpm ui:build
pnpm link --global
openclaw onboard --install-daemon
Or skip the link and use pnpm openclaw ... from inside the repo. See Setup for full development workflows.
Install from the GitHub main checkout
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --install-method git --version main
Containers and package managers
Containerized or headless deployments. Rootless container alternative to Docker. Declarative install via Nix flake. Automated fleet provisioning. CLI-only usage via the Bun runtime.Verify the install
openclaw --version # confirm the CLI is available
openclaw doctor # check for config issues
openclaw gateway status # verify the Gateway is running
If you want managed startup after install:
- macOS: LaunchAgent via
openclaw onboard --install-daemonoropenclaw gateway install - Linux/WSL2: systemd user service via the same commands
- Native Windows: Scheduled Task first, with a per-user Startup-folder login item fallback if task creation is denied
Hosting and deployment
Deploy OpenClaw on a cloud server or VPS:
Any Linux VPS. Shared Docker steps. K8s deployment. Deploy on Fly.io. Hetzner deployment. Google Cloud deployment. Azure deployment. Railway deployment. Render deployment. Northflank deployment.Update, migrate, or uninstall
Keep OpenClaw up to date. Move to a new machine. Remove OpenClaw completely.Troubleshooting: openclaw not found
If the install succeeded but openclaw is not found in your terminal:
node -v # Node installed?
npm prefix -g # Where are global packages?
echo "$PATH" # Is the global bin dir in PATH?
If $(npm prefix -g)/bin is not in your $PATH, add it to your shell startup file (~/.zshrc or ~/.bashrc):
export PATH="$(npm prefix -g)/bin:$PATH"
Then open a new terminal. See Node setup for more details.