---
read_when:
    - У вас проблеми з підключенням або автентифікацією, і вам потрібні покрокові вказівки з їх виправлення
    - Ви оновили й хочете швидку перевірку
summary: Довідник CLI для `openclaw doctor` (перевірки стану + керовані виправлення)
title: Діагностика
x-i18n:
    generated_at: "2026-05-12T08:45:23Z"
    model: gpt-5.5
    provider: openai
    source_hash: 90050276597a50abcc3638e7b7b50f29ef0682f5da30d33d5dca3ad6117173e0
    source_path: cli/doctor.md
    workflow: 16
---

# `openclaw doctor`

Перевірки справності + швидкі виправлення для Gateway і каналів.

Пов’язано:

- Усунення несправностей: [Усунення несправностей](/uk/gateway/troubleshooting)
- Аудит безпеки: [Безпека](/uk/gateway/security)

## Приклади

```bash
openclaw doctor
openclaw doctor --repair
openclaw doctor --deep
openclaw doctor --repair --non-interactive
openclaw doctor --generate-gateway-token
```

Для дозволів, специфічних для каналу, використовуйте проби каналів замість `doctor`:

```bash
openclaw channels capabilities --channel discord --target channel:<channel-id>
openclaw channels status --probe
```

Цільова проба можливостей Discord повідомляє ефективні дозволи бота в каналі; проба стану перевіряє налаштовані канали Discord і цілі автоматичного приєднання до голосових каналів.

## Опції

- `--no-workspace-suggestions`: вимкнути пропозиції пам’яті/пошуку робочої області
- `--yes`: приймати стандартні значення без запитів
- `--repair`: застосувати рекомендовані виправлення, не пов’язані із сервісом, без запитів; установлення й перезапис сервісу Gateway усе одно потребують інтерактивного підтвердження або явних команд Gateway
- `--fix`: псевдонім для `--repair`
- `--force`: застосувати агресивні виправлення, зокрема перезапис власної конфігурації сервісу за потреби
- `--non-interactive`: виконати без запитів; лише безпечні міграції та виправлення, не пов’язані із сервісом
- `--generate-gateway-token`: згенерувати й налаштувати токен Gateway
- `--deep`: просканувати системні сервіси на наявність додаткових установлень Gateway і повідомити про нещодавні передавання перезапуску супервізора Gateway

Примітки:

