mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-05 05:01:44 +00:00
The documented `npm install -g openclaw@latest` does not run OpenClaw's preinstall/postinstall steps on npm 12, which blocks package lifecycle scripts by default. Nothing in the install docs mentioned this. Adds a note to the npm tab with the working command. The pnpm tab already documents its equivalent (`pnpm approve-builds -g`), so npm was the only tab without one. Scoped to npm 12 rather than 11.16: `strict-allow-scripts` is undefined on npm 11.12.1 and false on both 11.16.0 and 12.0.1, and only npm 12 reports the scripts as "blocked because they are not covered by allowScripts". npm 11.16.x warns that they are "not yet covered" and still runs them, so the note describes it as warning-only and keeps the ENOMATCH caveat about the approve-scripts remedy it suggests. Closes #114665 Co-authored-by: Claude Opus 5 <noreply@anthropic.com> Co-authored-by: Peter Steinberger <steipete@gmail.com>
227 lines
7.1 KiB
Markdown
227 lines
7.1 KiB
Markdown
---
|
|
summary: "Install OpenClaw - installer script, npm/pnpm/bun, from source, Docker, and more"
|
|
read_when:
|
|
- You need an install method other than the Getting Started quickstart
|
|
- You want to deploy to a cloud platform
|
|
- You need to update, migrate, or uninstall
|
|
title: "Install"
|
|
---
|
|
|
|
## System requirements
|
|
|
|
- **Node 22.22.3+, 24.15+, or 25.9+** - Node 26 is the recommended default; the installer script provisions it automatically when Node is missing.
|
|
- **macOS, Linux, or Windows** - Windows users can start with the native Windows Hub app, the PowerShell CLI installer, or a WSL2 Gateway. See [Windows](/platforms/windows).
|
|
- `pnpm` is 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.
|
|
|
|
<Note>
|
|
Windows desktop users can also install the native [Windows Hub](/platforms/windows#recommended-windows-hub) companion app, which includes setup, tray status, chat, node mode, and local MCP mode.
|
|
</Note>
|
|
|
|
<Tabs>
|
|
<Tab title="macOS / Linux / WSL2">
|
|
```bash
|
|
curl -fsSL https://openclaw.ai/install.sh | bash
|
|
```
|
|
</Tab>
|
|
<Tab title="Windows (PowerShell)">
|
|
```powershell
|
|
iwr -useb https://openclaw.ai/install.ps1 | iex
|
|
```
|
|
</Tab>
|
|
</Tabs>
|
|
|
|
To install without running onboarding:
|
|
|
|
<Tabs>
|
|
<Tab title="macOS / Linux / WSL2">
|
|
```bash
|
|
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-onboard
|
|
```
|
|
</Tab>
|
|
<Tab title="Windows (PowerShell)">
|
|
```powershell
|
|
& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -NoOnboard
|
|
```
|
|
</Tab>
|
|
</Tabs>
|
|
|
|
For all flags and CI/automation options, see [Installer internals](/install/installer).
|
|
|
|
## 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:
|
|
|
|
```bash
|
|
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](/install/installer#install-clish).
|
|
|
|
Already installed? Switch between package and git installs with
|
|
`openclaw update --channel dev` and `openclaw update --channel stable`. See
|
|
[Updating](/install/updating#switch-between-npm-and-git-installs).
|
|
|
|
### npm, pnpm, or bun
|
|
|
|
If you already manage Node yourself:
|
|
|
|
<Tabs>
|
|
<Tab title="npm">
|
|
```bash
|
|
npm install -g openclaw@latest
|
|
openclaw onboard --install-daemon
|
|
```
|
|
|
|
<Note>
|
|
npm 12 blocks package lifecycle scripts by default, so the command above
|
|
skips OpenClaw's `preinstall` and `postinstall` steps — npm reports them
|
|
as `blocked because they are not covered by allowScripts`. Allow them
|
|
explicitly:
|
|
|
|
```bash
|
|
npm install -g openclaw@latest --allow-scripts openclaw
|
|
```
|
|
|
|
npm 11.16.x only warns that the scripts are `not yet covered by
|
|
allowScripts` and still runs them. If you want to clear that warning, be
|
|
aware that the `npm approve-scripts openclaw` command it suggests does not
|
|
work for a global install — it fails with `ENOMATCH No installed packages
|
|
match: openclaw`. npm 11.12 and earlier have no such policy.
|
|
</Note>
|
|
|
|
<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>
|
|
|
|
</Tab>
|
|
<Tab title="pnpm">
|
|
```bash
|
|
pnpm add -g --allow-build=openclaw openclaw@latest
|
|
openclaw onboard --install-daemon
|
|
```
|
|
|
|
<Note>
|
|
pnpm requires explicit approval for packages with build scripts. `approve-builds -g` is not supported for global installs, so pass `--allow-build=openclaw` on the `pnpm add -g` command instead.
|
|
</Note>
|
|
|
|
</Tab>
|
|
<Tab title="bun">
|
|
```bash
|
|
bun add -g openclaw@latest
|
|
openclaw onboard --install-daemon
|
|
```
|
|
|
|
<Note>
|
|
Bun can install the global package, but the resulting `openclaw` executable requires a supported Node runtime because OpenClaw state uses `node:sqlite`.
|
|
</Note>
|
|
|
|
</Tab>
|
|
</Tabs>
|
|
|
|
### From source
|
|
|
|
For contributors or anyone who wants to run from a local checkout:
|
|
|
|
```bash
|
|
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](/start/setup) for full development workflows.
|
|
|
|
### Install from the GitHub main checkout
|
|
|
|
```bash
|
|
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --install-method git --version main
|
|
```
|
|
|
|
### Containers and package managers
|
|
|
|
<CardGroup cols={2}>
|
|
<Card title="Docker" href="/install/docker" icon="container">
|
|
Containerized or headless deployments.
|
|
</Card>
|
|
<Card title="Podman" href="/install/podman" icon="container">
|
|
Rootless container alternative to Docker.
|
|
</Card>
|
|
<Card title="Nix" href="/install/nix" icon="snowflake">
|
|
Declarative install via Nix flake.
|
|
</Card>
|
|
<Card title="Ansible" href="/install/ansible" icon="server">
|
|
Automated fleet provisioning.
|
|
</Card>
|
|
<Card title="Bun" href="/install/bun" icon="zap">
|
|
Optional dependency installer and package-script runner.
|
|
</Card>
|
|
</CardGroup>
|
|
|
|
## Verify the install
|
|
|
|
```bash
|
|
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-daemon` or `openclaw 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. See [Linux server](/vps) for the full
|
|
provider picker (DigitalOcean, Hetzner, Hostinger, Fly.io, GCP, Azure, Railway,
|
|
Northflank, Oracle Cloud, Raspberry Pi, and more), or deploy declaratively on
|
|
[Render](/install/render).
|
|
|
|
<CardGroup cols={3}>
|
|
<Card title="VPS" href="/vps">
|
|
Pick a provider.
|
|
</Card>
|
|
<Card title="Docker VM" href="/install/docker-vm-runtime">
|
|
Shared Docker steps.
|
|
</Card>
|
|
<Card title="Kubernetes" href="/install/kubernetes">
|
|
K8s deployment.
|
|
</Card>
|
|
</CardGroup>
|
|
|
|
## Update, migrate, or uninstall
|
|
|
|
<CardGroup cols={3}>
|
|
<Card title="Updating" href="/install/updating" icon="refresh-cw">
|
|
Keep OpenClaw up to date.
|
|
</Card>
|
|
<Card title="Migrating" href="/install/migrating" icon="arrow-right">
|
|
Move to a new machine.
|
|
</Card>
|
|
<Card title="Uninstall" href="/install/uninstall" icon="trash-2">
|
|
Remove OpenClaw completely.
|
|
</Card>
|
|
</CardGroup>
|
|
|
|
## Troubleshooting: `openclaw` not found
|
|
|
|
Almost always a PATH issue: npm's global bin directory isn't on your shell's `PATH`. See [Node.js troubleshooting](/install/node#troubleshooting) for the full fix, including the Windows path.
|
|
|
|
```bash
|
|
node -v # Node installed?
|
|
npm prefix -g # Where are global packages?
|
|
echo "$PATH" # Is the global bin dir in PATH?
|
|
```
|