---
read_when:
    - Ви хочете безпечно оновити робочу копію вихідного коду
    - Ви налагоджуєте вивід або параметри `openclaw update`
    - Потрібно розуміти поведінку скороченого запису `--update`
summary: Довідник CLI для `openclaw update` (відносно безпечне оновлення джерела + автоматичний перезапуск Gateway)
title: Оновити
x-i18n:
    generated_at: "2026-05-12T08:45:46Z"
    model: gpt-5.5
    provider: openai
    source_hash: 93244af800aaa53c55a52f9593a7727910aa91acac9d1e34e89c39a95b133461
    source_path: cli/update.md
    workflow: 16
---

# `openclaw update`

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

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

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

```bash
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`: попередньо переглянути заплановані дії оновлення (канал/тег/ціль/потік перезапуску) без запису конфігурації, встановлення, синхронізації плагінів або перезапуску.
- `--json`: вивести машиночитний JSON `UpdateRunResult`, зокрема
  `postUpdate.plugins.warnings`, коли пошкоджені або незавантажувані керовані плагіни потребують
  відновлення після успішного оновлення ядра, подробиці fallback для плагінів beta-каналу,
  коли плагін не має beta-релізу, і `postUpdate.plugins.integrityDrifts`,
  коли під час післяоновлювальної синхронізації плагінів виявлено розбіжність артефакту npm-плагіна.
- `--timeout <seconds>`: час очікування для кожного кроку (типово 1800 с).
- `--yes`: пропустити запити підтвердження (наприклад, підтвердження пониження версії).

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

<Note>
У режимі Nix (`OPENCLAW_NIX_MODE=1`) змінювальні запуски `openclaw update` вимкнено. Натомість оновіть джерело Nix або вхід flake для цього встановлення; для nix-openclaw використовуйте agent-first [Швидкий старт](https://github.com/openclaw/nix-openclaw#quick-start). `openclaw update status` і `openclaw update --dry-run` залишаються лише для читання.
</Note>

<Warning>
Пониження версії потребує підтвердження, оскільки старіші версії можуть зламати конфігурацію.
</Warning>

## `update status`

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

```bash
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` → надає перевагу dist-tag npm `beta`, але повертається до `latest`, коли beta
  відсутня або старіша за поточний stable-реліз.

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

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

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

## Потік git checkout

### Вибір каналу

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

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

<Steps>
  <Step title="Перевірити чистий worktree">
    Потребує відсутності незакомічених змін.
  </Step>
  <Step title="Перемкнути канал">
    Перемикає на вибраний канал (тег або гілку).
  </Step>
  <Step title="Отримати upstream">
    Лише dev.
  </Step>
  <Step title="Передполітна збірка (лише dev)">
    Запускає збірку TypeScript у тимчасовому worktree. Якщо tip не проходить, повертається назад до 10 комітів, щоб знайти найновіший коміт, який збирається. Установіть `OPENCLAW_UPDATE_PREFLIGHT_LINT=1`, щоб також запускати lint під час цієї передполітної перевірки; lint запускається в обмеженому послідовному режимі, оскільки хости користувацьких оновлень часто менші за CI runner-и.
  </Step>
  <Step title="Rebase">
    Виконує rebase на вибраний коміт (лише dev).
  </Step>
  <Step title="Встановити залежності">
    Використовує менеджер пакетів репозиторію. Для pnpm checkout-ів updater bootstraps `pnpm` на вимогу (спочатку через `corepack`, потім fallback із тимчасовим `npm install pnpm@11`) замість запуску `npm run build` у pnpm workspace.
  </Step>
  <Step title="Зібрати інтерфейс керування">
    Збирає gateway та інтерфейс керування.
  </Step>
  <Step title="Запустити doctor">
    `openclaw doctor` запускається як фінальна перевірка безпечного оновлення.
  </Step>
  <Step title="Синхронізувати плагіни">
    Синхронізує плагіни з активним каналом. Dev використовує bundled плагіни; stable і beta використовують npm. Оновлює відстежувані встановлення плагінів.
  </Step>
</Steps>

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

<Warning>
Якщо оновлення точно зафіксованого npm-плагіна resolve-иться в артефакт, чия integrity відрізняється від збереженого запису встановлення, `openclaw update` перериває оновлення цього артефакту плагіна замість його встановлення. Перевстановіть або оновіть плагін явно лише після перевірки, що ви довіряєте новому артефакту.
</Warning>

<Note>
Післяоновлювальні збої синхронізації плагінів, обмежені керованим плагіном і які шлях синхронізації може обійти (наприклад, недоступний npm registry для несуттєвого плагіна), повідомляються як попередження після успішного оновлення ядра. JSON-результат зберігає верхньорівневий update `status: "ok"` і повідомляє `postUpdate.plugins.status: "warning"` із рекомендаціями `openclaw doctor --fix` і `openclaw plugins inspect <id> --runtime --json`. Неочікувані винятки updater-а або синхронізації все одно призводять до збою результату оновлення. Виправте встановлення плагіна або помилку оновлення, потім повторно запустіть `openclaw doctor --fix` або `openclaw update`.

Після кроку синхронізації для кожного плагіна `openclaw update` запускає обовʼязковий прохід **післяядерної конвергенції** перед перезапуском gateway: він відновлює відсутні налаштовані payload-и плагінів, перевіряє кожен _активний_ відстежуваний запис встановлення на диску та статично перевіряє, що його `package.json` можна розпарсити (і що будь-який явно оголошений `main` існує). Збої цього проходу — і недійсний знімок конфігурації OpenClaw — повертають `postUpdate.plugins.status: "error"` і змінюють верхньорівневий update `status` на `"error"`, тому `openclaw update` завершується з ненульовим кодом, а gateway _не_ перезапускається з неперевіреним набором плагінів. Помилка містить структуровані рядки `postUpdate.plugins.warnings[].guidance`, що вказують на `openclaw doctor --fix` і `openclaw plugins inspect <id> --runtime --json` для подальших дій. Вимкнені записи плагінів і записи, що не є trust-source-linked офіційними цілями синхронізації, тут пропускаються, віддзеркалюючи політику `skipDisabledPlugins`, яку використовує перевірка missing-payload, тому застарілий вимкнений запис плагіна не може заблокувати інакше дійсне оновлення.

Коли оновлений Gateway запускається, завантаження плагінів відбувається лише в режимі перевірки: startup не запускає менеджери пакетів і не змінює дерева залежностей. Перезапуски `update.run` через менеджер пакетів обходять звичайне відкладення простою та cooldown перезапуску після заміни дерева пакета, тому старий процес не може продовжувати lazy-loading видалених фрагментів.

Якщо bootstrap pnpm усе ще не вдається, updater зупиняється рано з помилкою, специфічною для менеджера пакетів, замість спроби `npm run build` усередині checkout.
</Note>

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

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

## Повʼязане

- `openclaw doctor` (пропонує спершу запустити update для git checkout-ів)
- [Канали розробки](/uk/install/development-channels)
- [Оновлення](/uk/install/updating)
- [Довідник CLI](/uk/cli)
