Обновление

OpenClaw развивается быстро (до «1.0»). Относитесь к обновлениям как к развёртыванию инфраструктуры: обновите → проверьте → перезапустите (или используйте openclaw update, который перезапускает автоматически) → убедитесь.

Рекомендуемый: повторный запуск установщика с сайта (обновление на месте)

Предпочтительный способ обновления — повторный запуск установщика с сайта. Он определяет существующую установку, обновляет на месте и запускает openclaw doctor при необходимости.

curl -fsSL https://openclaw.ai/install.sh | bash

Замечания:

  • Добавьте --no-onboard, если не хотите повторного запуска мастера настройки.

  • Для установок из исходников:

    curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method git --no-onboard

    Установщик выполнит git pull --rebase только при чистом состоянии репозитория.

  • Для глобальных установок скрипт использует npm install -g openclaw@latest.

  • Устаревшее: clawdbot по-прежнему доступен как совместимая прослойка.

Перед обновлением

  • Определите способ установки: глобальная (npm/pnpm) или из исходников (git clone).
  • Определите, как работает шлюз: в терминале или как управляемый сервис (launchd/systemd).
  • Сделайте снимок настроек:
    • Конфигурация: ~/.openclaw/openclaw.json
    • Учётные данные: ~/.openclaw/credentials/
    • Workspace: ~/.openclaw/workspace

Обновление (глобальная установка)

Глобальная установка (выберите один):

npm i -g openclaw@latest
pnpm add -g openclaw@latest

Мы не рекомендуем Bun для runtime шлюза (баги WhatsApp/Telegram).

Для переключения каналов обновлений (git + npm установки):

openclaw update --channel beta
openclaw update --channel dev
openclaw update --channel stable

Используйте --tag <dist-tag|version> для одноразовой установки конкретного тега/версии.

Подробнее — Каналы разработки.

Примечание: при npm-установках шлюз выводит подсказку об обновлении при запуске (проверяет текущий тег канала). Отключить: update.checkOnStart: false.

Автоматическое обновление (опционально)

Автообновление выключено по умолчанию и является встроенной функцией шлюза (не плагином).

{
  "update": {
    "channel": "stable",
    "auto": {
      "enabled": true,
      "stableDelayHours": 6,
      "stableJitterHours": 12,
      "betaCheckIntervalHours": 1
    }
  }
}

Поведение:

  • stable: при обнаружении новой версии OpenClaw ждёт stableDelayHours, затем применяет детерминированный jitter в stableJitterHours (распределённый раскат).
  • beta: проверяет с интервалом betaCheckIntervalHours (по умолчанию: каждый час) и применяет при наличии обновления.
  • dev: автоматического применения нет; используйте openclaw update вручную.

Используйте openclaw update --dry-run для предварительного просмотра действий перед включением автоматизации.

Затем:

openclaw doctor
openclaw gateway restart
openclaw health

Замечания:

  • Если шлюз работает как сервис, openclaw gateway restart предпочтительнее, чем убийство процессов.
  • Если закреплены на конкретной версии, см. «Откат / закрепление» ниже.

Обновление (openclaw update)

Для установок из исходников (git checkout) предпочтительно:

openclaw update

Выполняет безопасный процесс обновления:

  • Требует чистое рабочее дерево.
  • Переключается на выбранный канал (тег или ветку).
  • Делает fetch + rebase на upstream (для dev-канала).
  • Устанавливает зависимости, собирает, собирает Control UI и запускает openclaw doctor.
  • Перезапускает шлюз по умолчанию (используйте --no-restart для пропуска).

Если установка через npm/pnpm (без git-метаданных), openclaw update попытается обновить через пакетный менеджер. Если не удаётся определить способ установки, используйте «Обновление (глобальная установка)».

Обновление (Control UI / RPC)

В Control UI есть Update & Restart (RPC: update.run):

  1. Выполняет тот же процесс обновления из исходников, что и openclaw update (только git checkout).
  2. Записывает sentinel перезапуска со структурированным отчётом (tail stdout/stderr).
  3. Перезапускает шлюз и отправляет отчёт в последнюю активную сессию.

Если rebase не удаётся, шлюз прерывает операцию и перезапускается без применения обновления.

Обновление (из исходников)

Из checkout репозитория:

Предпочтительно:

openclaw update

Вручную (примерный эквивалент):

git pull
pnpm install
pnpm build
pnpm ui:build # автоустановка зависимостей UI при первом запуске
openclaw doctor
openclaw health

Замечания:

  • pnpm build важен, если запускаете упакованный бинарник openclaw (openclaw.mjs) или используете Node для dist/.
  • Если запускаете из checkout без глобальной установки, используйте pnpm openclaw ... для CLI-команд.
  • Если запускаете напрямую из TypeScript (pnpm openclaw ...), пересборка обычно не нужна, но миграции конфигурации применяются → запустите doctor.
  • Переключение между глобальной и git-установками простое: установите другой вариант, затем openclaw doctor, чтобы сервис шлюза переписал entrypoint на текущую установку.

Обязательно: openclaw doctor

Doctor — «безопасная команда обновления». Намеренно скучная: восстановление + миграция + предупреждения.

Примечание: при установке из исходников (git checkout) openclaw doctor предложит сначала запустить openclaw update.

Типичные действия:

  • Миграция устаревших ключей конфигурации / legacy-расположений файлов.
  • Аудит DM-политик и предупреждения о рискованных «open»-настройках.
  • Проверка здоровья шлюза с предложением перезапуска.
  • Обнаружение и миграция старых сервисов шлюза (launchd/systemd; legacy schtasks) на текущие сервисы OpenClaw.
  • На Linux проверка systemd user lingering (чтобы шлюз пережил выход из системы).

Подробнее: Doctor

Запуск / остановка / перезапуск шлюза

CLI (работает на любой ОС):

openclaw gateway status
openclaw gateway stop
openclaw gateway restart
openclaw gateway --port 18789
openclaw logs --follow

Если используется управляемый сервис:

  • macOS launchd (LaunchAgent из app bundle): launchctl kickstart -k gui/$UID/ai.openclaw.gateway (используйте ai.openclaw.<profile>; устаревшие com.openclaw.* тоже работают)
  • Linux systemd user service: systemctl --user restart openclaw-gateway[-<profile>].service
  • Windows (WSL2): systemctl --user restart openclaw-gateway[-<profile>].service
    • launchctl/systemctl работают только при установленном сервисе; иначе выполните openclaw gateway install.

Runbook и метки сервисов: Runbook шлюза

Откат / закрепление (когда что-то сломалось)

Закрепление (глобальная установка)

Установите известную рабочую версию (замените <version> на последнюю работающую):

npm i -g openclaw@<version>
pnpm add -g openclaw@<version>

Совет: чтобы узнать текущую опубликованную версию — npm view openclaw version.

Затем перезапустите + повторите doctor:

openclaw doctor
openclaw gateway restart

Закрепление (исходники) по дате

Выберите коммит по дате (пример: «состояние main на 2026-01-01»):

git fetch origin
git checkout "$(git rev-list -n 1 --before=\"2026-01-01\" origin/main)"

Затем переустановите зависимости + перезапустите:

pnpm install
pnpm build
openclaw gateway restart

Для возврата к последней версии:

git checkout main
git pull

Если застряли