Przejdź do głównej treści

Installer internals

OpenClaw ships three installer scripts, served from openclaw.ai.
ScriptPlatformWhat it does
install.shmacOS / Linux / WSLInstalls Node if needed, installs OpenClaw via npm (default) or git, and can run onboarding.
install-cli.shmacOS / Linux / WSLInstalls Node + OpenClaw into a local prefix (~/.openclaw). No root required.
install.ps1Windows (PowerShell)Installs Node if needed, installs OpenClaw via npm (default) or git, and can run onboarding.

Quick commands

curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --help
If install succeeds but openclaw is not found in a new terminal, see Node.js troubleshooting.

install.sh

Recommended for most interactive installs on macOS/Linux/WSL.

Flow (install.sh)

1

Detect OS

Supports macOS and Linux (including WSL). If macOS is detected, installs Homebrew if missing.
2

Ensure Node.js 22+

Checks Node version and installs Node 22 if needed (Homebrew on macOS, NodeSource setup scripts on Linux apt/dnf/yum).
3

Ensure Git

Installs Git if missing.
4

Install OpenClaw

  • npm method (default): global npm install
  • git method: clone/update repo, install deps with pnpm, build, then install wrapper at ~/.local/bin/openclaw
5

Post-install tasks

  • Runs openclaw doctor --non-interactive on upgrades and git installs (best effort)
  • Attempts onboarding when appropriate (TTY available, onboarding not disabled, and bootstrap/config checks pass)
  • Defaults SHARP_IGNORE_GLOBAL_LIBVIPS=1

Source checkout detection

If run inside an OpenClaw checkout (package.json + pnpm-workspace.yaml), the script offers:
  • use checkout (git), or
  • use global install (npm)
If no TTY is available and no install method is set, it defaults to npm and warns. The script exits with code 2 for invalid method selection or invalid --install-method values.

Examples (install.sh)

curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash
FlagDescription
`—install-method npmgit`Choose install method (default: npm). Alias: --method
--npmShortcut for npm method
--gitShortcut for git method. Alias: --github
`—version <versiondist-tag>`npm version or dist-tag (default: latest)
--betaUse beta dist-tag if available, else fallback to latest
--git-dir &lt;path&gt;Checkout directory (default: ~/openclaw). Alias: --dir
--no-git-updateSkip git pull for existing checkout
--no-promptDisable prompts
--no-onboardSkip onboarding
--onboardEnable onboarding
--dry-runPrint actions without applying changes
--verboseEnable debug output (set -x, npm notice-level logs)
--helpShow usage (-h)
VariableDescription
`OPENCLAW_INSTALL_METHOD=gitnpm`Install method
`OPENCLAW_VERSION=latestnext<semver>`npm version or dist-tag
`OPENCLAW_BETA=01`Use beta if available
OPENCLAW_GIT_DIR=&lt;path&gt;Checkout directory
`OPENCLAW_GIT_UPDATE=01`Toggle git updates
OPENCLAW_NO_PROMPT=1Disable prompts
OPENCLAW_NO_ONBOARD=1Skip onboarding
OPENCLAW_DRY_RUN=1Dry run mode
OPENCLAW_VERBOSE=1Debug mode
`OPENCLAW_NPM_LOGLEVEL=errorwarnnotice`npm log level
`SHARP_IGNORE_GLOBAL_LIBVIPS=01`Control sharp/libvips behavior (default: 1)

install-cli.sh

Designed for environments where you want everything under a local prefix (default ~/.openclaw) and no system Node dependency.

Flow (install-cli.sh)

1

Install local Node runtime

Downloads Node tarball (default 22.22.0) to &lt;prefix&gt;/tools/node-v&lt;version&gt; and verifies SHA-256.
2

Ensure Git

If Git is missing, attempts install via apt/dnf/yum on Linux or Homebrew on macOS.
3

Install OpenClaw under prefix

