CLI commands
Оновити
openclaw update
Оновлюйте OpenClaw і перемикайтеся між каналами stable/extended-stable/beta/dev.
Якщо встановлення виконано через npm/pnpm/bun (глобальне встановлення без метаданих git), оновлення відбуваються за процедурою менеджера пакетів, описаною в розділі Оновлення.
Використання
openclaw updateopenclaw update statusopenclaw update repairopenclaw update wizardopenclaw update --channel extended-stableopenclaw update --channel betaopenclaw update --channel devopenclaw update --tag betaopenclaw update --tag mainopenclaw update --dry-runopenclaw update --no-restartopenclaw update --yesopenclaw update --acknowledge-clawhub-riskopenclaw update --jsonopenclaw --updateopenclaw --update перетворюється на openclaw update (корисно для оболонок і
скриптів запуску).
Параметри
| Прапорець | Опис |
|---|---|
--no-restart |
Не перезапускати службу Gateway після успішного оновлення. Під час оновлень через менеджер пакетів із перезапуском команда завершується успішно лише після перевірки, що перезапущена служба повідомляє очікувану версію. |
--channel <stable|extended-stable|beta|dev> |
Задати канал оновлень і зберегти його після успішного оновлення ядра. Extended-stable доступний лише для пакетного встановлення. |
--tag <dist-tag|version|spec> |
Перевизначити цільовий пакет лише для цього оновлення. Не можна поєднувати з чинним каналом extended-stable, для якого обов’язковою є перевірена точна ціль. Для інших пакетних встановлень main зіставляється з github:openclaw/openclaw#main; специфікації джерел GitHub/git пакуються в тимчасовий tar-архів перед поетапним глобальним встановленням через npm. |
--dry-run |
Переглянути заплановані дії (канал/тег/ціль/процедуру перезапуску) без запису конфігурації, встановлення, синхронізації плагінів або перезапуску. |
--json |
Вивести машинозчитуваний JSON UpdateRunResult. Містить postUpdate.plugins.warnings, коли керований плагін потребує відновлення, відомості про резервний вибір плагіна для beta-каналу та postUpdate.plugins.integrityDrifts, коли під час синхронізації після оновлення виявлено розбіжність артефактів плагіна npm. |
--timeout <seconds> |
Час очікування для кожного кроку. Типове значення — 1800. |
--yes |
Пропустити запити на підтвердження (наприклад, підтвердження повернення до попередньої версії). |
--acknowledge-clawhub-risk |
Дозволити синхронізації плагінів після оновлення продовжуватися попри попередження щодо довіри до спільнотних пакетів ClawHub без інтерактивного запиту. Без цього ризиковані спільнотні випуски пропускаються й залишаються без змін, якщо OpenClaw не може показати запит. Офіційні пакети ClawHub і вбудовані джерела плагінів не потребують цього підтвердження. |
Прапорця --verbose немає. Використовуйте --dry-run для попереднього перегляду запланованих дій,
--json для машинозчитуваних результатів і openclaw update status --json
лише для перевірки каналу/доступності. Докладність консолі Gateway (--verbose) і
рівень журналювання у файл (logging.level: "debug"/"trace") налаштовуються незалежно; див.
Журналювання Gateway.
update status
Показати активний канал оновлень, тег/гілку/SHA git (лише для робочих копій вихідного коду) та доступність оновлень.
openclaw update statusopenclaw update status --jsonopenclaw update status --timeout 10| Прапорець | Типове значення | Опис |
|---|---|---|
--json |
false |
Вивести машинозчитуваний JSON стану. |
--timeout <seconds> |
3 |
Час очікування для перевірок. |
Для пакетних встановлень extended-stable команда стану виконує такий самий вибір загальнодоступного селектора
й перевірку точного пакета, що й звичайне оновлення. Вона може повідомити
ahead of extended-stable, коли встановлена версія новіша. Помилки JSON
містять registry.reason (selector_missing, selector_query_failed,
exact_package_mismatch або unsupported_git_channel).
update repair
Повторно виконати завершальні дії оновлення, якщо основний пакет уже змінився, але подальші
відновлювальні дії не завершилися належним чином. Це підтримуваний спосіб відновлення, коли
openclaw update установив новий основний пакет, але синхронізація плагінів після оновлення ядра,
метадані керованих плагінів npm, оновлення реєстру або відновлення засобом doctor
не зійшлися до узгодженого стану.
openclaw update repairopenclaw update repair --channel betaopenclaw update repair --acknowledge-clawhub-riskopenclaw update repair --json| Прапорець | Опис |
|---|---|
--channel <stable|extended-stable|beta|dev> |
Зберегти канал оновлення ядра перед відновленням. Для extended-stable придатні офіційні плагіни npm, що дотримуються порожнього/типового наміру або наміру latest, орієнтуються на точну встановлену версію ядра. Відновлення extended-stable відхиляється в робочих копіях Git без зміни конфігурації. |
--json |
Вивести машинозчитуваний JSON завершальних дій. |
--timeout <seconds> |
Час очікування для кроків відновлення. Типове значення — 1800. |
--yes |
Пропустити запити на підтвердження. |
--acknowledge-clawhub-risk |
Така сама поведінка, як у openclaw update. |
--no-restart |
Приймається для узгодженості; відновлення ніколи не перезапускає Gateway. |
update repair запускає openclaw doctor --fix, повторно завантажує відновлену конфігурацію та
записи про встановлення, синхронізує відстежувані плагіни для активного каналу оновлень, оновлює
керовані встановлення плагінів npm, відновлює відсутні налаштовані корисні дані плагінів,
оновлює реєстр плагінів і записує узгоджені метадані записів про встановлення.
Він не встановлює новий основний пакет і не перезапускає Gateway.
update wizard
Інтерактивна процедура вибору каналу оновлень і підтвердження перезапуску
Gateway після цього (типово перезапускається). Якщо вибрати dev без робочої
копії git, буде запропоновано створити її.
| Прапорець | Типове значення | Опис |
|---|---|---|
--timeout <seconds> |
1800 |
Час очікування для кожного кроку оновлення. |
Принцип роботи
Явне перемикання каналів (--channel ...) також узгоджує спосіб
встановлення:
dev-> забезпечує наявність робочої копії git (типово~/openclawабо$OPENCLAW_HOME/openclaw, коли заданоOPENCLAW_HOME; можна перевизначити за допомогоюOPENCLAW_GIT_DIR), оновлює її та встановлює глобальний CLI із цієї робочої копії.stable-> установлює з npm за допомогоюlatest.extended-stable-> визначає загальнодоступний селектор npmextended-stable, перевіряє точний вибраний пакет і встановлює саме цю версію. Резервний перехід до іншого селектора не виконується; цей варіант відхиляється для робочих копій Git.beta-> віддає перевагу dist-tag npmbeta, переходячи доlatest, коли beta відсутня або старіша за поточний стабільний випуск.
Передавання перезапуску
Автоматичний оновлювач ядра Gateway (якщо його ввімкнено в конфігурації) запускає процедуру
оновлення CLI поза обробником активного запиту Gateway. Оновлення через менеджер пакетів
площини керування update.run і контрольовані оновлення робочих копій git використовують
те саме передавання керованій службі замість заміни дерева пакетів або
повторної збірки dist/ усередині активного процесу Gateway: Gateway запускає
від’єднаний допоміжний процес і завершує роботу, а цей процес виконує openclaw update --yes --json
поза деревом процесів Gateway. Якщо передавання недоступне,
update.run повертає структуровану відповідь із безпечною командою оболонки для
виконання вручну.
Збережені вибори extended-stable отримують під час запуску підказки лише для читання та підказки про оновлення раз на 24 години,
коли ввімкнено update.checkOnStart. Ці перевірки ніколи не застосовують оновлення,
не запускають передавання керування, не перезапускають Gateway, не використовують затримку/джитер stable
і не використовують частоту опитування beta. Явні оновлення на передньому плані, звичайні оновлення на передньому плані зі
збереженим update.channel: "extended-stable", перевірка стану на вимогу та кероване ними
передавання керування Gateway і надалі підтримуються.
Коли встановлено локальну керовану службу Gateway і ввімкнено перезапуск,
оновлення через менеджер пакетів і оновлення git-робочої копії зупиняють запущену службу перед
заміною дерева пакета або зміною робочої копії чи результатів збірки. Потім засіб оновлення
оновлює метадані служби, перезапускає її та перевіряє
перезапущений Gateway, перш ніж повідомити Gateway: restarted and verified..
Оновлення через менеджер пакетів додатково перевіряють, що перезапущений Gateway повідомляє
очікувану версію пакета; оновлення git-робочої копії перевіряють справність Gateway і
готовність служби після повторної збірки.
Оновлення через менеджер пакетів зазвичай і надалі використовують виконуваний файл Node, записаний у
керованій службі. Якщо цей Node не може запустити цільовий випуск, але поточний
Node CLI може, а належність служби до пакета, що оновлюється, підтверджено,
оновлення з увімкненим перезапуском використовує поточний Node для завершення та переписує
метадані служби для цього середовища виконання. --no-restart не може виправити метадані
служби, тому така сама невідповідність середовища виконання зупиняє процес до зміни пакета.
У macOS перевірка після оновлення також підтверджує, що LaunchAgent
завантажено/запущено для активного профілю, а налаштований порт loopback
справний. Якщо plist установлено, але launchd не контролює його, OpenClaw
автоматично повторно ініціалізує LaunchAgent і знову виконує перевірки справності/версії/
готовності каналу (нова ініціалізація безпосередньо завантажує завдання RunAtLoad,
тому відновлення не виконує негайно kickstart -k для щойно запущеного Gateway). Якщо
Gateway усе одно не стає справним, команда завершується з ненульовим кодом і
виводить шлях до журналу перезапуску, а також інструкції щодо перезапуску, перевстановлення та відкочування
пакета.
Якщо перезапуск неможливий, команда виводить Gateway: restart skipped (...) або
Gateway: restart failed: ... із підказкою щодо ручного виконання openclaw gateway restart.
З --no-restart заміна пакета або повторна git-збірка все одно виконується, але
керована служба не зупиняється й не перезапускається, тому запущений Gateway продовжує
використовувати старий код, доки його не буде перезапущено вручну.
Формат відповіді площини керування
Коли update.run виконується через площину керування Gateway для інсталяції через менеджер пакетів
або контрольованої git-робочої копії, обробник повідомляє про початок передавання керування
окремо від оновлення CLI, яке продовжується після завершення роботи Gateway:
ok: true,result.status: "skipped",result.reason: "managed-service-handoff-started"іhandoff.status: "started": Gateway створив передавання керування керованою службою та запланував власний перезапуск, щоб відокремлений допоміжний процес міг виконатиopenclaw update --yes --jsonпоза процесом активної служби.ok: false,result.reason: "managed-service-handoff-unavailable"іhandoff.status: "unavailable": OpenClaw не вдалося знайти межу контрольованої служби та сталу ідентичність служби для безпечного передавання керування (наприклад, передавання керування systemd потребує ідентичності юнітаOPENCLAW_SYSTEMD_UNIT, а не лише наявних у середовищі маркерів процесу systemd). Відповідь міститьhandoff.command— команду оболонки, яку слід виконати поза Gateway.ok: false,result.reason: "managed-service-handoff-failed": Gateway спробував створити передавання керування, але не зміг запустити відокремлений допоміжний процес.
Корисне навантаження sentinel записується до завершення роботи Gateway, а CLI
передавання керування оновлює той самий маркер перезапуску після завершення перевірок
справності перезапущеної керованої служби. Під час передавання керування маркер може містити
stats.reason: "restart-health-pending" без продовження в разі успіху;
перезапущений Gateway опитує його та запускає продовження лише після того, як CLI
перевірить справність служби й перепише маркер з остаточним результатом ok.
openclaw status і openclaw status --all показують рядок Update restart,
доки цей маркер очікує на обробку або містить помилку, а update.status оновлює та
повертає найновіший маркер.
Процес для git-робочої копії
Вибір каналу
stable: перейти на найновіший тег, що не є beta, а потім виконати збірку й doctor.beta: віддавати перевагу найновішому тегу-beta, повертаючись до найновішого тегу stable, коли beta відсутня або старіша.dev: перейти наmain, а потім отримати зміни та виконати rebase.extended-stable: не підтримується для git-робочих копій; робоча копія не змінюється.
Етапи оновлення
Перевірка чистоти робочого дерева
Вимагає відсутності незбережених у комітах змін.
Перемикання каналу
Перемикає на вибраний канал (тег або гілку).
Отримання змін із джерела
Лише для dev.
Попередня збірка (лише для dev)
Запускає збірку TypeScript у тимчасовому робочому дереві. Якщо верхівка гілки не проходить збірку, повертається до 10 комітів назад, щоб знайти найновіший коміт, який можна зібрати. Установіть OPENCLAW_UPDATE_PREFLIGHT_LINT=1, щоб також запускати lint під час цієї попередньої перевірки; lint виконується в обмеженому послідовному режимі, оскільки хости користувацьких оновлень часто мають менше ресурсів, ніж виконавці CI.
Rebase
Виконує rebase на вибраний коміт (лише для dev).
Установлення залежностей
Використовує менеджер пакетів репозиторію. Для робочих копій pnpm засіб оновлення за потреби ініціалізує pnpm (спочатку через corepack, а потім із тимчасовим резервним варіантом npm install pnpm@11) замість запуску npm run build у робочому просторі pnpm. Якщо ініціалізація pnpm усе одно завершується помилкою, засіб оновлення зупиняється завчасно з помилкою, специфічною для менеджера пакетів, замість спроби виконати npm run build у робочій копії.
Збірка інтерфейсу керування
Збирає Gateway та інтерфейс керування.
Запуск doctor
openclaw doctor виконується як остаточна перевірка безпечного оновлення.
Синхронізація плагінів
Синхронізує плагіни з активним каналом. Dev використовує вбудовані плагіни; stable і beta використовують npm. Оновлює відстежувані інсталяції плагінів.
Відомості про синхронізацію плагінів
У каналі beta відстежувані інсталяції плагінів npm і ClawHub, що використовують
рядок default/latest, спочатку намагаються встановити випуск плагіна @beta. Якщо плагін не має
beta-випуску, OpenClaw повертається до записаної специфікації default/latest і
повідомляє попередження. Для плагінів npm OpenClaw також застосовує резервний варіант, якщо beta-
пакет існує, але не проходить перевірку встановлення. Ці попередження про резервний варіант не
спричиняють помилки оновлення ядра. Точні версії та явні теги ніколи не переписуються.
Після успішного оновлення ядра extended-stable перевірка цілісності плагінів після оновлення ядра та
узгодження спрямовані на придатні офіційні плагіни npm із точною встановленою версією
ядра. Для наміру default/latest OpenClaw не опитує
@extended-stable плагіна й не повертається до latest npm; версія пакета
визначається зі встановленого ядра. Явно зафіксовані версії, явні теги, відмінні від latest,
сторонні пакети та джерела, відмінні від npm, зберігають наявний намір.
Для інсталяцій через менеджер пакетів openclaw update визначає цільову версію
пакета перед викликом менеджера пакетів. Глобальні інсталяції npm використовують поетапне
встановлення: OpenClaw установлює новий пакет у тимчасовий префікс npm,
дозволяє пакету-кандидату перевірити версію Node хоста під час preinstall
і перевіряє там упакований перелік dist. Упакований запобіжник завершення
залишається поза цим переліком, доки preinstall не завершиться успішно, тому менеджери пакетів,
які пропускають сценарії життєвого циклу, також зупиняються до активації. У npm 12 і новіших версіях
засіб оновлення дозволяє лише життєвий цикл пакета-кандидата OpenClaw; сценарії
транзитивних залежностей залишаються заблокованими. Потім OpenClaw переміщує чисте дерево пакета
до справжнього глобального префікса. Якщо перевірка завершується помилкою, doctor після оновлення, синхронізація
плагінів і перезапуск не виконуються з підозрілого дерева. Навіть коли
встановлена версія вже відповідає цільовій, команда оновлює
глобальну інсталяцію пакета, а потім виконує синхронізацію плагінів, оновлення автодоповнення
команд ядра та перезапуск. Це підтримує відповідність упакованих допоміжних компонентів і записів
плагінів, керованих каналом, установленій збірці OpenClaw, водночас залишаючи повне
перегенерування автодоповнення команд плагінів для явних запусків
openclaw completion --write-state.
Пов’язані матеріали
openclaw doctor(пропонує спочатку запустити оновлення для git-робочих копій)- Канали розробки
- Оновлення
- Довідник CLI