Внутреннее устройство установщика
OpenClaw поставляет три скрипта установки, доступные с openclaw.ai.
| Скрипт | Платформа | Что делает |
|---|---|---|
install.sh | macOS / Linux / WSL | Устанавливает Node при необходимости, OpenClaw через npm (по умолчанию) или git, может запустить onboarding. |
install-cli.sh | macOS / Linux / WSL | Устанавливает Node + OpenClaw в локальный prefix (~/.openclaw). Без root. |
install.ps1 | Windows (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) |
--json | NDJSON-вывод |
--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).