Внутреннее устройство установщика

OpenClaw поставляет три скрипта установки, доступные с openclaw.ai.

СкриптПлатформаЧто делает
install.shmacOS / Linux / WSLУстанавливает Node при необходимости, OpenClaw через npm (по умолчанию) или git, может запустить onboarding.
install-cli.shmacOS / Linux / WSLУстанавливает Node + OpenClaw в локальный prefix (~/.openclaw). Без root.
install.ps1Windows (PowerShell)Устанавливает Node при необходимости, OpenClaw через npm (по умолчанию) или git, может запустить onboarding.

Быстрые команды

install.sh

```bash
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash
```

```bash
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --help
```

install-cli.sh

```bash
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash
```

```bash
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash -s -- --help
```

install.ps1

```powershell
iwr -useb https://openclaw.ai/install.ps1 | iex
```

```powershell
& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -Tag beta -NoOnboard -DryRun
```

Примечание: Если установка прошла успешно, но openclaw не найден в новом терминале, см. Решение проблем Node.js.


install.sh

Совет: Рекомендуется для большинства интерактивных установок на macOS/Linux/WSL.

Процесс (install.sh)

Шаг 1: Определение ОС

Поддерживает macOS и Linux (включая WSL). На macOS устанавливает Homebrew при отсутствии.

Шаг 2: Node.js 24 по умолчанию

Проверяет версию Node и устанавливает Node 24 при необходимости (Homebrew на macOS, скрипты NodeSource на Linux apt/dnf/yum). OpenClaw по-прежнему поддерживает Node 22 LTS, сейчас `22.16+`.

Шаг 3: Git

Устанавливает Git при отсутствии.

Шаг 4: Установка OpenClaw

- метод `npm` (по умолчанию): глобальная установка через npm
- метод `git`: клонирование/обновление репозитория, установка зависимостей через pnpm, сборка, установка обёртки в `~/.local/bin/openclaw`

Шаг 5: Задачи после установки

- Запускает `openclaw doctor --non-interactive` при обновлениях и git-установках (best effort)
- Пытается запустить onboarding при подходящих условиях (доступен TTY, onboarding не отключён, проверки bootstrap/config пройдены)
- По умолчанию `SHARP_IGNORE_GLOBAL_LIBVIPS=1`

Определение checkout из исходников

Если запущен внутри checkout OpenClaw (package.json + pnpm-workspace.yaml), скрипт предлагает:

  • использовать checkout (git), или
  • использовать глобальную установку (npm)

Если TTY недоступен и метод установки не задан, используется npm с предупреждением.

Скрипт завершается с кодом 2 при некорректном выборе метода или недопустимых значениях --install-method.

Примеры (install.sh)

По умолчанию

```bash
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash
```

Без onboarding

```bash
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --no-onboard
```

Установка через Git

```bash
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --install-method git
```

Пробный запуск

```bash
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --dry-run
```
Справка по флагам
ФлагОписание
--install-method npm|gitМетод установки (по умолчанию: npm). Псевдоним: --method
--npmЯрлык для метода npm
--gitЯрлык для метода git. Псевдоним: --github
--version <version|dist-tag>Версия npm или dist-tag (по умолчанию: latest)
--betaИспользовать beta dist-tag если доступен, иначе latest
--git-dir <path>Каталог checkout (по умолчанию: ~/openclaw). Псевдоним: --dir
--no-git-updateПропустить git pull для существующего checkout
--no-promptОтключить промпты
--no-onboardПропустить onboarding
--onboardВключить onboarding
--dry-runВывести действия без применения
--verboseОтладочный вывод (set -x, notice-level логи npm)
--helpПоказать справку (-h)
Справка по переменным окружения
ПеременнаяОписание
OPENCLAW_INSTALL_METHOD=git|npmМетод установки
OPENCLAW_VERSION=latest|next|<semver>Версия npm или dist-tag
OPENCLAW_BETA=0|1Использовать beta если доступен
OPENCLAW_GIT_DIR=<path>Каталог checkout
OPENCLAW_GIT_UPDATE=0|1Переключить обновления git
OPENCLAW_NO_PROMPT=1Отключить промпты
OPENCLAW_NO_ONBOARD=1Пропустить onboarding
OPENCLAW_DRY_RUN=1Пробный запуск
OPENCLAW_VERBOSE=1Режим отладки
OPENCLAW_NPM_LOGLEVEL=error|warn|noticeУровень логирования npm
SHARP_IGNORE_GLOBAL_LIBVIPS=0|1Поведение sharp/libvips (по умолчанию: 1)

install-cli.sh

Информация: Предназначен для окружений, где всё должно быть в локальном prefix (по умолчанию ~/.openclaw) без зависимости от системного Node.

Процесс (install-cli.sh)

Шаг 1: Установка локального Node runtime

Скачивает закреплённый tarball Node (сейчас по умолчанию `22.22.0`) в `<prefix>/tools/node-v<version>` и проверяет SHA-256.

Шаг 2: Git

Если Git отсутствует, пытается установить через apt/dnf/yum на Linux или Homebrew на macOS.

Шаг 3: Установка OpenClaw в prefix

Устанавливает через npm с `--prefix <prefix>`, затем создаёт обёртку в `<prefix>/bin/openclaw`.

Примеры (install-cli.sh)

По умолчанию

```bash
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash
```

Свой prefix + версия

```bash
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash -s -- --prefix /opt/openclaw --version latest
```

JSON-вывод для автоматизации

```bash
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash -s -- --json --prefix /opt/openclaw
```

Запуск onboarding