- У режимі Nix (`OPENCLAW_NIX_MODE=1`) перевірки `doctor` лише для читання й надалі працюють, але `doctor --fix`, `doctor --repair`, `doctor --yes` і `doctor --generate-gateway-token` вимкнено, оскільки `openclaw.json` є незмінним. Натомість відредагуйте джерело Nix для цього встановлення; для nix-openclaw використовуйте орієнтований на агента [Швидкий старт](https://github.com/openclaw/nix-openclaw#quick-start).
- Інтерактивні запити (наприклад, виправлення keychain/OAuth) виконуються лише тоді, коли stdin є TTY і `--non-interactive` **не** встановлено. Безголові запуски (cron, Telegram, без термінала) пропускатимуть запити.
- Продуктивність: неінтерактивні запуски `doctor` пропускають завчасне завантаження plugin, щоб безголові перевірки справності залишалися швидкими. Інтерактивні сеанси й надалі повністю завантажують plugins, коли перевірці потрібен їхній внесок.
- `--fix` (псевдонім для `--repair`) записує резервну копію до `~/.openclaw/openclaw.json.bak` і вилучає невідомі ключі конфігурації, перелічуючи кожне вилучення.
- `doctor --fix --non-interactive` повідомляє про відсутні або застарілі визначення сервісу Gateway, але не встановлює й не перезаписує їх поза режимом виправлення оновлення. Запустіть `openclaw gateway install` для відсутнього сервісу або `openclaw gateway install --force`, коли ви навмисно хочете замінити запускувач.
- Перевірки цілісності стану тепер виявляють осиротілі файли transcript у каталозі сеансів. Архівування їх як `.deleted.<timestamp>` потребує інтерактивного підтвердження; `--fix`, `--yes` і безголові запуски залишають їх на місці.
- Doctor також сканує `~/.openclaw/cron/jobs.json` (або `cron.store`) на наявність застарілих форм завдань Cron і може перезаписати їх на місці до того, як планувальник муситиме автоматично нормалізувати їх під час виконання.
- У Linux Doctor попереджає, коли crontab користувача все ще запускає застарілий `~/.openclaw/bin/ensure-whatsapp.sh`; цей скрипт більше не підтримується й може логувати хибні збої Gateway WhatsApp, коли cron не має середовища systemd user-bus.
- Коли WhatsApp увімкнено, Doctor перевіряє наявність деградованого циклу подій Gateway, доки локальні клієнти `openclaw-tui` усе ще працюють. `doctor --fix` зупиняє лише перевірені локальні клієнти TUI, щоб відповіді WhatsApp не ставали в чергу за застарілими циклами оновлення TUI.
- Doctor переписує застарілі посилання моделей `openai-codex/*` на канонічні посилання `openai/*` у primary models, fallbacks, перевизначеннях heartbeat/subagent/compaction, hooks, перевизначеннях моделей каналів і застарілих прив’язках маршрутів сеансів. `--fix` переносить намір Codex у записи `agentRuntime.id: "codex"` із прив’язкою до provider/model, зберігає прив’язки auth-profile сеансів, як-от `openai-codex:...`, вилучає застарілі прив’язки runtime всього агента/сеансу та залишає виправлені посилання агентів OpenAI на маршрутизації автентифікації Codex замість прямої автентифікації OpenAI API-key.
- Doctor очищає застарілий проміжний стан залежностей plugin, створений старішими версіями OpenClaw, і повторно зв’язує хостовий пакет `openclaw` для керованих npm plugins, які оголошують його як peer dependency. Він також виправляє відсутні завантажувані plugins, на які посилається конфігурація, як-от `plugins.entries`, налаштовані канали, налаштовані параметри provider/search або налаштовані agent runtimes. Під час оновлень пакетів Doctor пропускає виправлення plugin через package manager, доки заміну пакета не буде завершено; після цього повторно запустіть `openclaw doctor --fix`, якщо налаштований plugin усе ще потребує відновлення. Якщо завантаження не вдається, Doctor повідомляє помилку встановлення й зберігає налаштований запис plugin для наступної спроби виправлення.
- Doctor виправляє застарілу конфігурацію plugin, вилучаючи відсутні id plugin з `plugins.allow`/`plugins.deny`/`plugins.entries`, а також відповідну висячу конфігурацію каналів, цілі Heartbeat і перевизначення моделей каналів, коли виявлення plugin справне.
- Doctor ізолює недійсну конфігурацію plugin, вимикаючи відповідний запис `plugins.entries.<id>` і вилучаючи його недійсне корисне навантаження `config`. Запуск Gateway уже пропускає лише цей несправний plugin, тож інші plugins і канали можуть продовжувати працювати.
- Установіть `OPENCLAW_SERVICE_REPAIR_POLICY=external`, коли інший супервізор керує життєвим циклом Gateway. Doctor і надалі повідомляє про справність Gateway/сервісу та застосовує виправлення, не пов’язані із сервісом, але пропускає встановлення/запуск/перезапуск/bootstrap сервісу та очищення застарілого сервісу.
- У Linux Doctor ігнорує неактивні додаткові gateway-подібні systemd units і не перезаписує метадані command/entrypoint для запущеного systemd-сервісу Gateway під час виправлення. Спершу зупиніть сервіс або використайте `openclaw gateway install --force`, коли ви навмисно хочете замінити активний запускувач.
- Doctor автоматично мігрує застарілу пласку конфігурацію Talk (`talk.voiceId`, `talk.modelId` тощо) у `talk.provider` + `talk.providers.<provider>`.
- Повторні запуски `doctor --fix` більше не повідомляють і не застосовують нормалізацію Talk, коли єдина різниця полягає в порядку ключів об’єкта.
- Doctor містить перевірку готовності memory-search і може рекомендувати `openclaw configure --section model`, коли бракує облікових даних embedding.
- Doctor попереджає, коли не налаштовано власника команд. Власник команд — це обліковий запис людини-оператора, якому дозволено виконувати команди лише для власника й затверджувати небезпечні дії. Спарювання через DM лише дозволяє комусь спілкуватися з ботом; якщо ви затвердили відправника до появи bootstrap першого власника, явно встановіть `commands.ownerAllowFrom`.
- Doctor попереджає, коли налаштовано агентів у режимі Codex і в Codex home оператора існують особисті ресурси Codex CLI. Локальні запуски Codex app-server використовують ізольовані домівки для кожного агента, тому використовуйте `openclaw migrate codex --dry-run`, щоб інвентаризувати ресурси, які слід просувати свідомо.
- Doctor вилучає вилучений з обігу `plugins.entries.codex.config.codexDynamicToolsProfile`; Codex app-server завжди залишає нативні workspace tools Codex нативними.
- Doctor попереджає, коли skills, дозволені для типового агента, недоступні в поточному runtime-середовищі, бо бракує bins, env vars, config або вимог ОС. `doctor --fix` може вимкнути ці недоступні skills за допомогою `skills.entries.<skill>.enabled=false`; натомість установіть/налаштуйте відсутню вимогу, коли хочете залишити skill активним.
- Якщо режим sandbox увімкнено, але Docker недоступний, Doctor повідомляє високосигнальне попередження з виправленням (`install Docker` або `openclaw config set agents.defaults.sandbox.mode off`).
- Якщо наявні застарілі файли реєстру sandbox (`~/.openclaw/sandbox/containers.json` або `~/.openclaw/sandbox/browsers.json`), Doctor повідомляє про них; `openclaw doctor --fix` мігрує дійсні записи в шардовані каталоги реєстру й ізолює недійсні застарілі файли.
- Якщо `gateway.auth.token`/`gateway.auth.password` керуються SecretRef і недоступні в поточному шляху команди, Doctor повідомляє попередження лише для читання й не записує резервні облікові дані відкритим текстом.
- Якщо перевірка SecretRef каналу не вдається в шляху виправлення, Doctor продовжує роботу й повідомляє попередження замість дострокового виходу.
- Після міграцій каталогу стану Doctor попереджає, коли ввімкнені типові облікові записи Telegram або Discord залежать від резервного env, а `TELEGRAM_BOT_TOKEN` або `DISCORD_BOT_TOKEN` недоступні процесу Doctor.
- Автоматичне розпізнавання імен користувачів Telegram `allowFrom` (`doctor --fix`) потребує доступного для розв’язання токена Telegram у поточному шляху команди. Якщо перевірка токена недоступна, Doctor повідомляє попередження й пропускає автоматичне розпізнавання для цього проходу.

## macOS: перевизначення env `launchctl`

Якщо ви раніше запускали `launchctl setenv OPENCLAW_GATEWAY_TOKEN ...` (або `...PASSWORD`), це значення перевизначає ваш файл конфігурації й може спричиняти сталі помилки "unauthorized".

```bash
launchctl getenv OPENCLAW_GATEWAY_TOKEN
launchctl getenv OPENCLAW_GATEWAY_PASSWORD

launchctl unsetenv OPENCLAW_GATEWAY_TOKEN
launchctl unsetenv OPENCLAW_GATEWAY_PASSWORD
```

## Пов’язано

- [Довідник CLI](/uk/cli)
- [Gateway doctor](/uk/gateway/doctor)
