UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

237 lines (189 loc) 6.84 kB
--- 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 24** (recommended) or Node 22.19+ - the installer script handles this automatically - **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> 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 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> </Tab> <Tab title="bun"> ```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> </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"> CLI-only usage via the Bun runtime. </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: <CardGroup cols={3}> <Card title="VPS" href="/vps"> Any Linux VPS. </Card> <Card title="Docker VM" href="/install/docker-vm-runtime"> Shared Docker steps. </Card> <Card title="Kubernetes" href="/install/kubernetes"> K8s deployment. </Card> <Card title="Fly.io" href="/install/fly"> Deploy on Fly.io. </Card> <Card title="Hetzner" href="/install/hetzner"> Hetzner deployment. </Card> <Card title="GCP" href="/install/gcp"> Google Cloud deployment. </Card> <Card title="Azure" href="/install/azure"> Azure deployment. </Card> <Card title="Railway" href="/install/railway"> Railway deployment. </Card> <Card title="Render" href="/install/render"> Render deployment. </Card> <Card title="Northflank" href="/install/northflank"> Northflank 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 If the install succeeded but `openclaw` is not found in your terminal: ```bash 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`): ```bash export PATH="$(npm prefix -g)/bin:$PATH" ``` Then open a new terminal. See [Node setup](/install/node) for more details.