CLI commands

Оновити

openclaw update

Безпечно оновлюйте OpenClaw і перемикайтеся між каналами stable/beta/dev.

Якщо ви встановили через npm/pnpm/bun (глобальне встановлення, без git-метаданих), оновлення виконуються через процес менеджера пакетів у Оновлення.

Використання

openclaw update
openclaw update status
openclaw update wizard
openclaw update --channel beta
openclaw update --channel dev
openclaw update --tag beta
openclaw update --tag main
openclaw update --dry-run
openclaw update --no-restart
openclaw update --yes
openclaw update --json
openclaw --update

Параметри

  • --no-restart: пропустити перезапуск служби Gateway після успішного оновлення. Оновлення через менеджер пакетів, які перезапускають Gateway, перевіряють, що перезапущена служба повідомляє очікувану оновлену версію, перш ніж команда завершиться успішно.
  • --channel <stable|beta|dev>: встановити канал оновлення (git + npm; зберігається в конфігурації).
  • --tag <dist-tag|version|spec>: перевизначити цільовий пакет лише для цього оновлення. Для пакетних встановлень main відповідає github:openclaw/openclaw#main.
  • --dry-run: попередньо переглянути заплановані дії оновлення (канал/тег/ціль/процес перезапуску) без запису конфігурації, встановлення, синхронізації plugins або перезапуску.
  • --json: вивести машинозчитуваний JSON UpdateRunResult, зокрема postUpdate.plugins.warnings, коли пошкоджені або непридатні до завантаження керовані plugins потребують відновлення після успішного оновлення ядра, і postUpdate.plugins.integrityDrifts, коли під час післяоновлювальної синхронізації plugin виявлено розбіжність артефакта npm plugin.
  • --timeout <seconds>: тайм-аут для кожного кроку (типово 1800 с).
  • --yes: пропустити запити підтвердження (наприклад, підтвердження пониження версії).

openclaw update не має прапорця --verbose. Використовуйте --dry-run, щоб попередньо переглянути заплановані дії каналу/тега/встановлення/перезапуску, --json для машинозчитуваних результатів, і openclaw update status --json, коли вам потрібні лише дані про канал і доступність. Якщо ви налагоджуєте журнали Gateway під час оновлення, деталізація консолі й рівень файлового журналювання налаштовуються окремо: Gateway --verbose впливає на вивід у термінал/WebSocket, тоді як файлові журнали потребують logging.level: "debug" або "trace" у конфігурації. Див. Журналювання Gateway.

update status

Показати активний канал оновлення + git-тег/гілку/SHA (для checkout із джерельного коду), а також доступність оновлення.

openclaw update status
openclaw update status --json
openclaw update status --timeout 10

Параметри:

  • --json: вивести машинозчитуваний JSON статусу.
  • --timeout <seconds>: тайм-аут для перевірок (типово 3 с).

update wizard

Інтерактивний процес для вибору каналу оновлення й підтвердження, чи перезапускати Gateway після оновлення (типово перезапускати). Якщо ви виберете dev без git checkout, він запропонує створити його.

Параметри:

  • --timeout <seconds>: тайм-аут для кожного кроку оновлення (типово 1800)

Що він робить

Коли ви явно перемикаєте канали (--channel ...), OpenClaw також підтримує узгодженість методу встановлення:

  • dev → забезпечує наявність git checkout (типово: ~/openclaw, перевизначається через OPENCLAW_GIT_DIR), оновлює його й встановлює глобальний CLI з цього checkout.
  • stable → встановлює з npm за допомогою latest.
  • beta → віддає перевагу npm dist-tag beta, але повертається до latest, коли beta відсутній або старіший за поточний стабільний реліз.

OpenClaw ще не має LTS або місячного каналу підтримки. Ми працюємо над місячними лініями підтримки, але --channel наразі приймає лише stable, beta і dev. Використовуйте --tag <version-or-dist-tag> для одноразової цілі, коли вам потрібен конкретний артефакт пакета.

Автооновлювач ядра Gateway (коли ввімкнений через конфігурацію) запускає шлях оновлення CLI поза живим обробником запитів Gateway. Оновлення через менеджер пакетів control-plane update.run примусово виконують невідкладний перезапуск оновлення без cooldown після заміни пакета, оскільки старий процес Gateway може ще мати в пам’яті фрагменти, що вказують на файли, видалені новим пакетом.

