# Installer Internals

OpenClaw provides three installer scripts from `openclaw.ai`:

* **install.sh** — Primary installer supporting macOS, Linux, and WSL
* **install-cli.sh** — Non-root alternative that bundles Node runtime
* **install.ps1** — Windows PowerShell installer

## install.sh Overview

The recommended installer performs several key functions:

1. Detects the operating system
2. Ensures Node.js version 22 or higher is available
3. Offers two installation methods:
   - `npm install -g openclaw@latest` (default)
   - Git-based source checkout with wrapper script

The script addresses common Linux permission issues by redirecting npm's global prefix to `~/.npm-global` when necessary, then updates PATH variables in shell configuration files.

Additionally, it mitigates `sharp` native install gotchas by defaulting `SHARP_IGNORE_GLOBAL_LIBVIPS=1` to avoid system library conflicts. Users needing different behavior can override this with `SHARP_IGNORE_GLOBAL_LIBVIPS=0`.

When run inside an existing OpenClaw checkout, the installer prompts whether to update locally or migrate to global npm installation.

## install-cli.sh

This variant installs OpenClaw to a dedicated prefix (typically `~/.openclaw`) alongside a self-contained Node runtime, eliminating system-level dependencies.

## install.ps1

The Windows PowerShell version requires Node.js 22+ and supports both npm and git installation methods. Common issues include missing Git for Windows and PATH configuration problems with npm's global bin folder.