Installs with npm using --prefix &lt;prefix&gt;, then writes wrapper to &lt;prefix&gt;/bin/openclaw.

Examples (install-cli.sh)

curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash
FlagDescription
--prefix &lt;path&gt;Install prefix (default: ~/.openclaw)
--version &lt;ver&gt;OpenClaw version or dist-tag (default: latest)
--node-version &lt;ver&gt;Node version (default: 22.22.0)
--jsonEmit NDJSON events
--onboardRun openclaw onboard after install
--no-onboardSkip onboarding (default)
--set-npm-prefixOn Linux, force npm prefix to ~/.npm-global if current prefix is not writable
--helpShow usage (-h)
VariableDescription
OPENCLAW_PREFIX=&lt;path&gt;Install prefix
OPENCLAW_VERSION=&lt;ver&gt;OpenClaw version or dist-tag
OPENCLAW_NODE_VERSION=&lt;ver&gt;Node version
OPENCLAW_NO_ONBOARD=1Skip onboarding
`OPENCLAW_NPM_LOGLEVEL=errorwarnnotice`npm log level
OPENCLAW_GIT_DIR=&lt;path&gt;Legacy cleanup lookup path (used when removing old Peekaboo submodule checkout)
`SHARP_IGNORE_GLOBAL_LIBVIPS=01`Control sharp/libvips behavior (default: 1)

install.ps1

Flow (install.ps1)

1

Ensure PowerShell + Windows environment

Requires PowerShell 5+.
2

Ensure Node.js 22+

If missing, attempts install via winget, then Chocolatey, then Scoop.
3

Install OpenClaw

  • npm method (default): global npm install using selected -Tag
  • git method: clone/update repo, install/build with pnpm, and install wrapper at %USERPROFILE%\.local\bin\openclaw.cmd
4

Post-install tasks

Adds needed bin directory to user PATH when possible, then runs openclaw doctor --non-interactive on upgrades and git installs (best effort).

Examples (install.ps1)

iwr -useb https://openclaw.ai/install.ps1 | iex
FlagDescription
`-InstallMethod npmgit`Install method (default: npm)
-Tag &lt;tag&gt;npm dist-tag (default: latest)
-GitDir &lt;path&gt;Checkout directory (default: %USERPROFILE%\openclaw)
-NoOnboardSkip onboarding
-NoGitUpdateSkip git pull
-DryRunPrint actions only
VariableDescription
`OPENCLAW_INSTALL_METHOD=gitnpm`Install method
OPENCLAW_GIT_DIR=&lt;path&gt;Checkout directory
OPENCLAW_NO_ONBOARD=1Skip onboarding
OPENCLAW_GIT_UPDATE=0Disable git pull
OPENCLAW_DRY_RUN=1Dry run mode
If -InstallMethod git is used and Git is missing, the script exits and prints the Git for Windows link.

CI and automation

Use non-interactive flags/env vars for predictable runs.
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --no-prompt --no-onboard

Troubleshooting

Git is required for git install method. For npm installs, Git is still checked/installed to avoid spawn git ENOENT failures when dependencies use git URLs.
Some Linux setups point npm global prefix to root-owned paths. install.sh can switch prefix to ~/.npm-global and append PATH exports to shell rc files (when those files exist).
The scripts default SHARP_IGNORE_GLOBAL_LIBVIPS=1 to avoid sharp building against system libvips. To override:
SHARP_IGNORE_GLOBAL_LIBVIPS=0 curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash
Install Git for Windows, reopen PowerShell, rerun installer.
Run npm config get prefix, append \bin, add that directory to user PATH, then reopen PowerShell.
install.ps1 does not currently expose a -Verbose switch. Use PowerShell tracing for script-level diagnostics:
Set-PSDebug -Trace 1
& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -NoOnboard
Set-PSDebug -Trace 0
Usually a PATH issue. See Node.js troubleshooting.