Для встановлень через менеджер пакетів openclaw update визначає цільову версію пакета перед викликом менеджера пакетів. Глобальні встановлення npm використовують staged install: OpenClaw встановлює новий пакет у тимчасовий npm prefix, перевіряє упакований інвентар dist там, а потім замінює цим чистим деревом пакета реальний глобальний prefix. Якщо перевірка не вдається, післяоновлювальні doctor, синхронізація plugin і перезапуск не запускаються з підозрілого дерева. Навіть коли встановлена версія вже збігається з цільовою, команда оновлює глобальне встановлення пакета, потім запускає синхронізацію plugin, оновлення завершень команд ядра та перезапуск. Це підтримує упаковані sidecars і записи plugin, що належать каналу, узгодженими з встановленою збіркою OpenClaw, залишаючи повні перебудови завершень команд plugin для явних запусків openclaw completion --write-state.

Коли встановлено локальну керовану службу Gateway і перезапуск увімкнено, оновлення через менеджер пакетів зупиняють запущену службу перед заміною дерева пакета, потім оновлюють метадані служби з оновленого встановлення, перезапускають службу й перевіряють, що перезапущений Gateway повідомляє очікувану версію, перш ніж повідомити про успіх. На macOS післяоновлювальна перевірка також підтверджує, що LaunchAgent завантажений/запущений для активного профілю, а налаштований порт loopback справний. Якщо plist встановлено, але launchd ним не керує, OpenClaw автоматично повторно bootstrap-ить LaunchAgent, а потім знову запускає перевірки готовності health/version/channel. Свіжий bootstrap завантажує завдання RunAtLoad напряму, тому відновлення оновлення не виконує негайно kickstart -k для щойно запущеного Gateway. Якщо Gateway усе ще не стає справним, команда завершується з ненульовим кодом і виводить шлях до журналу перезапуску, а також явні інструкції з перезапуску, перевстановлення та відкату пакета. З --no-restart заміна пакета все одно виконується, але керована служба не зупиняється і не перезапускається, тож запущений Gateway може зберігати старий код, доки ви не перезапустите його вручну.

Процес git checkout

Вибір каналу

  • stable: виконати checkout останнього не-beta тега, потім build і doctor.
  • beta: віддати перевагу останньому тегу -beta, але повернутися до останнього stable тега, коли beta відсутній або старіший.
  • dev: виконати checkout main, потім fetch і rebase.

Кроки оновлення

  • Перевірити чисте робоче дерево

    Потребує відсутності незакомічених змін.

  • Перемкнути канал

    Перемикає на вибраний канал (тег або гілку).

  • Отримати upstream

    Лише для dev.

  • Попередній build (лише dev)

    Запускає TypeScript build у тимчасовому робочому дереві. Якщо tip не проходить, відступає до 10 комітів назад, щоб знайти найновіший коміт, який можна зібрати. Встановіть OPENCLAW_UPDATE_PREFLIGHT_LINT=1, щоб також запустити lint під час цієї попередньої перевірки; lint запускається в обмеженому послідовному режимі, оскільки хости користувацьких оновлень часто менші за CI runners.

  • Rebase

    Виконує rebase на вибраний коміт (лише dev).

  • Встановити залежності

    Використовує менеджер пакетів репозиторію. Для pnpm checkout оновлювач bootstrap-ить pnpm за потреби (спочатку через corepack, потім тимчасовий fallback npm install pnpm@10) замість запуску npm run build у pnpm workspace.

  • Зібрати Control UI

    Збирає gateway і Control UI.

  • Запустити doctor

    openclaw doctor запускається як фінальна перевірка безпечного оновлення.

  • Синхронізувати plugins

    Синхронізує plugins з активним каналом. Dev використовує bundled plugins; stable і beta використовують npm. Оновлює відстежувані встановлення plugin.

  • На каналі оновлення beta відстежувані встановлення npm і ClawHub plugin, що дотримуються лінії default/latest, спершу пробують реліз plugin @beta. Якщо plugin не має beta-релізу, OpenClaw повертається до записаної специфікації default/latest. Для npm plugins OpenClaw також повертається назад, коли beta-пакет існує, але не проходить install validation. Точні версії та явні теги не переписуються.

    Скорочення --update

    openclaw --update переписується в openclaw update (корисно для оболонок і скриптів запуску).

    Пов’язане