```bash
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash -s -- --onboard
```
Справка по флагам
ФлагОписание
--prefix <path>Prefix установки (по умолчанию: ~/.openclaw)
--version <ver>Версия OpenClaw или dist-tag (по умолчанию: latest)
--node-version <ver>Версия Node (по умолчанию: 22.22.0)
--jsonNDJSON-вывод
--onboardЗапустить openclaw onboard после установки
--no-onboardПропустить onboarding (по умолчанию)
--set-npm-prefixНа Linux принудительно задать npm prefix в ~/.npm-global, если текущий недоступен для записи
--helpПоказать справку (-h)
Справка по переменным окружения
ПеременнаяОписание
OPENCLAW_PREFIX=<path>Prefix установки
OPENCLAW_VERSION=<ver>Версия OpenClaw или dist-tag
OPENCLAW_NODE_VERSION=<ver>Версия Node
OPENCLAW_NO_ONBOARD=1Пропустить onboarding
OPENCLAW_NPM_LOGLEVEL=error|warn|noticeУровень логирования npm
OPENCLAW_GIT_DIR=<path>Путь для legacy-очистки (для удаления старого checkout подмодуля Peekaboo)
SHARP_IGNORE_GLOBAL_LIBVIPS=0|1Поведение sharp/libvips (по умолчанию: 1)

install.ps1

Процесс (install.ps1)

Шаг 1: Проверка PowerShell + Windows

Требуется PowerShell 5+.

Шаг 2: Node.js 24 по умолчанию

При отсутствии пытается установить через winget, затем Chocolatey, затем Scoop. Node 22 LTS, сейчас `22.16+`, по-прежнему поддерживается.

Шаг 3: Установка OpenClaw

- метод `npm` (по умолчанию): глобальная установка через npm с выбранным `-Tag`
- метод `git`: клонирование/обновление репозитория, установка/сборка через pnpm, обёртка в `%USERPROFILE%\.local\bin\openclaw.cmd`

Шаг 4: Задачи после установки

Добавляет нужный каталог bin в PATH пользователя, затем запускает `openclaw doctor --non-interactive` при обновлениях и git-установках (best effort).

Примеры (install.ps1)

По умолчанию

```powershell
iwr -useb https://openclaw.ai/install.ps1 | iex
```

Установка через Git

```powershell
& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -InstallMethod git
```

Свой каталог git

```powershell
& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -InstallMethod git -GitDir "C:\openclaw"
```

Пробный запуск

```powershell
& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -DryRun
```

Отладочная трассировка

```powershell
# install.ps1 пока не имеет флага -Verbose.
Set-PSDebug -Trace 1
& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -NoOnboard
Set-PSDebug -Trace 0
```
Справка по флагам
ФлагОписание
-InstallMethod npm|gitМетод установки (по умолчанию: npm)
-Tag <tag>npm dist-tag (по умолчанию: latest)
-GitDir <path>Каталог checkout (по умолчанию: %USERPROFILE%\openclaw)
-NoOnboardПропустить onboarding
-NoGitUpdateПропустить git pull
-DryRunТолько вывод действий
Справка по переменным окружения
ПеременнаяОписание
OPENCLAW_INSTALL_METHOD=git|npmМетод установки
OPENCLAW_GIT_DIR=<path>Каталог checkout
OPENCLAW_NO_ONBOARD=1Пропустить onboarding
OPENCLAW_GIT_UPDATE=0Отключить git pull
OPENCLAW_DRY_RUN=1Пробный запуск

Примечание: При использовании -InstallMethod git без установленного Git скрипт завершается и выводит ссылку на Git for Windows.


CI и автоматизация

Используйте неинтерактивные флаги/переменные окружения для предсказуемых запусков.

install.sh (неинтерактивный npm)

```bash
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --no-prompt --no-onboard
```

install.sh (неинтерактивный git)

```bash
OPENCLAW_INSTALL_METHOD=git OPENCLAW_NO_PROMPT=1 \
  curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash
```

install-cli.sh (JSON)

```bash
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash -s -- --json --prefix /opt/openclaw
```

install.ps1 (без onboarding)

```powershell
& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -NoOnboard
```

Решение проблем

Зачем нужен Git?
Git необходим для метода установки `git`. Для установок через `npm` Git также проверяется/устанавливается, чтобы избежать ошибок `spawn git ENOENT`, когда зависимости используют git URL.
Почему npm выдаёт EACCES на Linux?
Некоторые конфигурации Linux указывают глобальный prefix npm на каталоги, принадлежащие root. `install.sh` может переключить prefix на `~/.npm-global` и добавить PATH в rc-файлы оболочки (если они существуют).
Проблемы sharp/libvips
Скрипты по умолчанию устанавливают `SHARP_IGNORE_GLOBAL_LIBVIPS=1`, чтобы sharp не собирался с системным libvips. Для переопределения:

```bash
SHARP_IGNORE_GLOBAL_LIBVIPS=0 curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash
```
Windows: «npm error spawn git / ENOENT»
Установите Git for Windows, переоткройте PowerShell, перезапустите установщик.
Windows: «openclaw is not recognized»
Выполните `npm config get prefix` и добавьте этот каталог в PATH пользователя (без суффикса `\bin` на Windows), затем переоткройте PowerShell.
Windows: подробный вывод установщика
`install.ps1` пока не имеет флага `-Verbose`.
Используйте трассировку PowerShell:

```powershell
Set-PSDebug -Trace 1
& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -NoOnboard
Set-PSDebug -Trace 0
```
openclaw не найден после установки
Обычно проблема с PATH. См. [Решение проблем Node.js](/docs/install/node#troubleshooting).