chore(i18n): refresh uk translations
This commit is contained in:
parent
f712c2407d
commit
49a6c1eae2
327
docs/uk/cli/acp.md
Normal file
327
docs/uk/cli/acp.md
Normal file
@ -0,0 +1,327 @@
|
||||
---
|
||||
read_when:
|
||||
- Налаштування інтеграцій IDE на основі ACP
|
||||
- Налагодження маршрутизації сеансів ACP до Gateway
|
||||
summary: Запустіть міст ACP для інтеграцій IDE
|
||||
title: acp
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:17:04Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: b098c59e24cac23d533ea3b3828c95bd43d85ebf6e1361377122018777678720
|
||||
source_path: cli/acp.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# acp
|
||||
|
||||
Запустіть міст [Agent Client Protocol (ACP)](https://agentclientprotocol.com/), який взаємодіє з Gateway OpenClaw.
|
||||
|
||||
Ця команда використовує ACP через stdio для IDE і пересилає запити до Gateway
|
||||
через WebSocket. Вона підтримує відповідність сеансів ACP ключам сеансів Gateway.
|
||||
|
||||
`openclaw acp` — це міст ACP на основі Gateway, а не повноцінне редакторське
|
||||
середовище виконання з нативною підтримкою ACP. Він зосереджується на
|
||||
маршрутизації сеансів, доставці запитів і базових оновленнях потокової передачі.
|
||||
|
||||
Якщо ви хочете, щоб зовнішній клієнт MCP напряму взаємодіяв із розмовами каналів
|
||||
OpenClaw замість розміщення сеансу ACP harness, використовуйте
|
||||
[`openclaw mcp serve`](/uk/cli/mcp).
|
||||
|
||||
## Що це не є
|
||||
|
||||
Цю сторінку часто плутають із сеансами ACP harness.
|
||||
|
||||
`openclaw acp` означає:
|
||||
|
||||
- OpenClaw працює як ACP-сервер
|
||||
- IDE або ACP-клієнт підключається до OpenClaw
|
||||
- OpenClaw пересилає цю роботу в сеанс Gateway
|
||||
|
||||
Це відрізняється від [ACP Agents](/uk/tools/acp-agents), де OpenClaw запускає
|
||||
зовнішній harness, наприклад Codex або Claude Code, через `acpx`.
|
||||
|
||||
Коротке правило:
|
||||
|
||||
- якщо редактор/клієнт хоче взаємодіяти з OpenClaw через ACP: використовуйте `openclaw acp`
|
||||
- якщо OpenClaw має запускати Codex/Claude/Gemini як ACP harness: використовуйте `/acp spawn` і [ACP Agents](/uk/tools/acp-agents)
|
||||
|
||||
## Матриця сумісності
|
||||
|
||||
| Область ACP | Стан | Примітки |
|
||||
| -------------------------------------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `initialize`, `newSession`, `prompt`, `cancel` | Реалізовано | Основний потік роботи мосту через stdio до Gateway chat/send + abort. |
|
||||
| `listSessions`, slash-команди | Реалізовано | Список сеансів працює зі станом сеансів Gateway; команди оголошуються через `available_commands_update`. |
|
||||
| `loadSession` | Частково | Повторно прив’язує сеанс ACP до ключа сеансу Gateway і відтворює збережену історію текстів користувача/асистента. Історія інструментів/системи поки що не відновлюється. |
|
||||
| Вміст запиту (`text`, вбудований `resource`, зображення) | Частково | Текст/ресурси згортаються у вхідні дані чату; зображення стають вкладеннями Gateway. |
|
||||
| Режими сеансу | Частково | Підтримується `session/set_mode`, і міст надає початкові елементи керування сеансом на основі Gateway для рівня thought, деталізації інструментів, reasoning, деталізації використання та elevated actions. Ширші нативні поверхні режимів/конфігурації ACP поки що поза межами. |
|
||||
| Інформація про сеанс і оновлення використання | Частково | Міст надсилає сповіщення `session_info_update` і `usage_update` у режимі best-effort на основі кешованих знімків сеансів Gateway. Використання приблизне й надсилається лише тоді, коли Gateway позначає загальні підсумки токенів як актуальні. |
|
||||
| Потокова передача інструментів | Частково | Події `tool_call` / `tool_call_update` містять необроблений ввід/вивід, текстовий вміст і дані про розташування файлів у режимі best-effort, якщо аргументи/результати інструментів Gateway їх містять. Вбудовані термінали й багатший diff-вивід поки що недоступні. |
|
||||
| MCP-сервери для кожного сеансу (`mcpServers`) | Не підтримується | Режим моста відхиляє запити на MCP-сервери для окремих сеансів. Налаштовуйте MCP на шлюзі OpenClaw або в агенті. |
|
||||
| Методи файлової системи клієнта (`fs/read_text_file`, `fs/write_text_file`) | Не підтримується | Міст не викликає методи файлової системи ACP-клієнта. |
|
||||
| Методи термінала клієнта (`terminal/*`) | Не підтримується | Міст не створює термінали ACP-клієнта і не передає id терміналів через виклики інструментів у потоковому режимі. |
|
||||
| Плани сеансу / потокова передача thought | Не підтримується | Наразі міст передає вихідний текст і стан інструментів, а не оновлення планів або thought ACP. |
|
||||
|
||||
## Відомі обмеження
|
||||
|
||||
- `loadSession` відтворює збережену текстову історію користувача й асистента,
|
||||
але не відновлює історичні виклики інструментів, системні сповіщення або
|
||||
багатші типи подій, нативні для ACP.
|
||||
- Якщо кілька ACP-клієнтів використовують один і той самий ключ сеансу Gateway,
|
||||
маршрутизація подій і скасування працює в режимі best-effort, а не зі строгою
|
||||
ізоляцією для кожного клієнта. Якщо вам потрібні чисті локальні для редактора
|
||||
ходи, віддавайте перевагу типовим ізольованим сеансам `acp:<uuid>`.
|
||||
- Стани зупинки Gateway перетворюються на причини зупинки ACP, але таке
|
||||
зіставлення менш виразне, ніж у повністю нативному середовищі ACP.
|
||||
- Початкові елементи керування сеансом наразі охоплюють лише вибраний набір
|
||||
параметрів Gateway: рівень thought, деталізацію інструментів, reasoning,
|
||||
деталізацію використання та elevated actions. Вибір моделі й параметри
|
||||
exec-host поки що не доступні як опції конфігурації ACP.
|
||||
- `session_info_update` і `usage_update` виводяться зі знімків сеансів Gateway,
|
||||
а не з живого нативного обліку середовища ACP. Дані використання приблизні,
|
||||
не містять відомостей про вартість і надсилаються лише тоді, коли Gateway
|
||||
позначає загальні дані про токени як актуальні.
|
||||
- Дані супроводу інструментів працюють у режимі best-effort. Міст може
|
||||
показувати шляхи до файлів, що з’являються у відомих аргументах/результатах
|
||||
інструментів, але поки що не передає ACP-термінали або структуровані file diff.
|
||||
|
||||
## Використання
|
||||
|
||||
```bash
|
||||
openclaw acp
|
||||
|
||||
# Віддалений Gateway
|
||||
openclaw acp --url wss://gateway-host:18789 --token <token>
|
||||
|
||||
# Віддалений Gateway (токен із файлу)
|
||||
openclaw acp --url wss://gateway-host:18789 --token-file ~/.openclaw/gateway.token
|
||||
|
||||
# Під’єднатися до наявного ключа сеансу
|
||||
openclaw acp --session agent:main:main
|
||||
|
||||
# Під’єднатися за міткою (має вже існувати)
|
||||
openclaw acp --session-label "support inbox"
|
||||
|
||||
# Скинути ключ сеансу перед першим запитом
|
||||
openclaw acp --session agent:main:main --reset-session
|
||||
```
|
||||
|
||||
## ACP-клієнт (налагодження)
|
||||
|
||||
Використовуйте вбудований ACP-клієнт, щоб базово перевірити міст без IDE.
|
||||
Він запускає міст ACP і дозволяє інтерактивно вводити запити.
|
||||
|
||||
```bash
|
||||
openclaw acp client
|
||||
|
||||
# Спрямувати запущений міст на віддалений Gateway
|
||||
openclaw acp client --server-args --url wss://gateway-host:18789 --token-file ~/.openclaw/gateway.token
|
||||
|
||||
# Перевизначити команду сервера (типово: openclaw)
|
||||
openclaw acp client --server "node" --server-args openclaw.mjs acp --url ws://127.0.0.1:19001
|
||||
```
|
||||
|
||||
Модель дозволів (режим налагодження клієнта):
|
||||
|
||||
- Автопогодження базується на allowlist і застосовується лише до довірених id основних інструментів.
|
||||
- Автопогодження `read` обмежене поточним робочим каталогом (`--cwd`, якщо вказано).
|
||||
- ACP автоматично погоджує лише вузькі класи операцій лише для читання: обмежені виклики `read` у межах активного cwd і інструменти пошуку лише для читання (`search`, `web_search`, `memory_search`). Невідомі/неосновні інструменти, читання поза межами області, інструменти з можливістю виконання, інструменти control plane, інструменти зі змінами стану та інтерактивні потоки завжди потребують явного погодження через запит.
|
||||
- Наданий сервером `toolCall.kind` вважається недовіреними метаданими, а не джерелом авторизації.
|
||||
- Ця політика моста ACP окрема від дозволів ACPX harness. Якщо ви запускаєте OpenClaw через бекенд `acpx`, то `plugins.entries.acpx.config.permissionMode=approve-all` є аварійним перемикачем “yolo” для цього сеансу harness.
|
||||
|
||||
## Як цим користуватися
|
||||
|
||||
Використовуйте ACP, коли IDE (або інший клієнт) підтримує Agent Client Protocol і
|
||||
ви хочете, щоб він керував сеансом Gateway OpenClaw.
|
||||
|
||||
1. Переконайтеся, що Gateway запущено (локально або віддалено).
|
||||
2. Налаштуйте ціль Gateway (через конфігурацію або прапорці).
|
||||
3. Налаштуйте IDE на запуск `openclaw acp` через stdio.
|
||||
|
||||
Приклад конфігурації (зберігається):
|
||||
|
||||
```bash
|
||||
openclaw config set gateway.remote.url wss://gateway-host:18789
|
||||
openclaw config set gateway.remote.token <token>
|
||||
```
|
||||
|
||||
Приклад прямого запуску (без запису конфігурації):
|
||||
|
||||
```bash
|
||||
openclaw acp --url wss://gateway-host:18789 --token <token>
|
||||
# бажано для безпеки локального процесу
|
||||
openclaw acp --url wss://gateway-host:18789 --token-file ~/.openclaw/gateway.token
|
||||
```
|
||||
|
||||
## Вибір агентів
|
||||
|
||||
ACP не вибирає агентів напряму. Він виконує маршрутизацію за ключем сеансу Gateway.
|
||||
|
||||
Використовуйте ключі сеансів з областю агента, щоб націлитися на конкретного агента:
|
||||
|
||||
```bash
|
||||
openclaw acp --session agent:main:main
|
||||
openclaw acp --session agent:design:main
|
||||
openclaw acp --session agent:qa:bug-123
|
||||
```
|
||||
|
||||
Кожен сеанс ACP відповідає одному ключу сеансу Gateway. Один агент може мати
|
||||
багато сеансів; типово ACP використовує ізольований сеанс `acp:<uuid>`, якщо ви
|
||||
не перевизначите ключ або мітку.
|
||||
|
||||
`mcpServers` для окремих сеансів не підтримуються в режимі моста. Якщо ACP-клієнт
|
||||
надсилає їх під час `newSession` або `loadSession`, міст повертає зрозумілу
|
||||
помилку замість того, щоб мовчки їх ігнорувати.
|
||||
|
||||
Якщо ви хочете, щоб сеанси з підтримкою ACPX бачили інструменти Plugin OpenClaw
|
||||
або вибрані вбудовані інструменти, такі як `cron`, увімкніть MCP-мости ACPX на
|
||||
боці Gateway замість спроби передавати `mcpServers` для окремих сеансів. Див.
|
||||
[ACP Agents](/uk/tools/acp-agents#plugin-tools-mcp-bridge) і
|
||||
[міст MCP інструментів OpenClaw](/uk/tools/acp-agents#openclaw-tools-mcp-bridge).
|
||||
|
||||
## Використання з `acpx` (Codex, Claude, інші ACP-клієнти)
|
||||
|
||||
Якщо ви хочете, щоб агент для програмування, наприклад Codex або Claude Code,
|
||||
взаємодіяв із вашим ботом OpenClaw через ACP, використовуйте `acpx` з його
|
||||
вбудованою ціллю `openclaw`.
|
||||
|
||||
Типовий потік:
|
||||
|
||||
1. Запустіть Gateway і переконайтеся, що міст ACP може до нього дістатися.
|
||||
2. Спрямуйте `acpx openclaw` на `openclaw acp`.
|
||||
3. Вкажіть ключ сеансу OpenClaw, який має використовувати агент для програмування.
|
||||
|
||||
Приклади:
|
||||
|
||||
```bash
|
||||
# Одноразовий запит до вашого типового ACP-сеансу OpenClaw
|
||||
acpx openclaw exec "Summarize the active OpenClaw session state."
|
||||
|
||||
# Постійний іменований сеанс для подальших ходів
|
||||
acpx openclaw sessions ensure --name codex-bridge
|
||||
acpx openclaw -s codex-bridge --cwd /path/to/repo \
|
||||
"Ask my OpenClaw work agent for recent context relevant to this repo."
|
||||
```
|
||||
|
||||
Якщо ви хочете, щоб `acpx openclaw` щоразу звертався до конкретного Gateway і
|
||||
ключа сеансу, перевизначте команду агента `openclaw` у `~/.acpx/config.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"agents": {
|
||||
"openclaw": {
|
||||
"command": "env OPENCLAW_HIDE_BANNER=1 OPENCLAW_SUPPRESS_NOTES=1 openclaw acp --url ws://127.0.0.1:18789 --token-file ~/.openclaw/gateway.token --session agent:main:main"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Для локальної checkout-копії OpenClaw використовуйте прямий вхід до CLI замість
|
||||
dev runner, щоб потік ACP залишався чистим. Наприклад:
|
||||
|
||||
```bash
|
||||
env OPENCLAW_HIDE_BANNER=1 OPENCLAW_SUPPRESS_NOTES=1 node openclaw.mjs acp ...
|
||||
```
|
||||
|
||||
Це найпростіший спосіб дозволити Codex, Claude Code або іншому ACP-сумісному
|
||||
клієнту отримувати контекстну інформацію від агента OpenClaw без парсингу
|
||||
термінала.
|
||||
|
||||
## Налаштування редактора Zed
|
||||
|
||||
Додайте власного ACP-агента в `~/.config/zed/settings.json` (або використовуйте інтерфейс налаштувань Zed):
|
||||
|
||||
```json
|
||||
{
|
||||
"agent_servers": {
|
||||
"OpenClaw ACP": {
|
||||
"type": "custom",
|
||||
"command": "openclaw",
|
||||
"args": ["acp"],
|
||||
"env": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Щоб націлитися на конкретний Gateway або агента:
|
||||
|
||||
```json
|
||||
{
|
||||
"agent_servers": {
|
||||
"OpenClaw ACP": {
|
||||
"type": "custom",
|
||||
"command": "openclaw",
|
||||
"args": [
|
||||
"acp",
|
||||
"--url",
|
||||
"wss://gateway-host:18789",
|
||||
"--token",
|
||||
"<token>",
|
||||
"--session",
|
||||
"agent:design:main"
|
||||
],
|
||||
"env": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
У Zed відкрийте панель Agent і виберіть “OpenClaw ACP”, щоб почати гілку.
|
||||
|
||||
## Відображення сеансів
|
||||
|
||||
Типово сеанси ACP отримують ізольований ключ сеансу Gateway з префіксом `acp:`.
|
||||
Щоб повторно використати відомий сеанс, передайте ключ або мітку сеансу:
|
||||
|
||||
- `--session <key>`: використовувати конкретний ключ сеансу Gateway.
|
||||
- `--session-label <label>`: знайти наявний сеанс за міткою.
|
||||
- `--reset-session`: згенерувати новий id сеансу для цього ключа (той самий ключ, новий transcript).
|
||||
|
||||
Якщо ваш ACP-клієнт підтримує метадані, ви можете перевизначити значення для окремого сеансу:
|
||||
|
||||
```json
|
||||
{
|
||||
"_meta": {
|
||||
"sessionKey": "agent:main:main",
|
||||
"sessionLabel": "support inbox",
|
||||
"resetSession": true
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Докладніше про ключі сеансів: [/concepts/session](/uk/concepts/session).
|
||||
|
||||
## Параметри
|
||||
|
||||
- `--url <url>`: URL WebSocket Gateway (типово `gateway.remote.url`, якщо налаштовано).
|
||||
- `--token <token>`: токен автентифікації Gateway.
|
||||
- `--token-file <path>`: зчитати токен автентифікації Gateway з файлу.
|
||||
- `--password <password>`: пароль автентифікації Gateway.
|
||||
- `--password-file <path>`: зчитати пароль автентифікації Gateway з файлу.
|
||||
- `--session <key>`: типовий ключ сеансу.
|
||||
- `--session-label <label>`: типова мітка сеансу для пошуку.
|
||||
- `--require-existing`: завершитися з помилкою, якщо ключ/мітка сеансу не існує.
|
||||
- `--reset-session`: скинути ключ сеансу перед першим використанням.
|
||||
- `--no-prefix-cwd`: не додавати робочий каталог як префікс до запитів.
|
||||
- `--provenance <off|meta|meta+receipt>`: включати метадані provenance ACP або receipts.
|
||||
- `--verbose, -v`: докладне журналювання у stderr.
|
||||
|
||||
Примітка щодо безпеки:
|
||||
|
||||
- `--token` і `--password` можуть бути видимі у локальних списках процесів у деяких системах.
|
||||
- Віддавайте перевагу `--token-file`/`--password-file` або змінним середовища (`OPENCLAW_GATEWAY_TOKEN`, `OPENCLAW_GATEWAY_PASSWORD`).
|
||||
- Визначення автентифікації Gateway дотримується спільного контракту, який використовують інші клієнти Gateway:
|
||||
- локальний режим: env (`OPENCLAW_GATEWAY_*`) -> `gateway.auth.*` -> резервне `gateway.remote.*` лише коли `gateway.auth.*` не задано (локальні SecretRef, які налаштовані, але не можуть бути визначені, завершуються з помилкою без резервного варіанта)
|
||||
- віддалений режим: `gateway.remote.*` з резервним env/config згідно з правилами пріоритету для віддаленого режиму
|
||||
- `--url` безпечно перевизначає значення й не використовує неявні облікові дані з config/env; передайте явний `--token`/`--password` (або варіанти з файлами)
|
||||
- Дочірні процеси runtime backend ACP отримують `OPENCLAW_SHELL=acp`, що можна використовувати для контекстно-специфічних правил shell/profile.
|
||||
- `openclaw acp client` встановлює `OPENCLAW_SHELL=acp-client` у процесі запущеного моста.
|
||||
|
||||
### Параметри `acp client`
|
||||
|
||||
- `--cwd <dir>`: робочий каталог для сеансу ACP.
|
||||
- `--server <command>`: команда ACP-сервера (типово: `openclaw`).
|
||||
- `--server-args <args...>`: додаткові аргументи, передані ACP-серверу.
|
||||
- `--server-verbose`: увімкнути докладне журналювання на ACP-сервері.
|
||||
- `--verbose, -v`: докладне журналювання клієнта.
|
||||
64
docs/uk/cli/agent.md
Normal file
64
docs/uk/cli/agent.md
Normal file
@ -0,0 +1,64 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете запустити один хід агента зі скриптів (за бажанням доставити відповідь)
|
||||
summary: Довідка CLI для `openclaw agent` (надіслати один хід агента через Gateway)
|
||||
title: агент
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:17:03Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 4ba3181d74e9a8d6d607ee62b18e1e6fd693e64e7789e6b29b7f7b1ccb7b69d0
|
||||
source_path: cli/agent.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw agent`
|
||||
|
||||
Запустіть хід агента через Gateway (використовуйте `--local` для вбудованого режиму).
|
||||
Використовуйте `--agent <id>`, щоб напряму націлитися на налаштованого агента.
|
||||
|
||||
Передайте принаймні один селектор сесії:
|
||||
|
||||
- `--to <dest>`
|
||||
- `--session-id <id>`
|
||||
- `--agent <id>`
|
||||
|
||||
Пов’язане:
|
||||
|
||||
- Інструмент надсилання агенту: [Надсилання агенту](/uk/tools/agent-send)
|
||||
|
||||
## Параметри
|
||||
|
||||
- `-m, --message <text>`: обов’язкове тіло повідомлення
|
||||
- `-t, --to <dest>`: одержувач, який використовується для виведення ключа сесії
|
||||
- `--session-id <id>`: явний ідентифікатор сесії
|
||||
- `--agent <id>`: ідентифікатор агента; перевизначає прив’язки маршрутизації
|
||||
- `--thinking <level>`: рівень мислення агента (`off`, `minimal`, `low`, `medium`, `high`, а також підтримувані провайдером користувацькі рівні, як-от `xhigh`, `adaptive` або `max`)
|
||||
- `--verbose <on|off>`: зберегти рівень докладності для сесії
|
||||
- `--channel <channel>`: канал доставки; не вказуйте, щоб використовувати основний канал сесії
|
||||
- `--reply-to <target>`: перевизначення цілі доставки
|
||||
- `--reply-channel <channel>`: перевизначення каналу доставки
|
||||
- `--reply-account <id>`: перевизначення облікового запису доставки
|
||||
- `--local`: запустити вбудованого агента напряму (після попереднього завантаження реєстру Plugin)
|
||||
- `--deliver`: надіслати відповідь назад у вибраний канал/ціль
|
||||
- `--timeout <seconds>`: перевизначити тайм-аут агента (типово 600 або значення з конфігурації)
|
||||
- `--json`: вивести JSON
|
||||
|
||||
## Приклади
|
||||
|
||||
```bash
|
||||
openclaw agent --to +15555550123 --message "status update" --deliver
|
||||
openclaw agent --agent ops --message "Summarize logs"
|
||||
openclaw agent --session-id 1234 --message "Summarize inbox" --thinking medium
|
||||
openclaw agent --to +15555550123 --message "Trace logs" --verbose on --json
|
||||
openclaw agent --agent ops --message "Generate report" --deliver --reply-channel slack --reply-to "#reports"
|
||||
openclaw agent --agent ops --message "Run locally" --local
|
||||
```
|
||||
|
||||
## Примітки
|
||||
|
||||
- Режим Gateway повертається до вбудованого агента, якщо запит Gateway завершується помилкою. Використовуйте `--local`, щоб примусово виконати вбудований режим одразу.
|
||||
- `--local` усе одно спочатку попередньо завантажує реєстр Plugin, тому надані Plugin провайдери, інструменти й канали залишаються доступними під час вбудованих запусків.
|
||||
- `--channel`, `--reply-channel` і `--reply-account` впливають на доставку відповіді, а не на маршрутизацію сесії.
|
||||
- Коли ця команда запускає повторну генерацію `models.json`, облікові дані провайдера, керовані SecretRef, зберігаються як несекретні маркери (наприклад, назви змінних середовища, `secretref-env:ENV_VAR_NAME` або `secretref-managed`), а не як розкритий секретний відкритий текст.
|
||||
- Записи маркерів є авторитетними щодо джерела: OpenClaw зберігає маркери з активного знімка конфігурації джерела, а не з розв’язаних значень секретів у середовищі виконання.
|
||||
227
docs/uk/cli/agents.md
Normal file
227
docs/uk/cli/agents.md
Normal file
@ -0,0 +1,227 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете кілька ізольованих агентів (робочі простори + маршрутизація + автентифікація)
|
||||
summary: Довідка CLI для `openclaw agents` (list/add/delete/bindings/bind/unbind/set identity)
|
||||
title: агенти
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:17:05Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: f328d9f4ce636ce27defdcbcc48b1ca041bc25d0888c3e4df0dd79840f44ca8f
|
||||
source_path: cli/agents.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw agents`
|
||||
|
||||
Керуйте ізольованими агентами (робочі простори + автентифікація + маршрутизація).
|
||||
|
||||
Пов’язано:
|
||||
|
||||
- Маршрутизація між агентами: [Маршрутизація між агентами](/uk/concepts/multi-agent)
|
||||
- Робочий простір агента: [Робочий простір агента](/uk/concepts/agent-workspace)
|
||||
- Конфігурація видимості Skills: [Конфігурація Skills](/uk/tools/skills-config)
|
||||
|
||||
## Приклади
|
||||
|
||||
```bash
|
||||
openclaw agents list
|
||||
openclaw agents list --bindings
|
||||
openclaw agents add work --workspace ~/.openclaw/workspace-work
|
||||
openclaw agents add ops --workspace ~/.openclaw/workspace-ops --bind telegram:ops --non-interactive
|
||||
openclaw agents bindings
|
||||
openclaw agents bind --agent work --bind telegram:ops
|
||||
openclaw agents unbind --agent work --bind telegram:ops
|
||||
openclaw agents set-identity --workspace ~/.openclaw/workspace --from-identity
|
||||
openclaw agents set-identity --agent main --avatar avatars/openclaw.png
|
||||
openclaw agents delete work
|
||||
```
|
||||
|
||||
## Прив’язки маршрутизації
|
||||
|
||||
Використовуйте прив’язки маршрутизації, щоб закріпити вхідний трафік каналу за конкретним агентом.
|
||||
|
||||
Якщо ви також хочете різну видимість Skills для кожного агента, налаштуйте
|
||||
`agents.defaults.skills` і `agents.list[].skills` у `openclaw.json`. Див.
|
||||
[Конфігурація Skills](/uk/tools/skills-config) і
|
||||
[Довідник із конфігурації](/uk/gateway/configuration-reference#agents-defaults-skills).
|
||||
|
||||
Перелічити прив’язки:
|
||||
|
||||
```bash
|
||||
openclaw agents bindings
|
||||
openclaw agents bindings --agent work
|
||||
openclaw agents bindings --json
|
||||
```
|
||||
|
||||
Додати прив’язки:
|
||||
|
||||
```bash
|
||||
openclaw agents bind --agent work --bind telegram:ops --bind discord:guild-a
|
||||
```
|
||||
|
||||
Якщо ви пропустите `accountId` (`--bind <channel>`), OpenClaw визначить його з типових значень каналу та хуків налаштування plugin, якщо вони доступні.
|
||||
|
||||
Якщо ви пропустите `--agent` для `bind` або `unbind`, OpenClaw націлиться на поточний типовий агент.
|
||||
|
||||
### Поведінка області дії прив’язки
|
||||
|
||||
- Прив’язка без `accountId` відповідає лише типовому обліковому запису каналу.
|
||||
- `accountId: "*"` — це загальноканальний резервний варіант (усі облікові записи) і він менш специфічний, ніж явна прив’язка облікового запису.
|
||||
- Якщо той самий агент уже має відповідну прив’язку каналу без `accountId`, а ви пізніше виконаєте прив’язку з явним або визначеним `accountId`, OpenClaw оновить наявну прив’язку на місці замість додавання дубліката.
|
||||
|
||||
Приклад:
|
||||
|
||||
```bash
|
||||
# initial channel-only binding
|
||||
openclaw agents bind --agent work --bind telegram
|
||||
|
||||
# later upgrade to account-scoped binding
|
||||
openclaw agents bind --agent work --bind telegram:ops
|
||||
```
|
||||
|
||||
Після оновлення маршрутизація для цієї прив’язки буде обмежена `telegram:ops`. Якщо вам також потрібна маршрутизація для типового облікового запису, додайте її явно (наприклад, `--bind telegram:default`).
|
||||
|
||||
Видалити прив’язки:
|
||||
|
||||
```bash
|
||||
openclaw agents unbind --agent work --bind telegram:ops
|
||||
openclaw agents unbind --agent work --all
|
||||
```
|
||||
|
||||
`unbind` приймає або `--all`, або одне чи більше значень `--bind`, але не обидва варіанти одночасно.
|
||||
|
||||
## Поверхня команд
|
||||
|
||||
### `agents`
|
||||
|
||||
Запуск `openclaw agents` без підкоманди еквівалентний `openclaw agents list`.
|
||||
|
||||
### `agents list`
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--json`
|
||||
- `--bindings`: включити повні правила маршрутизації, а не лише кількість/зведення по агентах
|
||||
|
||||
### `agents add [name]`
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--workspace <dir>`
|
||||
- `--model <id>`
|
||||
- `--agent-dir <dir>`
|
||||
- `--bind <channel[:accountId]>` (можна повторювати)
|
||||
- `--non-interactive`
|
||||
- `--json`
|
||||
|
||||
Примітки:
|
||||
|
||||
- Передавання будь-яких явних прапорців додавання перемикає команду в неінтерактивний режим.
|
||||
- Неінтерактивний режим вимагає імені агента та `--workspace`.
|
||||
- `main` зарезервовано, і його не можна використовувати як новий ідентифікатор агента.
|
||||
|
||||
### `agents bindings`
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--agent <id>`
|
||||
- `--json`
|
||||
|
||||
### `agents bind`
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--agent <id>` (типово — поточний типовий агент)
|
||||
- `--bind <channel[:accountId]>` (можна повторювати)
|
||||
- `--json`
|
||||
|
||||
### `agents unbind`
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--agent <id>` (типово — поточний типовий агент)
|
||||
- `--bind <channel[:accountId]>` (можна повторювати)
|
||||
- `--all`
|
||||
- `--json`
|
||||
|
||||
### `agents delete <id>`
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--force`
|
||||
- `--json`
|
||||
|
||||
Примітки:
|
||||
|
||||
- `main` не можна видалити.
|
||||
- Без `--force` потрібне інтерактивне підтвердження.
|
||||
- Каталоги робочого простору, стану агента та стенограм сесій переміщуються до Кошика, а не видаляються безповоротно.
|
||||
|
||||
## Файли identity
|
||||
|
||||
Кожен робочий простір агента може містити `IDENTITY.md` у корені робочого простору:
|
||||
|
||||
- Приклад шляху: `~/.openclaw/workspace/IDENTITY.md`
|
||||
- `set-identity --from-identity` читає з кореня робочого простору (або з явного `--identity-file`)
|
||||
|
||||
Шляхи до аватарів обчислюються відносно кореня робочого простору.
|
||||
|
||||
## Налаштування identity
|
||||
|
||||
`set-identity` записує поля до `agents.list[].identity`:
|
||||
|
||||
- `name`
|
||||
- `theme`
|
||||
- `emoji`
|
||||
- `avatar` (відносний до робочого простору шлях, http(s) URL або data URI)
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--agent <id>`
|
||||
- `--workspace <dir>`
|
||||
- `--identity-file <path>`
|
||||
- `--from-identity`
|
||||
- `--name <name>`
|
||||
- `--theme <theme>`
|
||||
- `--emoji <emoji>`
|
||||
- `--avatar <value>`
|
||||
- `--json`
|
||||
|
||||
Примітки:
|
||||
|
||||
- Для вибору цільового агента можна використовувати `--agent` або `--workspace`.
|
||||
- Якщо ви покладаєтеся на `--workspace`, а кілька агентів використовують цей робочий простір, команда завершиться з помилкою й попросить передати `--agent`.
|
||||
- Якщо явні поля identity не надано, команда зчитує дані identity з `IDENTITY.md`.
|
||||
|
||||
Завантажити з `IDENTITY.md`:
|
||||
|
||||
```bash
|
||||
openclaw agents set-identity --workspace ~/.openclaw/workspace --from-identity
|
||||
```
|
||||
|
||||
Явно перевизначити поля:
|
||||
|
||||
```bash
|
||||
openclaw agents set-identity --agent main --name "OpenClaw" --emoji "🦞" --avatar avatars/openclaw.png
|
||||
```
|
||||
|
||||
Приклад конфігурації:
|
||||
|
||||
```json5
|
||||
{
|
||||
agents: {
|
||||
list: [
|
||||
{
|
||||
id: "main",
|
||||
identity: {
|
||||
name: "OpenClaw",
|
||||
theme: "space lobster",
|
||||
emoji: "🦞",
|
||||
avatar: "avatars/openclaw.png",
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
}
|
||||
```
|
||||
189
docs/uk/cli/approvals.md
Normal file
189
docs/uk/cli/approvals.md
Normal file
@ -0,0 +1,189 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете змінити дозволи на виконання з CLI
|
||||
- Вам потрібно керувати списками дозволених на хостах Gateway або Node
|
||||
summary: Довідка CLI для `openclaw approvals` і `openclaw exec-policy`
|
||||
title: погодження
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:17:05Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 4e4e031df737e3bdde97ece81fe50eafbb4384557b40c6d52cf2395cf30721a3
|
||||
source_path: cli/approvals.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw approvals`
|
||||
|
||||
Керуйте дозволами на виконання для **локального хоста**, **хоста gateway** або **хоста node**.
|
||||
За замовчуванням команди спрямовуються на локальний файл дозволів на диску. Використовуйте `--gateway`, щоб спрямувати команду на gateway, або `--node`, щоб спрямувати її на конкретний node.
|
||||
|
||||
Псевдонім: `openclaw exec-approvals`
|
||||
|
||||
Пов’язано:
|
||||
|
||||
- Дозволи на виконання: [Дозволи на виконання](/uk/tools/exec-approvals)
|
||||
- Nodes: [Nodes](/uk/nodes)
|
||||
|
||||
## `openclaw exec-policy`
|
||||
|
||||
`openclaw exec-policy` — це локальна допоміжна команда для того, щоб за один крок узгодити запитану конфігурацію `tools.exec.*` і локальний файл дозволів хоста.
|
||||
|
||||
Використовуйте її, якщо ви хочете:
|
||||
|
||||
- перевірити локальну запитану політику, файл дозволів хоста та ефективний результат об’єднання
|
||||
- застосувати локальний пресет, наприклад YOLO або deny-all
|
||||
- синхронізувати локальні `tools.exec.*` і локальний `~/.openclaw/exec-approvals.json`
|
||||
|
||||
Приклади:
|
||||
|
||||
```bash
|
||||
openclaw exec-policy show
|
||||
openclaw exec-policy show --json
|
||||
|
||||
openclaw exec-policy preset yolo
|
||||
openclaw exec-policy preset cautious --json
|
||||
|
||||
openclaw exec-policy set --host gateway --security full --ask off --ask-fallback full
|
||||
```
|
||||
|
||||
Режими виводу:
|
||||
|
||||
- без `--json`: виводить людинозрозуміле табличне представлення
|
||||
- з `--json`: виводить машинозчитуваний структурований результат
|
||||
|
||||
Поточна область дії:
|
||||
|
||||
- `exec-policy` — **лише локальна**
|
||||
- вона одночасно оновлює локальний файл конфігурації та локальний файл дозволів
|
||||
- вона **не** надсилає політику на хост gateway або хост node
|
||||
- `--host node` у цій команді відхиляється, оскільки дозволи на виконання для node отримуються від node під час виконання й мають керуватися натомість через команди дозволів, спрямовані на node
|
||||
- `openclaw exec-policy show` позначає області `host=node` як такі, що керуються node під час виконання, замість виведення ефективної політики з локального файла дозволів
|
||||
|
||||
Якщо вам потрібно безпосередньо редагувати дозволи віддаленого хоста, продовжуйте використовувати `openclaw approvals set --gateway`
|
||||
або `openclaw approvals set --node <id|name|ip>`.
|
||||
|
||||
## Поширені команди
|
||||
|
||||
```bash
|
||||
openclaw approvals get
|
||||
openclaw approvals get --node <id|name|ip>
|
||||
openclaw approvals get --gateway
|
||||
```
|
||||
|
||||
`openclaw approvals get` тепер показує ефективну політику виконання для локальних цілей, gateway і node:
|
||||
|
||||
- запитану політику `tools.exec`
|
||||
- політику файла дозволів хоста
|
||||
- ефективний результат після застосування правил пріоритету
|
||||
|
||||
Пріоритет навмисно такий:
|
||||
|
||||
- файл дозволів хоста — це джерело істини, яке реально застосовується
|
||||
- запитана політика `tools.exec` може звужувати або розширювати намір, але ефективний результат усе одно виводиться з правил хоста
|
||||
- `--node` поєднує файл дозволів хоста node з політикою gateway `tools.exec`, оскільки обидві все ще застосовуються під час виконання
|
||||
- якщо конфігурація gateway недоступна, CLI повертається до знімка дозволів node і зазначає, що остаточну політику виконання під час роботи не вдалося обчислити
|
||||
|
||||
## Замінити дозволи з файла
|
||||
|
||||
```bash
|
||||
openclaw approvals set --file ./exec-approvals.json
|
||||
openclaw approvals set --stdin <<'EOF'
|
||||
{ version: 1, defaults: { security: "full", ask: "off" } }
|
||||
EOF
|
||||
openclaw approvals set --node <id|name|ip> --file ./exec-approvals.json
|
||||
openclaw approvals set --gateway --file ./exec-approvals.json
|
||||
```
|
||||
|
||||
`set` приймає JSON5, а не лише строгий JSON. Використовуйте або `--file`, або `--stdin`, але не обидва одночасно.
|
||||
|
||||
## Приклад «Ніколи не запитувати» / YOLO
|
||||
|
||||
Для хоста, який ніколи не повинен зупинятися на дозволах виконання, встановіть для значень за замовчуванням у файлі дозволів хоста `full` + `off`:
|
||||
|
||||
```bash
|
||||
openclaw approvals set --stdin <<'EOF'
|
||||
{
|
||||
version: 1,
|
||||
defaults: {
|
||||
security: "full",
|
||||
ask: "off",
|
||||
askFallback: "full"
|
||||
}
|
||||
}
|
||||
EOF
|
||||
```
|
||||
|
||||
Варіант для node:
|
||||
|
||||
```bash
|
||||
openclaw approvals set --node <id|name|ip> --stdin <<'EOF'
|
||||
{
|
||||
version: 1,
|
||||
defaults: {
|
||||
security: "full",
|
||||
ask: "off",
|
||||
askFallback: "full"
|
||||
}
|
||||
}
|
||||
EOF
|
||||
```
|
||||
|
||||
Це змінює лише **файл дозволів хоста**. Щоб також узгодити запитану політику OpenClaw, встановіть:
|
||||
|
||||
```bash
|
||||
openclaw config set tools.exec.host gateway
|
||||
openclaw config set tools.exec.security full
|
||||
openclaw config set tools.exec.ask off
|
||||
```
|
||||
|
||||
Чому `tools.exec.host=gateway` у цьому прикладі:
|
||||
|
||||
- `host=auto` як і раніше означає «пісочниця, якщо доступна, інакше gateway».
|
||||
- YOLO стосується дозволів, а не маршрутизації.
|
||||
- Якщо ви хочете виконання на хості навіть тоді, коли налаштована пісочниця, явно вкажіть вибір хоста через `gateway` або `/exec host=gateway`.
|
||||
|
||||
Це відповідає поточній поведінці YOLO за замовчуванням для хоста. Зробіть політику суворішою, якщо вам потрібні дозволи.
|
||||
|
||||
Локальне скорочення:
|
||||
|
||||
```bash
|
||||
openclaw exec-policy preset yolo
|
||||
```
|
||||
|
||||
Це локальне скорочення одночасно оновлює і запитану локальну конфігурацію `tools.exec.*`, і локальні значення дозволів за замовчуванням. Воно еквівалентне за наміром наведеному вище ручному двокроковому налаштуванню, але лише для локальної машини.
|
||||
|
||||
## Допоміжні команди для списку дозволених
|
||||
|
||||
```bash
|
||||
openclaw approvals allowlist add "~/Projects/**/bin/rg"
|
||||
openclaw approvals allowlist add --agent main --node <id|name|ip> "/usr/bin/uptime"
|
||||
openclaw approvals allowlist add --agent "*" "/usr/bin/uname"
|
||||
|
||||
openclaw approvals allowlist remove "~/Projects/**/bin/rg"
|
||||
```
|
||||
|
||||
## Поширені параметри
|
||||
|
||||
`get`, `set` і `allowlist add|remove` усі підтримують:
|
||||
|
||||
- `--node <id|name|ip>`
|
||||
- `--gateway`
|
||||
- спільні параметри RPC для node: `--url`, `--token`, `--timeout`, `--json`
|
||||
|
||||
Примітки щодо спрямування:
|
||||
|
||||
- без прапорців цілі використовується локальний файл дозволів на диску
|
||||
- `--gateway` спрямовує команду на файл дозволів хоста gateway
|
||||
- `--node` спрямовує команду на один хост node після визначення id, name, IP або префікса id
|
||||
|
||||
`allowlist add|remove` також підтримує:
|
||||
|
||||
- `--agent <id>` (типове значення — `*`)
|
||||
|
||||
## Примітки
|
||||
|
||||
- `--node` використовує той самий механізм визначення, що й `openclaw nodes` (id, name, ip або префікс id).
|
||||
- Для `--agent` типовим значенням є `"*"`, що застосовується до всіх агентів.
|
||||
- Хост node має оголошувати `system.execApprovals.get/set` (застосунок macOS або headless-хост node).
|
||||
- Файли дозволів зберігаються окремо для кожного хоста за шляхом `~/.openclaw/exec-approvals.json`.
|
||||
91
docs/uk/cli/backup.md
Normal file
91
docs/uk/cli/backup.md
Normal file
@ -0,0 +1,91 @@
|
||||
---
|
||||
read_when:
|
||||
- Вам потрібен першокласний резервний архів для локального стану OpenClaw
|
||||
- Ви хочете попередньо переглянути, які шляхи буде включено перед скиданням або видаленням
|
||||
summary: Довідник CLI для `openclaw backup` (створення локальних резервних архівів)
|
||||
title: резервне копіювання
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:17:03Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 700eda8f9eac1cc93a854fa579f128e5e97d4e6dfc0da75b437c0fb2a898a37d
|
||||
source_path: cli/backup.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw backup`
|
||||
|
||||
Створіть локальний резервний архів для стану OpenClaw, конфігурації, профілів автентифікації, облікових даних каналів/провайдерів, сесій і, за потреби, робочих просторів.
|
||||
|
||||
```bash
|
||||
openclaw backup create
|
||||
openclaw backup create --output ~/Backups
|
||||
openclaw backup create --dry-run --json
|
||||
openclaw backup create --verify
|
||||
openclaw backup create --no-include-workspace
|
||||
openclaw backup create --only-config
|
||||
openclaw backup verify ./2026-03-09T00-00-00.000Z-openclaw-backup.tar.gz
|
||||
```
|
||||
|
||||
## Примітки
|
||||
|
||||
- Архів містить файл `manifest.json` із визначеними вихідними шляхами та структурою архіву.
|
||||
- Типовим результатом є архів `.tar.gz` з часовою позначкою в поточному робочому каталозі.
|
||||
- Якщо поточний робочий каталог розташований усередині дерева джерел, що резервуються, OpenClaw повертається до вашого домашнього каталогу як типового розташування архіву.
|
||||
- Наявні файли архівів ніколи не перезаписуються.
|
||||
- Вихідні шляхи всередині дерев вихідного стану/робочого простору відхиляються, щоб уникнути самовключення.
|
||||
- `openclaw backup verify <archive>` перевіряє, що архів містить рівно один кореневий маніфест, відхиляє шляхи архіву у стилі traversal і перевіряє, що кожен payload, оголошений у маніфесті, існує в tarball.
|
||||
- `openclaw backup create --verify` запускає цю перевірку одразу після запису архіву.
|
||||
- `openclaw backup create --only-config` створює резервну копію лише активного JSON-файлу конфігурації.
|
||||
|
||||
## Що потрапляє до резервної копії
|
||||
|
||||
`openclaw backup create` планує джерела резервного копіювання з вашого локального встановлення OpenClaw:
|
||||
|
||||
- Каталог стану, який повертає локальний resolver стану OpenClaw, зазвичай `~/.openclaw`
|
||||
- Шлях до активного файлу конфігурації
|
||||
- Визначений каталог `credentials/`, якщо він існує поза каталогом стану
|
||||
- Каталоги робочих просторів, виявлені з поточної конфігурації, якщо ви не передали `--no-include-workspace`
|
||||
|
||||
Профілі автентифікації моделей уже є частиною каталогу стану в
|
||||
`agents/<agentId>/agent/auth-profiles.json`, тому зазвичай вони охоплюються
|
||||
записом резервного копіювання стану.
|
||||
|
||||
Якщо ви використовуєте `--only-config`, OpenClaw пропускає виявлення стану, каталогу облікових даних і робочого простору та архівує лише шлях до активного файлу конфігурації.
|
||||
|
||||
OpenClaw канонізує шляхи перед побудовою архіву. Якщо конфігурація,
|
||||
каталог облікових даних або робочий простір уже розташовані всередині каталогу стану,
|
||||
вони не дублюються як окремі джерела резервного копіювання верхнього рівня. Відсутні шляхи
|
||||
пропускаються.
|
||||
|
||||
Payload архіву зберігає вміст файлів із цих дерев джерел, а вбудований `manifest.json` фіксує визначені абсолютні шляхи джерел і структуру архіву, використану для кожного ресурсу.
|
||||
|
||||
## Поведінка за некоректної конфігурації
|
||||
|
||||
`openclaw backup` навмисно оминає звичайну попередню перевірку конфігурації, щоб залишатися корисним під час відновлення. Оскільки виявлення робочого простору залежить від коректної конфігурації, `openclaw backup create` тепер завершується з помилкою одразу, якщо файл конфігурації існує, але є некоректним, а резервне копіювання робочого простору все ще ввімкнене.
|
||||
|
||||
Якщо ви все одно хочете часткову резервну копію в такій ситуації, запустіть знову:
|
||||
|
||||
```bash
|
||||
openclaw backup create --no-include-workspace
|
||||
```
|
||||
|
||||
Це залишає в області резервного копіювання стан, конфігурацію та зовнішній каталог облікових даних, водночас
|
||||
повністю пропускаючи виявлення робочого простору.
|
||||
|
||||
Якщо вам потрібна лише копія самого файлу конфігурації, `--only-config` також працює, коли конфігурація має помилки, оскільки не покладається на розбір конфігурації для виявлення робочого простору.
|
||||
|
||||
## Розмір і продуктивність
|
||||
|
||||
OpenClaw не застосовує вбудоване максимальне обмеження розміру резервної копії або обмеження розміру окремого файла.
|
||||
|
||||
Практичні обмеження залежать від локальної машини та цільової файлової системи:
|
||||
|
||||
- Доступний простір для тимчасового запису архіву та для фінального архіву
|
||||
- Час на обхід великих дерев робочих просторів і їх стиснення в `.tar.gz`
|
||||
- Час на повторне сканування архіву, якщо ви використовуєте `openclaw backup create --verify` або запускаєте `openclaw backup verify`
|
||||
- Поведінка файлової системи в цільовому шляху. OpenClaw надає перевагу кроку публікації через hard link без перезапису й повертається до ексклюзивного копіювання, якщо hard links не підтримуються
|
||||
|
||||
Великі робочі простори зазвичай є головним чинником розміру архіву. Якщо вам потрібна менша або швидша резервна копія, використовуйте `--no-include-workspace`.
|
||||
|
||||
Для найменшого архіву використовуйте `--only-config`.
|
||||
243
docs/uk/cli/browser.md
Normal file
243
docs/uk/cli/browser.md
Normal file
@ -0,0 +1,243 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви використовуєте `openclaw browser` і хочете приклади для поширених завдань
|
||||
- Ви хочете керувати браузером, що працює на іншій машині, через хост node
|
||||
- Ви хочете під’єднатися до свого локального Chrome, у якому вже виконано вхід, через Chrome MCP
|
||||
summary: Довідка CLI для `openclaw browser` (життєвий цикл, профілі, вкладки, дії, стан і налагодження)
|
||||
title: браузер
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:17:04Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 0cf1a5168e690121d4fc4eac984580c89bc50844f15558413ba6d8a635da2ed6
|
||||
source_path: cli/browser.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw browser`
|
||||
|
||||
Керуйте поверхнею керування браузером OpenClaw і запускайте дії браузера (життєвий цикл, профілі, вкладки, знімки стану, знімки екрана, навігація, введення, емуляція стану та налагодження).
|
||||
|
||||
Пов’язане:
|
||||
|
||||
- Інструмент браузера + API: [Інструмент браузера](/uk/tools/browser)
|
||||
|
||||
## Поширені прапорці
|
||||
|
||||
- `--url <gatewayWsUrl>`: URL WebSocket Gateway (типово з конфігурації).
|
||||
- `--token <token>`: токен Gateway (за потреби).
|
||||
- `--timeout <ms>`: тайм-аут запиту (мс).
|
||||
- `--expect-final`: чекати фінальної відповіді Gateway.
|
||||
- `--browser-profile <name>`: вибрати профіль браузера (типовий з конфігурації).
|
||||
- `--json`: машинозчитуваний вивід (де підтримується).
|
||||
|
||||
## Швидкий старт (локально)
|
||||
|
||||
```bash
|
||||
openclaw browser profiles
|
||||
openclaw browser --browser-profile openclaw start
|
||||
openclaw browser --browser-profile openclaw open https://example.com
|
||||
openclaw browser --browser-profile openclaw snapshot
|
||||
```
|
||||
|
||||
## Швидке усунення несправностей
|
||||
|
||||
Якщо `start` завершується помилкою `not reachable after start`, спочатку перевірте готовність CDP. Якщо `start` і `tabs` виконуються успішно, але `open` або `navigate` завершується помилкою, площина керування браузером справна, а причина збою зазвичай у політиці SSRF для навігації.
|
||||
|
||||
Мінімальна послідовність:
|
||||
|
||||
```bash
|
||||
openclaw browser --browser-profile openclaw start
|
||||
openclaw browser --browser-profile openclaw tabs
|
||||
openclaw browser --browser-profile openclaw open https://example.com
|
||||
```
|
||||
|
||||
Детальні вказівки: [Усунення несправностей браузера](/uk/tools/browser#cdp-startup-failure-vs-navigation-ssrf-block)
|
||||
|
||||
## Життєвий цикл
|
||||
|
||||
```bash
|
||||
openclaw browser status
|
||||
openclaw browser start
|
||||
openclaw browser stop
|
||||
openclaw browser --browser-profile openclaw reset-profile
|
||||
```
|
||||
|
||||
Примітки:
|
||||
|
||||
- Для профілів `attachOnly` і віддаленого CDP команда `openclaw browser stop` закриває активний сеанс керування та очищає тимчасові перевизначення емуляції, навіть якщо OpenClaw сам не запускав процес браузера.
|
||||
- Для локальних керованих профілів `openclaw browser stop` зупиняє запущений процес браузера.
|
||||
|
||||
## Якщо команда відсутня
|
||||
|
||||
Якщо `openclaw browser` є невідомою командою, перевірте `plugins.allow` у `~/.openclaw/openclaw.json`.
|
||||
|
||||
Коли `plugins.allow` присутній, вбудований Plugin браузера має бути явно вказаний:
|
||||
|
||||
```json5
|
||||
{
|
||||
plugins: {
|
||||
allow: ["telegram", "browser"],
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
`browser.enabled=true` не відновлює підкоманду CLI, якщо список дозволених plugin виключає `browser`.
|
||||
|
||||
Пов’язане: [Інструмент браузера](/uk/tools/browser#missing-browser-command-or-tool)
|
||||
|
||||
## Профілі
|
||||
|
||||
Профілі — це іменовані конфігурації маршрутизації браузера. На практиці:
|
||||
|
||||
- `openclaw`: запускає або під’єднується до окремого екземпляра Chrome під керуванням OpenClaw (ізольований каталог даних користувача).
|
||||
- `user`: керує вашою наявною сесією Chrome із виконаним входом через Chrome DevTools MCP.
|
||||
- користувацькі профілі CDP: вказують на локальну або віддалену кінцеву точку CDP.
|
||||
|
||||
```bash
|
||||
openclaw browser profiles
|
||||
openclaw browser create-profile --name work --color "#FF5A36"
|
||||
openclaw browser create-profile --name chrome-live --driver existing-session
|
||||
openclaw browser create-profile --name remote --cdp-url https://browser-host.example.com
|
||||
openclaw browser delete-profile --name work
|
||||
```
|
||||
|
||||
Використання конкретного профілю:
|
||||
|
||||
```bash
|
||||
openclaw browser --browser-profile work tabs
|
||||
```
|
||||
|
||||
## Вкладки
|
||||
|
||||
```bash
|
||||
openclaw browser tabs
|
||||
openclaw browser tab new
|
||||
openclaw browser tab select 2
|
||||
openclaw browser tab close 2
|
||||
openclaw browser open https://docs.openclaw.ai
|
||||
openclaw browser focus <targetId>
|
||||
openclaw browser close <targetId>
|
||||
```
|
||||
|
||||
## Знімок стану / знімок екрана / дії
|
||||
|
||||
Знімок стану:
|
||||
|
||||
```bash
|
||||
openclaw browser snapshot
|
||||
```
|
||||
|
||||
Знімок екрана:
|
||||
|
||||
```bash
|
||||
openclaw browser screenshot
|
||||
openclaw browser screenshot --full-page
|
||||
openclaw browser screenshot --ref e12
|
||||
```
|
||||
|
||||
Примітки:
|
||||
|
||||
- `--full-page` призначений лише для захоплення сторінки; його не можна поєднувати з `--ref` або `--element`.
|
||||
- Профілі `existing-session` / `user` підтримують знімки екрана сторінки та знімки екрана з `--ref` із виводу знімка стану, але не підтримують знімки екрана CSS `--element`.
|
||||
|
||||
Навігація/клік/введення (автоматизація UI на основі ref):
|
||||
|
||||
```bash
|
||||
openclaw browser navigate https://example.com
|
||||
openclaw browser click <ref>
|
||||
openclaw browser type <ref> "hello"
|
||||
openclaw browser press Enter
|
||||
openclaw browser hover <ref>
|
||||
openclaw browser scrollintoview <ref>
|
||||
openclaw browser drag <startRef> <endRef>
|
||||
openclaw browser select <ref> OptionA OptionB
|
||||
openclaw browser fill --fields '[{"ref":"1","value":"Ada"}]'
|
||||
openclaw browser wait --text "Done"
|
||||
openclaw browser evaluate --fn '(el) => el.textContent' --ref <ref>
|
||||
```
|
||||
|
||||
Допоміжні команди для файлів і діалогів:
|
||||
|
||||
```bash
|
||||
openclaw browser upload /tmp/openclaw/uploads/file.pdf --ref <ref>
|
||||
openclaw browser waitfordownload
|
||||
openclaw browser download <ref> report.pdf
|
||||
openclaw browser dialog --accept
|
||||
```
|
||||
|
||||
## Стан і сховище
|
||||
|
||||
Область перегляду + емуляція:
|
||||
|
||||
```bash
|
||||
openclaw browser resize 1280 720
|
||||
openclaw browser set viewport 1280 720
|
||||
openclaw browser set offline on
|
||||
openclaw browser set media dark
|
||||
openclaw browser set timezone Europe/London
|
||||
openclaw browser set locale en-GB
|
||||
openclaw browser set geo 51.5074 -0.1278 --accuracy 25
|
||||
openclaw browser set device "iPhone 14"
|
||||
openclaw browser set headers '{"x-test":"1"}'
|
||||
openclaw browser set credentials myuser mypass
|
||||
```
|
||||
|
||||
Cookies + сховище:
|
||||
|
||||
```bash
|
||||
openclaw browser cookies
|
||||
openclaw browser cookies set session abc123 --url https://example.com
|
||||
openclaw browser cookies clear
|
||||
openclaw browser storage local get
|
||||
openclaw browser storage local set token abc123
|
||||
openclaw browser storage session clear
|
||||
```
|
||||
|
||||
## Налагодження
|
||||
|
||||
```bash
|
||||
openclaw browser console --level error
|
||||
openclaw browser pdf
|
||||
openclaw browser responsebody "**/api"
|
||||
openclaw browser highlight <ref>
|
||||
openclaw browser errors --clear
|
||||
openclaw browser requests --filter api
|
||||
openclaw browser trace start
|
||||
openclaw browser trace stop --out trace.zip
|
||||
```
|
||||
|
||||
## Наявний Chrome через MCP
|
||||
|
||||
Використовуйте вбудований профіль `user` або створіть власний профіль `existing-session`:
|
||||
|
||||
```bash
|
||||
openclaw browser --browser-profile user tabs
|
||||
openclaw browser create-profile --name chrome-live --driver existing-session
|
||||
openclaw browser create-profile --name brave-live --driver existing-session --user-data-dir "~/Library/Application Support/BraveSoftware/Brave-Browser"
|
||||
openclaw browser --browser-profile chrome-live tabs
|
||||
```
|
||||
|
||||
Цей шлях працює лише на хості. Для Docker, headless-серверів, Browserless або інших віддалених налаштувань замість цього використовуйте профіль CDP.
|
||||
|
||||
Поточні обмеження existing-session:
|
||||
|
||||
- дії на основі знімка стану використовують ref, а не CSS-селектори
|
||||
- `click` підтримує лише клік лівою кнопкою
|
||||
- `type` не підтримує `slowly=true`
|
||||
- `press` не підтримує `delayMs`
|
||||
- `hover`, `scrollintoview`, `drag`, `select`, `fill` і `evaluate` відхиляють перевизначення тайм-ауту для окремих викликів
|
||||
- `select` підтримує лише одне значення
|
||||
- `wait --load networkidle` не підтримується
|
||||
- вивантаження файлів потребує `--ref` / `--input-ref`, не підтримує CSS `--element` і наразі підтримує один файл за раз
|
||||
- гачки діалогів не підтримують `--timeout`
|
||||
- знімки екрана підтримують захоплення сторінки та `--ref`, але не CSS `--element`
|
||||
- `responsebody`, перехоплення завантажень, експорт PDF і пакетні дії, як і раніше, потребують керованого браузера або профілю raw CDP
|
||||
|
||||
## Віддалене керування браузером (проксі хоста node)
|
||||
|
||||
Якщо Gateway працює на іншій машині, ніж браузер, запустіть **хост node** на машині, де є Chrome/Brave/Edge/Chromium. Gateway проксіюватиме дії браузера до цього node (окремий сервер керування браузером не потрібен).
|
||||
|
||||
Використовуйте `gateway.nodes.browser.mode`, щоб керувати автоматичною маршрутизацією, і `gateway.nodes.browser.node`, щоб закріпити конкретний node, якщо під’єднано кілька.
|
||||
|
||||
Безпека й віддалене налаштування: [Інструмент браузера](/uk/tools/browser), [Віддалений доступ](/uk/gateway/remote), [Tailscale](/uk/gateway/tailscale), [Безпека](/uk/gateway/security)
|
||||
135
docs/uk/cli/channels.md
Normal file
135
docs/uk/cli/channels.md
Normal file
@ -0,0 +1,135 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете додати/видалити облікові записи каналів (WhatsApp/Telegram/Discord/Google Chat/Slack/Mattermost (plugin)/Signal/iMessage/Matrix)
|
||||
- Ви хочете перевірити статус каналу або відстежувати журнали каналу в реальному часі
|
||||
summary: Довідка CLI для `openclaw channels` (облікові записи, статус, вхід/вихід, журнали)
|
||||
title: канали
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:17:03Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: d0f558fdb5f6ec54e7fdb7a88e5c24c9d2567174341bd3ea87848bce4cba5d29
|
||||
source_path: cli/channels.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw channels`
|
||||
|
||||
Керуйте обліковими записами чат-каналів і їхнім станом виконання в Gateway.
|
||||
|
||||
Пов’язана документація:
|
||||
|
||||
- Посібники з каналів: [Канали](/uk/channels/index)
|
||||
- Налаштування Gateway: [Конфігурація](/uk/gateway/configuration)
|
||||
|
||||
## Поширені команди
|
||||
|
||||
```bash
|
||||
openclaw channels list
|
||||
openclaw channels status
|
||||
openclaw channels capabilities
|
||||
openclaw channels capabilities --channel discord --target channel:123
|
||||
openclaw channels resolve --channel slack "#general" "@jane"
|
||||
openclaw channels logs --channel all
|
||||
```
|
||||
|
||||
## Статус / можливості / зіставлення / журнали
|
||||
|
||||
- `channels status`: `--probe`, `--timeout <ms>`, `--json`
|
||||
- `channels capabilities`: `--channel <name>`, `--account <id>` (лише з `--channel`), `--target <dest>`, `--timeout <ms>`, `--json`
|
||||
- `channels resolve`: `<entries...>`, `--channel <name>`, `--account <id>`, `--kind <auto|user|group>`, `--json`
|
||||
- `channels logs`: `--channel <name|all>`, `--lines <n>`, `--json`
|
||||
|
||||
`channels status --probe` — це шлях живої перевірки: на доступному gateway команда запускає для кожного облікового запису перевірки `probeAccount` і, за потреби, `auditAccount`, тому вивід може містити стан транспорту разом із результатами перевірок, наприклад `works`, `probe failed`, `audit ok` або `audit failed`.
|
||||
Якщо gateway недоступний, `channels status` повертається до зведень лише на основі конфігурації замість виводу живих перевірок.
|
||||
|
||||
## Додавання / видалення облікових записів
|
||||
|
||||
```bash
|
||||
openclaw channels add --channel telegram --token <bot-token>
|
||||
openclaw channels add --channel nostr --private-key "$NOSTR_PRIVATE_KEY"
|
||||
openclaw channels remove --channel telegram --delete
|
||||
```
|
||||
|
||||
Порада: `openclaw channels add --help` показує прапорці для кожного каналу окремо (`token`, приватний ключ, `app token`, шляхи `signal-cli` тощо).
|
||||
|
||||
Поширені поверхні неінтерактивного додавання включають:
|
||||
|
||||
- канали з токеном бота: `--token`, `--bot-token`, `--app-token`, `--token-file`
|
||||
- поля транспорту Signal/iMessage: `--signal-number`, `--cli-path`, `--http-url`, `--http-host`, `--http-port`, `--db-path`, `--service`, `--region`
|
||||
- поля Google Chat: `--webhook-path`, `--webhook-url`, `--audience-type`, `--audience`
|
||||
- поля Matrix: `--homeserver`, `--user-id`, `--access-token`, `--password`, `--device-name`, `--initial-sync-limit`
|
||||
- поля Nostr: `--private-key`, `--relay-urls`
|
||||
- поля Tlon: `--ship`, `--url`, `--code`, `--group-channels`, `--dm-allowlist`, `--auto-discover-channels`
|
||||
- `--use-env` для автентифікації на основі змінних середовища для облікового запису за замовчуванням там, де це підтримується
|
||||
|
||||
Коли ви запускаєте `openclaw channels add` без прапорців, інтерактивний майстер може запитати:
|
||||
|
||||
- ідентифікатори облікових записів для кожного вибраного каналу
|
||||
- необов’язкові відображувані імена для цих облікових записів
|
||||
- `Bind configured channel accounts to agents now?`
|
||||
|
||||
Якщо ви підтвердите прив’язку зараз, майстер запитає, якому агенту має належати кожен налаштований обліковий запис каналу, і запише прив’язки маршрутизації на рівні облікового запису.
|
||||
|
||||
Тими самими правилами маршрутизації також можна керувати пізніше за допомогою `openclaw agents bindings`, `openclaw agents bind` і `openclaw agents unbind` (див. [agents](/uk/cli/agents)).
|
||||
|
||||
Коли ви додаєте не типовий обліковий запис до каналу, який досі використовує однокористувацькі параметри верхнього рівня, OpenClaw піднімає значення верхнього рівня з областю дії облікового запису до мапи облікових записів каналу перед записом нового облікового запису. Для більшості каналів ці значення потрапляють у `channels.<channel>.accounts.default`, але вбудовані канали можуть натомість зберегти наявний відповідний піднятий обліковий запис. Поточний приклад — Matrix: якщо вже існує один іменований обліковий запис або `defaultAccount` вказує на наявний іменований обліковий запис, підняття зберігає цей обліковий запис замість створення нового `accounts.default`.
|
||||
|
||||
Поведінка маршрутизації залишається сталою:
|
||||
|
||||
- Наявні прив’язки лише до каналу (без `accountId`) і далі відповідають обліковому запису за замовчуванням.
|
||||
- `channels add` не створює і не переписує прив’язки автоматично в неінтерактивному режимі.
|
||||
- Інтерактивне налаштування може за бажанням додати прив’язки з областю дії облікового запису.
|
||||
|
||||
Якщо ваша конфігурація вже була в змішаному стані (є іменовані облікові записи, а однокористувацькі значення верхнього рівня все ще задані), виконайте `openclaw doctor --fix`, щоб перенести значення з областю дії облікового запису в піднятий обліковий запис, вибраний для цього каналу. Для більшості каналів підняття відбувається в `accounts.default`; Matrix може зберегти наявну іменовану/типову ціль.
|
||||
|
||||
## Вхід / вихід (інтерактивно)
|
||||
|
||||
```bash
|
||||
openclaw channels login --channel whatsapp
|
||||
openclaw channels logout --channel whatsapp
|
||||
```
|
||||
|
||||
Примітки:
|
||||
|
||||
- `channels login` підтримує `--verbose`.
|
||||
- `channels login` / `logout` можуть визначити канал автоматично, якщо налаштовано лише одну підтримувану ціль входу.
|
||||
|
||||
## Усунення проблем
|
||||
|
||||
- Виконайте `openclaw status --deep` для широкої перевірки.
|
||||
- Використовуйте `openclaw doctor` для покрокового виправлення.
|
||||
- `openclaw channels list` виводить `Claude: HTTP 403 ... user:profile` → знімку використання потрібна область дії `user:profile`. Використайте `--no-usage`, або надайте ключ сесії `claude.ai` (`CLAUDE_WEB_SESSION_KEY` / `CLAUDE_WEB_COOKIE`), або повторно автентифікуйтеся через Claude CLI.
|
||||
- `openclaw channels status` повертається до зведень лише на основі конфігурації, коли gateway недоступний. Якщо облікові дані підтримуваного каналу налаштовані через SecretRef, але недоступні в поточному шляху команди, цей обліковий запис буде позначено як налаштований із примітками про деградацію, а не як не налаштований.
|
||||
|
||||
## Перевірка можливостей
|
||||
|
||||
Отримайте підказки щодо можливостей провайдера (інтенти/області дії, де доступно) разом зі статичною підтримкою функцій:
|
||||
|
||||
```bash
|
||||
openclaw channels capabilities
|
||||
openclaw channels capabilities --channel discord --target channel:123
|
||||
```
|
||||
|
||||
Примітки:
|
||||
|
||||
- `--channel` необов’язковий; якщо його не вказати, буде показано всі канали (включно з extensions).
|
||||
- `--account` допустимий лише разом із `--channel`.
|
||||
- `--target` приймає `channel:<id>` або необроблений числовий ідентифікатор каналу й застосовується лише до Discord.
|
||||
- Перевірки залежать від провайдера: інтенти Discord + необов’язкові дозволи каналу; області дії бота та користувача Slack; прапорці бота Telegram + Webhook; версія демона Signal; `app token` Microsoft Teams + ролі/області дії Graph (із примітками там, де це відомо). Канали без перевірок показують `Probe: unavailable`.
|
||||
|
||||
## Зіставлення імен з ID
|
||||
|
||||
Зіставляйте назви каналів/користувачів з ID за допомогою каталогу провайдера:
|
||||
|
||||
```bash
|
||||
openclaw channels resolve --channel slack "#general" "@jane"
|
||||
openclaw channels resolve --channel discord "My Server/#support" "@someone"
|
||||
openclaw channels resolve --channel matrix "Project Room"
|
||||
```
|
||||
|
||||
Примітки:
|
||||
|
||||
- Використовуйте `--kind user|group|auto`, щоб примусово задати тип цілі.
|
||||
- Якщо кілька записів мають однакову назву, зіставлення надає перевагу активним збігам.
|
||||
- `channels resolve` працює лише на читання. Якщо вибраний обліковий запис налаштовано через SecretRef, але ці облікові дані недоступні в поточному шляху команди, команда повертає деградовані нерозв’язані результати з примітками замість переривання всього виконання.
|
||||
28
docs/uk/cli/clawbot.md
Normal file
28
docs/uk/cli/clawbot.md
Normal file
@ -0,0 +1,28 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви підтримуєте старіші скрипти за допомогою `openclaw clawbot ...`
|
||||
- Вам потрібні вказівки щодо міграції до поточних команд
|
||||
summary: Довідка CLI для `openclaw clawbot` (простір імен застарілих псевдонімів)
|
||||
title: clawbot
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:17:05Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 1db82065ecb0107d1ab1a2c6ddaee9df1dd02b983ca1f759974c9d73f0ee3bde
|
||||
source_path: cli/clawbot.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw clawbot`
|
||||
|
||||
Простір імен застарілих псевдонімів, збережений для зворотної сумісності.
|
||||
|
||||
Поточний підтримуваний псевдонім:
|
||||
|
||||
- `openclaw clawbot qr` (така сама поведінка, як у [`openclaw qr`](/uk/cli/qr))
|
||||
|
||||
## Міграція
|
||||
|
||||
Надавайте перевагу сучасним командам верхнього рівня безпосередньо:
|
||||
|
||||
- `openclaw clawbot qr` -> `openclaw qr`
|
||||
42
docs/uk/cli/completion.md
Normal file
42
docs/uk/cli/completion.md
Normal file
@ -0,0 +1,42 @@
|
||||
---
|
||||
read_when:
|
||||
- Вам потрібне автодоповнення оболонки для zsh/bash/fish/PowerShell
|
||||
- Вам потрібно кешувати скрипти автодоповнення в стані OpenClaw
|
||||
summary: Довідка CLI для `openclaw completion` (створення/встановлення скриптів автодоповнення оболонки)
|
||||
title: completion
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:17:15Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 7bbf140a880bafdb7140149f85465d66d0d46e5a3da6a1e41fb78be2fd2bd4d0
|
||||
source_path: cli/completion.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw completion`
|
||||
|
||||
Створює скрипти автодоповнення оболонки та, за потреби, встановлює їх у профіль вашої оболонки.
|
||||
|
||||
## Використання
|
||||
|
||||
```bash
|
||||
openclaw completion
|
||||
openclaw completion --shell zsh
|
||||
openclaw completion --install
|
||||
openclaw completion --shell fish --install
|
||||
openclaw completion --write-state
|
||||
openclaw completion --shell bash --write-state
|
||||
```
|
||||
|
||||
## Параметри
|
||||
|
||||
- `-s, --shell <shell>`: цільова оболонка (`zsh`, `bash`, `powershell`, `fish`; типово: `zsh`)
|
||||
- `-i, --install`: встановити автодоповнення, додавши рядок source до профілю вашої оболонки
|
||||
- `--write-state`: записати скрипт(и) автодоповнення до `$OPENCLAW_STATE_DIR/completions` без виведення в stdout
|
||||
- `-y, --yes`: пропустити запити на підтвердження встановлення
|
||||
|
||||
## Примітки
|
||||
|
||||
- `--install` записує невеликий блок «OpenClaw Completion» до профілю вашої оболонки та спрямовує його на кешований скрипт.
|
||||
- Без `--install` або `--write-state` команда виводить скрипт у stdout.
|
||||
- Створення автодоповнення завчасно завантажує дерева команд, щоб вкладені підкоманди було включено.
|
||||
436
docs/uk/cli/config.md
Normal file
436
docs/uk/cli/config.md
Normal file
@ -0,0 +1,436 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете читати або редагувати конфігурацію в неінтерактивному режимі
|
||||
summary: Довідка CLI для `openclaw config` (get/set/unset/file/schema/validate)
|
||||
title: конфігурація
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:17:23Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 2b496b6c02eeb144bfe800b801ea48a178b02bc7a87197dbf189b27d6fcf41c9
|
||||
source_path: cli/config.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw config`
|
||||
|
||||
Допоміжні команди конфігурації для неінтерактивного редагування в `openclaw.json`: get/set/unset/file/schema/validate
|
||||
значень за шляхом і виведення активного файла конфігурації. Запустіть без підкоманди, щоб
|
||||
відкрити майстер налаштування (те саме, що `openclaw configure`).
|
||||
|
||||
Кореневі параметри:
|
||||
|
||||
- `--section <section>`: повторюваний фільтр розділів покрокового налаштування, коли ви запускаєте `openclaw config` без підкоманди
|
||||
|
||||
Підтримувані розділи покрокового налаштування:
|
||||
|
||||
- `workspace`
|
||||
- `model`
|
||||
- `web`
|
||||
- `gateway`
|
||||
- `daemon`
|
||||
- `channels`
|
||||
- `plugins`
|
||||
- `skills`
|
||||
- `health`
|
||||
|
||||
## Приклади
|
||||
|
||||
```bash
|
||||
openclaw config file
|
||||
openclaw config --section model
|
||||
openclaw config --section gateway --section daemon
|
||||
openclaw config schema
|
||||
openclaw config get browser.executablePath
|
||||
openclaw config set browser.executablePath "/usr/bin/google-chrome"
|
||||
openclaw config set agents.defaults.heartbeat.every "2h"
|
||||
openclaw config set agents.list[0].tools.exec.node "node-id-or-name"
|
||||
openclaw config set agents.defaults.models '{"openai-codex/gpt-5.4":{}}' --strict-json --merge
|
||||
openclaw config set channels.discord.token --ref-provider default --ref-source env --ref-id DISCORD_BOT_TOKEN
|
||||
openclaw config set secrets.providers.vaultfile --provider-source file --provider-path /etc/openclaw/secrets.json --provider-mode json
|
||||
openclaw config unset plugins.entries.brave.config.webSearch.apiKey
|
||||
openclaw config set channels.discord.token --ref-provider default --ref-source env --ref-id DISCORD_BOT_TOKEN --dry-run
|
||||
openclaw config validate
|
||||
openclaw config validate --json
|
||||
```
|
||||
|
||||
### `config schema`
|
||||
|
||||
Виводить згенеровану JSON-схему для `openclaw.json` у stdout як JSON.
|
||||
|
||||
Що вона містить:
|
||||
|
||||
- Поточну кореневу схему конфігурації, а також кореневе строкове поле `$schema` для інструментів редактора
|
||||
- Метадані документації полів `title` і `description`, що використовуються інтерфейсом керування
|
||||
- Вкладені об’єкти, вузли wildcard (`*`) і елементи масиву (`[]`) успадковують ті самі метадані `title` / `description`, коли для відповідного поля існує документація
|
||||
- Гілки `anyOf` / `oneOf` / `allOf` також успадковують ті самі метадані документації, коли для відповідного поля існує документація
|
||||
- Live-метадані схеми Plugin + channel за принципом best-effort, коли можна завантажити маніфести середовища виконання
|
||||
- Чисту резервну схему навіть тоді, коли поточна конфігурація невалідна
|
||||
|
||||
Пов’язаний runtime RPC:
|
||||
|
||||
- `config.schema.lookup` повертає один нормалізований шлях конфігурації з поверхневим
|
||||
вузлом схеми (`title`, `description`, `type`, `enum`, `const`, поширені межі),
|
||||
відповідними метаданими UI hints і зведеннями безпосередніх дочірніх елементів. Використовуйте це для
|
||||
деталізації за шляхом в інтерфейсі керування або в користувацьких клієнтах.
|
||||
|
||||
```bash
|
||||
openclaw config schema
|
||||
```
|
||||
|
||||
Спрямуйте результат у файл, якщо хочете перевірити або валідувати його іншими інструментами:
|
||||
|
||||
```bash
|
||||
openclaw config schema > openclaw.schema.json
|
||||
```
|
||||
|
||||
### Шляхи
|
||||
|
||||
Шляхи використовують крапкову нотацію або нотацію з дужками:
|
||||
|
||||
```bash
|
||||
openclaw config get agents.defaults.workspace
|
||||
openclaw config get agents.list[0].id
|
||||
```
|
||||
|
||||
Використовуйте індекс списку агентів, щоб націлитися на конкретного агента:
|
||||
|
||||
```bash
|
||||
openclaw config get agents.list
|
||||
openclaw config set agents.list[1].tools.exec.node "node-id-or-name"
|
||||
```
|
||||
|
||||
## Значення
|
||||
|
||||
Значення розбираються як JSON5, коли це можливо; інакше вони трактуються як рядки.
|
||||
Використовуйте `--strict-json`, щоб вимагати розбір JSON5. `--json` і далі підтримується як застарілий псевдонім.
|
||||
|
||||
```bash
|
||||
openclaw config set agents.defaults.heartbeat.every "0m"
|
||||
openclaw config set gateway.port 19001 --strict-json
|
||||
openclaw config set channels.whatsapp.groups '["*"]' --strict-json
|
||||
```
|
||||
|
||||
`config get <path> --json` виводить необроблене значення як JSON замість тексту, відформатованого для термінала.
|
||||
|
||||
Присвоєння об’єкта типово замінює цільовий шлях. Захищені шляхи map/list,
|
||||
які часто містять записи, додані користувачем, наприклад `agents.defaults.models`,
|
||||
`models.providers`, `models.providers.<id>.models`, `plugins.entries` і
|
||||
`auth.profiles`, відмовляють у заміні, яка видалила б наявні записи, якщо
|
||||
ви не передасте `--replace`.
|
||||
|
||||
Використовуйте `--merge`, коли додаєте записи до цих map:
|
||||
|
||||
```bash
|
||||
openclaw config set agents.defaults.models '{"openai-codex/gpt-5.4":{}}' --strict-json --merge
|
||||
openclaw config set models.providers.ollama.models '[{"id":"llama3.2","name":"Llama 3.2"}]' --strict-json --merge
|
||||
```
|
||||
|
||||
Використовуйте `--replace` лише тоді, коли ви свідомо хочете, щоб надане значення
|
||||
стало повним цільовим значенням.
|
||||
|
||||
## Режими `config set`
|
||||
|
||||
`openclaw config set` підтримує чотири стилі присвоєння:
|
||||
|
||||
1. Режим значення: `openclaw config set <path> <value>`
|
||||
2. Режим побудови SecretRef:
|
||||
|
||||
```bash
|
||||
openclaw config set channels.discord.token \
|
||||
--ref-provider default \
|
||||
--ref-source env \
|
||||
--ref-id DISCORD_BOT_TOKEN
|
||||
```
|
||||
|
||||
3. Режим побудови provider (лише для шляху `secrets.providers.<alias>`):
|
||||
|
||||
```bash
|
||||
openclaw config set secrets.providers.vault \
|
||||
--provider-source exec \
|
||||
--provider-command /usr/local/bin/openclaw-vault \
|
||||
--provider-arg read \
|
||||
--provider-arg openai/api-key \
|
||||
--provider-timeout-ms 5000
|
||||
```
|
||||
|
||||
4. Пакетний режим (`--batch-json` або `--batch-file`):
|
||||
|
||||
```bash
|
||||
openclaw config set --batch-json '[
|
||||
{
|
||||
"path": "secrets.providers.default",
|
||||
"provider": { "source": "env" }
|
||||
},
|
||||
{
|
||||
"path": "channels.discord.token",
|
||||
"ref": { "source": "env", "provider": "default", "id": "DISCORD_BOT_TOKEN" }
|
||||
}
|
||||
]'
|
||||
```
|
||||
|
||||
```bash
|
||||
openclaw config set --batch-file ./config-set.batch.json --dry-run
|
||||
```
|
||||
|
||||
Примітка щодо політики:
|
||||
|
||||
- Присвоєння SecretRef відхиляються на непідтримуваних поверхнях runtime-mutable (наприклад, `hooks.token`, `commands.ownerDisplaySecret`, токени Webhook для прив’язки потоків Discord і JSON облікових даних WhatsApp). Див. [Поверхня облікових даних SecretRef](/uk/reference/secretref-credential-surface).
|
||||
|
||||
Пакетний розбір завжди використовує пакетне корисне навантаження (`--batch-json`/`--batch-file`) як джерело істини.
|
||||
`--strict-json` / `--json` не змінюють поведінку пакетного розбору.
|
||||
|
||||
Режим шляху/значення JSON і далі підтримується як для SecretRef, так і для provider:
|
||||
|
||||
```bash
|
||||
openclaw config set channels.discord.token \
|
||||
'{"source":"env","provider":"default","id":"DISCORD_BOT_TOKEN"}' \
|
||||
--strict-json
|
||||
|
||||
openclaw config set secrets.providers.vaultfile \
|
||||
'{"source":"file","path":"/etc/openclaw/secrets.json","mode":"json"}' \
|
||||
--strict-json
|
||||
```
|
||||
|
||||
## Прапорці побудови provider
|
||||
|
||||
Цілі побудови provider повинні використовувати `secrets.providers.<alias>` як шлях.
|
||||
|
||||
Поширені прапорці:
|
||||
|
||||
- `--provider-source <env|file|exec>`
|
||||
- `--provider-timeout-ms <ms>` (`file`, `exec`)
|
||||
|
||||
Env provider (`--provider-source env`):
|
||||
|
||||
- `--provider-allowlist <ENV_VAR>` (можна повторювати)
|
||||
|
||||
File provider (`--provider-source file`):
|
||||
|
||||
- `--provider-path <path>` (обов’язково)
|
||||
- `--provider-mode <singleValue|json>`
|
||||
- `--provider-max-bytes <bytes>`
|
||||
|
||||
Exec provider (`--provider-source exec`):
|
||||
|
||||
- `--provider-command <path>` (обов’язково)
|
||||
- `--provider-arg <arg>` (можна повторювати)
|
||||
- `--provider-no-output-timeout-ms <ms>`
|
||||
- `--provider-max-output-bytes <bytes>`
|
||||
- `--provider-json-only`
|
||||
- `--provider-env <KEY=VALUE>` (можна повторювати)
|
||||
- `--provider-pass-env <ENV_VAR>` (можна повторювати)
|
||||
- `--provider-trusted-dir <path>` (можна повторювати)
|
||||
- `--provider-allow-insecure-path`
|
||||
- `--provider-allow-symlink-command`
|
||||
|
||||
Приклад hardened exec provider:
|
||||
|
||||
```bash
|
||||
openclaw config set secrets.providers.vault \
|
||||
--provider-source exec \
|
||||
--provider-command /usr/local/bin/openclaw-vault \
|
||||
--provider-arg read \
|
||||
--provider-arg openai/api-key \
|
||||
--provider-json-only \
|
||||
--provider-pass-env VAULT_TOKEN \
|
||||
--provider-trusted-dir /usr/local/bin \
|
||||
--provider-timeout-ms 5000
|
||||
```
|
||||
|
||||
## Сухий запуск
|
||||
|
||||
Використовуйте `--dry-run`, щоб валідувати зміни без запису в `openclaw.json`.
|
||||
|
||||
```bash
|
||||
openclaw config set channels.discord.token \
|
||||
--ref-provider default \
|
||||
--ref-source env \
|
||||
--ref-id DISCORD_BOT_TOKEN \
|
||||
--dry-run
|
||||
|
||||
openclaw config set channels.discord.token \
|
||||
--ref-provider default \
|
||||
--ref-source env \
|
||||
--ref-id DISCORD_BOT_TOKEN \
|
||||
--dry-run \
|
||||
--json
|
||||
|
||||
openclaw config set channels.discord.token \
|
||||
--ref-provider vault \
|
||||
--ref-source exec \
|
||||
--ref-id discord/token \
|
||||
--dry-run \
|
||||
--allow-exec
|
||||
```
|
||||
|
||||
Поведінка сухого запуску:
|
||||
|
||||
- Режим побудови: запускає перевірки розв’язуваності SecretRef для змінених ref/provider.
|
||||
- Режим JSON (`--strict-json`, `--json` або пакетний режим): запускає валідацію схеми та перевірки розв’язуваності SecretRef.
|
||||
- Валідація політики також запускається для відомих непідтримуваних цільових поверхонь SecretRef.
|
||||
- Перевірки політики оцінюють повну конфігурацію після змін, тому записи батьківських об’єктів (наприклад, встановлення `hooks` як об’єкта) не можуть обійти валідацію непідтримуваних поверхонь.
|
||||
- Перевірки exec SecretRef типово пропускаються під час сухого запуску, щоб уникнути побічних ефектів команд.
|
||||
- Використовуйте `--allow-exec` разом із `--dry-run`, щоб увімкнути перевірки exec SecretRef (це може виконати команди provider).
|
||||
- `--allow-exec` призначений лише для сухого запуску й спричиняє помилку, якщо використовується без `--dry-run`.
|
||||
|
||||
`--dry-run --json` виводить машинозчитуваний звіт:
|
||||
|
||||
- `ok`: чи пройдено сухий запуск
|
||||
- `operations`: кількість оцінених присвоєнь
|
||||
- `checks`: чи запускалися перевірки схеми/розв’язуваності
|
||||
- `checks.resolvabilityComplete`: чи були перевірки розв’язуваності виконані до кінця (`false`, коли exec ref пропущено)
|
||||
- `refsChecked`: кількість ref, фактично розв’язаних під час сухого запуску
|
||||
- `skippedExecRefs`: кількість exec ref, пропущених через те, що не було встановлено `--allow-exec`
|
||||
- `errors`: структуровані збої схеми/розв’язуваності, коли `ok=false`
|
||||
|
||||
### Форма виводу JSON
|
||||
|
||||
```json5
|
||||
{
|
||||
ok: boolean,
|
||||
operations: number,
|
||||
configPath: string,
|
||||
inputModes: ["value" | "json" | "builder", ...],
|
||||
checks: {
|
||||
schema: boolean,
|
||||
resolvability: boolean,
|
||||
resolvabilityComplete: boolean,
|
||||
},
|
||||
refsChecked: number,
|
||||
skippedExecRefs: number,
|
||||
errors?: [
|
||||
{
|
||||
kind: "schema" | "resolvability",
|
||||
message: string,
|
||||
ref?: string, // present for resolvability errors
|
||||
},
|
||||
],
|
||||
}
|
||||
```
|
||||
|
||||
Приклад успіху:
|
||||
|
||||
```json
|
||||
{
|
||||
"ok": true,
|
||||
"operations": 1,
|
||||
"configPath": "~/.openclaw/openclaw.json",
|
||||
"inputModes": ["builder"],
|
||||
"checks": {
|
||||
"schema": false,
|
||||
"resolvability": true,
|
||||
"resolvabilityComplete": true
|
||||
},
|
||||
"refsChecked": 1,
|
||||
"skippedExecRefs": 0
|
||||
}
|
||||
```
|
||||
|
||||
Приклад помилки:
|
||||
|
||||
```json
|
||||
{
|
||||
"ok": false,
|
||||
"operations": 1,
|
||||
"configPath": "~/.openclaw/openclaw.json",
|
||||
"inputModes": ["builder"],
|
||||
"checks": {
|
||||
"schema": false,
|
||||
"resolvability": true,
|
||||
"resolvabilityComplete": true
|
||||
},
|
||||
"refsChecked": 1,
|
||||
"skippedExecRefs": 0,
|
||||
"errors": [
|
||||
{
|
||||
"kind": "resolvability",
|
||||
"message": "Error: Environment variable \"MISSING_TEST_SECRET\" is not set.",
|
||||
"ref": "env:default:MISSING_TEST_SECRET"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Якщо сухий запуск завершується помилкою:
|
||||
|
||||
- `config schema validation failed`: форма вашої конфігурації після змін невалідна; виправте шлях/значення або форму об’єкта provider/ref.
|
||||
- `Config policy validation failed: unsupported SecretRef usage`: перенесіть цей обліковий запис назад у plaintext/string input і залишайте SecretRef лише на підтримуваних поверхнях.
|
||||
- `SecretRef assignment(s) could not be resolved`: на цей момент не вдається розв’язати вказаний provider/ref (відсутня змінна середовища, невалідний вказівник на файл, збій exec provider або невідповідність provider/source).
|
||||
- `Dry run note: skipped <n> exec SecretRef resolvability check(s)`: сухий запуск пропустив exec ref; перезапустіть з `--allow-exec`, якщо вам потрібна валідація розв’язуваності exec.
|
||||
- Для пакетного режиму виправте записи, які не пройшли, і перед записом повторно запустіть `--dry-run`.
|
||||
|
||||
## Безпека запису
|
||||
|
||||
`openclaw config set` та інші засоби запису конфігурації, якими керує OpenClaw, валідують повну
|
||||
конфігурацію після змін перед її збереженням на диск. Якщо нове корисне навантаження не проходить
|
||||
валідацію схеми або виглядає як руйнівне перезаписування, активна конфігурація залишається без змін,
|
||||
а відхилене корисне навантаження зберігається поруч як `openclaw.json.rejected.*`.
|
||||
Активний шлях конфігурації має бути звичайним файлом. Макети `openclaw.json`
|
||||
із символічними посиланнями не підтримуються для запису; натомість використовуйте `OPENCLAW_CONFIG_PATH`, щоб вказати безпосередньо
|
||||
на реальний файл.
|
||||
|
||||
Для невеликих змін віддавайте перевагу запису через CLI:
|
||||
|
||||
```bash
|
||||
openclaw config set gateway.reload.mode hybrid --dry-run
|
||||
openclaw config set gateway.reload.mode hybrid
|
||||
openclaw config validate
|
||||
```
|
||||
|
||||
Якщо запис відхилено, перевірте збережене корисне навантаження й виправте повну форму конфігурації:
|
||||
|
||||
```bash
|
||||
CONFIG="$(openclaw config file)"
|
||||
ls -lt "$CONFIG".rejected.* 2>/dev/null | head
|
||||
openclaw config validate
|
||||
```
|
||||
|
||||
Прямий запис через редактор і далі дозволений, але запущений Gateway розглядає такі зміни як
|
||||
недовірені, доки вони не пройдуть валідацію. Невалідні прямі редагування можна відновити з
|
||||
резервної копії останнього відомого коректного стану під час запуску або гарячого перезавантаження. Див.
|
||||
[Усунення несправностей Gateway](/uk/gateway/troubleshooting#gateway-restored-last-known-good-config).
|
||||
|
||||
## Підкоманди
|
||||
|
||||
- `config file`: Вивести шлях до активного файла конфігурації (визначений з `OPENCLAW_CONFIG_PATH` або стандартного розташування). Шлях має вказувати на звичайний файл, а не на символічне посилання.
|
||||
|
||||
Після редагувань перезапустіть gateway.
|
||||
|
||||
## Валідація
|
||||
|
||||
Валідуйте поточну конфігурацію щодо активної схеми без запуску
|
||||
gateway.
|
||||
|
||||
```bash
|
||||
openclaw config validate
|
||||
openclaw config validate --json
|
||||
```
|
||||
|
||||
Після того як `openclaw config validate` почне проходити, ви можете використовувати локальний TUI, щоб
|
||||
вбудований агент порівняв активну конфігурацію з документацією, поки ви валідуєте
|
||||
кожну зміну з того самого термінала:
|
||||
|
||||
Якщо валідація вже не проходить, почніть з `openclaw configure` або
|
||||
`openclaw doctor --fix`. `openclaw chat` не обходить захист від
|
||||
невалідної конфігурації.
|
||||
|
||||
```bash
|
||||
openclaw chat
|
||||
```
|
||||
|
||||
Потім усередині TUI:
|
||||
|
||||
```text
|
||||
!openclaw config file
|
||||
!openclaw docs gateway auth token secretref
|
||||
!openclaw config validate
|
||||
!openclaw doctor
|
||||
```
|
||||
|
||||
Типовий цикл виправлення:
|
||||
|
||||
- Попросіть агента порівняти вашу поточну конфігурацію з відповідною сторінкою документації та запропонувати найменше виправлення.
|
||||
- Застосуйте цільові зміни за допомогою `openclaw config set` або `openclaw configure`.
|
||||
- Повторно запускайте `openclaw config validate` після кожної зміни.
|
||||
- Якщо валідація проходить, але середовище виконання все ще нездорове, запустіть `openclaw doctor` або `openclaw doctor --fix` для допомоги з міграцією та виправленням.
|
||||
79
docs/uk/cli/configure.md
Normal file
79
docs/uk/cli/configure.md
Normal file
@ -0,0 +1,79 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете інтерактивно змінити облікові дані, пристрої або типові параметри агента
|
||||
summary: Довідник CLI для `openclaw configure` (інтерактивні підказки налаштування)
|
||||
title: налаштувати
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:17:23Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 7fedaf1bc5e5c793ed354ff01294808f9b4a266219f8e07799a2545fe5652cf2
|
||||
source_path: cli/configure.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw configure`
|
||||
|
||||
Інтерактивна підказка для налаштування облікових даних, пристроїв і типових параметрів агента.
|
||||
|
||||
Примітка: розділ **Model** тепер містить multi-select для allowlist
|
||||
`agents.defaults.models` (що відображається в `/model` і в засобі вибору моделі).
|
||||
Варіанти налаштування в межах провайдера додають вибрані ними моделі до наявного
|
||||
allowlist, а не замінюють не пов’язаних провайдерів, які вже є в конфігурації.
|
||||
|
||||
Коли configure запускається з вибору автентифікації провайдера, засоби вибору
|
||||
моделі за замовчуванням і allowlist автоматично віддають перевагу цьому провайдеру. Для парних провайдерів, таких
|
||||
як Volcengine/BytePlus, та сама перевага також відповідає їхнім варіантам
|
||||
coding-plan (`volcengine-plan/*`, `byteplus-plan/*`). Якщо фільтр preferred-provider
|
||||
призводить до порожнього списку, configure повертається до нефільтрованого
|
||||
каталогу замість показу порожнього засобу вибору.
|
||||
|
||||
Порада: `openclaw config` без підкоманди відкриває той самий майстер. Використовуйте
|
||||
`openclaw config get|set|unset` для неінтерактивного редагування.
|
||||
|
||||
Для вебпошуку `openclaw configure --section web` дає змогу вибрати провайдера
|
||||
та налаштувати його облікові дані. Деякі провайдери також показують
|
||||
додаткові підказки, специфічні для провайдера:
|
||||
|
||||
- **Grok** може запропонувати необов’язкове налаштування `x_search` з тим самим `XAI_API_KEY` і
|
||||
дозволити вам вибрати модель `x_search`.
|
||||
- **Kimi** може запитати регіон API Moonshot (`api.moonshot.ai` чи
|
||||
`api.moonshot.cn`) і модель вебпошуку Kimi за замовчуванням.
|
||||
|
||||
Пов’язане:
|
||||
|
||||
- Довідник із конфігурації Gateway: [Configuration](/uk/gateway/configuration)
|
||||
- CLI конфігурації: [Config](/uk/cli/config)
|
||||
|
||||
## Параметри
|
||||
|
||||
- `--section <section>`: повторюваний фільтр розділів
|
||||
|
||||
Доступні розділи:
|
||||
|
||||
- `workspace`
|
||||
- `model`
|
||||
- `web`
|
||||
- `gateway`
|
||||
- `daemon`
|
||||
- `channels`
|
||||
- `plugins`
|
||||
- `skills`
|
||||
- `health`
|
||||
|
||||
Примітки:
|
||||
|
||||
- Вибір місця, де запускається Gateway, завжди оновлює `gateway.mode`. Ви можете вибрати "Continue" без інших розділів, якщо вам потрібно лише це.
|
||||
- Сервіси, орієнтовані на канали (Slack/Discord/Matrix/Microsoft Teams), під час налаштування запитують allowlist каналів/кімнат. Ви можете вводити назви або ID; за можливості майстер перетворює назви на ID.
|
||||
- Якщо ви запускаєте крок встановлення daemon, автентифікація токеном потребує токена, а `gateway.auth.token` керується через SecretRef, configure перевіряє SecretRef, але не зберігає визначені відкриті значення токена в метаданих середовища сервісу supervisor.
|
||||
- Якщо автентифікація токеном потребує токена, а налаштований SecretRef токена в `gateway.auth.token` не визначено, configure блокує встановлення daemon і надає дієві рекомендації щодо виправлення.
|
||||
- Якщо налаштовано і `gateway.auth.token`, і `gateway.auth.password`, а `gateway.auth.mode` не встановлено, configure блокує встановлення daemon, доки режим не буде явно задано.
|
||||
|
||||
## Приклади
|
||||
|
||||
```bash
|
||||
openclaw configure
|
||||
openclaw configure --section web
|
||||
openclaw configure --section model --section channels
|
||||
openclaw configure --section gateway --section daemon
|
||||
```
|
||||
183
docs/uk/cli/cron.md
Normal file
183
docs/uk/cli/cron.md
Normal file
@ -0,0 +1,183 @@
|
||||
---
|
||||
read_when:
|
||||
- Вам потрібні заплановані завдання та пробудження
|
||||
- Ви налагоджуєте виконання Cron і журнали
|
||||
summary: Довідка CLI для `openclaw cron` (планування та запуск фонових завдань)
|
||||
title: Cron
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:17:26Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: f5216f220748b05df5202af778878b37148d6abe235be9fe82ddcf976d51532a
|
||||
source_path: cli/cron.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw cron`
|
||||
|
||||
Керування завданнями Cron для планувальника Gateway.
|
||||
|
||||
Пов’язане:
|
||||
|
||||
- Завдання Cron: [Завдання Cron](/uk/automation/cron-jobs)
|
||||
|
||||
Порада: виконайте `openclaw cron --help`, щоб побачити повну поверхню команди.
|
||||
|
||||
Примітка: `openclaw cron list` і `openclaw cron show <job-id>` показують попередній перегляд
|
||||
розв’язаного маршруту доставки. Для `channel: "last"` у попередньому перегляді показується, чи
|
||||
маршрут розв’язано з основної/поточної сесії, чи він завершиться безпечною відмовою.
|
||||
|
||||
Примітка: ізольовані завдання `cron add` типово використовують доставку `--announce`.
|
||||
Використовуйте `--no-deliver`, щоб зберегти вивід внутрішнім. `--deliver` залишається
|
||||
застарілим псевдонімом для `--announce`.
|
||||
|
||||
Примітка: доставка чату ізольованого Cron є спільною. `--announce` — це резервна
|
||||
доставка runner для фінальної відповіді; `--no-deliver` вимикає цей резервний
|
||||
механізм, але не прибирає інструмент `message` агента, якщо маршрут чату доступний.
|
||||
|
||||
Примітка: одноразові завдання (`--at`) типово видаляються після успішного виконання.
|
||||
Використовуйте `--keep-after-run`, щоб зберегти їх.
|
||||
|
||||
Примітка: `--session` підтримує `main`, `isolated`, `current` і `session:<id>`.
|
||||
Використовуйте `current`, щоб прив’язати до активної сесії в момент створення, або `session:<id>` для
|
||||
явного постійного ключа сесії.
|
||||
|
||||
Примітка: для одноразових CLI-завдань datetime у `--at` без зсуву часової зони
|
||||
трактуються як UTC, якщо ви також не передасте `--tz <iana>`, що інтерпретує
|
||||
цей локальний час у заданому часовому поясі.
|
||||
|
||||
Примітка: повторювані завдання тепер використовують експоненційне збільшення затримки повторних спроб після послідовних помилок (30s → 1m → 5m → 15m → 60m), а потім повертаються до звичайного розкладу після наступного успішного запуску.
|
||||
|
||||
Примітка: `openclaw cron run` тепер повертається, щойно ручний запуск поставлено в чергу на виконання. Успішні відповіді містять `{ ok: true, enqueued: true, runId }`; використовуйте `openclaw cron runs --id <job-id>`, щоб відстежити підсумковий результат.
|
||||
|
||||
Примітка: `openclaw cron run <job-id>` типово примусово запускає завдання.
|
||||
Використовуйте `--due`, щоб зберегти стару поведінку «запускати лише якщо настав час».
|
||||
|
||||
Примітка: ізольовані ходи Cron пригнічують застарілі відповіді, що містять лише підтвердження.
|
||||
Якщо перший результат — лише проміжне оновлення стану і жоден дочірній запуск субагента
|
||||
не відповідає за остаточну відповідь, Cron повторно формує запит один раз для отримання реального результату перед доставкою.
|
||||
|
||||
Примітка: якщо ізольований запуск повертає лише тихий токен (`NO_REPLY` /
|
||||
`no_reply`), Cron пригнічує як пряму вихідну доставку, так і резервний шлях
|
||||
постановки підсумку в чергу, тому назад у чат нічого не надсилається.
|
||||
|
||||
Примітка: `cron add|edit --model ...` використовує цю вибрану дозволену модель для завдання.
|
||||
Якщо модель не дозволена, Cron попереджає та повертається до вибору моделі
|
||||
агента/типової моделі для завдання. Налаштовані ланцюжки резервних варіантів і далі застосовуються, але звичайне перевизначення моделі без явного списку резервних варіантів для завдання більше не додає основну модель агента як приховану додаткову ціль для повторної спроби.
|
||||
|
||||
Примітка: пріоритет моделі для ізольованого Cron такий: спочатку перевизначення Gmail-hook, потім
|
||||
`--model` для завдання, потім будь-яке збережене перевизначення моделі cron-session, а потім
|
||||
звичайний вибір агента/типової моделі.
|
||||
|
||||
Примітка: швидкий режим ізольованого Cron слідує за розв’язаним вибором live-моделі.
|
||||
Конфігурація моделі `params.fastMode` застосовується типово, але збережене перевизначення
|
||||
`fastMode` сесії все одно має вищий пріоритет за конфігурацію.
|
||||
|
||||
Примітка: якщо ізольований запуск викидає `LiveSessionModelSwitchError`, Cron зберігає
|
||||
перемкненого провайдера/модель (а також перемкнене перевизначення профілю автентифікації, якщо є)
|
||||
перед повторною спробою. Зовнішній цикл повторних спроб обмежено 2 повторними перемиканнями після початкової
|
||||
спроби, після чого він переривається замість нескінченного циклу.
|
||||
|
||||
Примітка: сповіщення про збої спочатку використовують `delivery.failureDestination`, потім
|
||||
глобальний `cron.failureDestination`, і нарешті повертаються до основної
|
||||
цілі announce завдання, якщо явну ціль збоїв не налаштовано.
|
||||
|
||||
Примітка: retention/pruning керується в конфігурації:
|
||||
|
||||
- `cron.sessionRetention` (типово `24h`) очищає завершені сесії ізольованих запусків.
|
||||
- `cron.runLog.maxBytes` + `cron.runLog.keepLines` очищають `~/.openclaw/cron/runs/<jobId>.jsonl`.
|
||||
|
||||
Примітка щодо оновлення: якщо у вас є старіші завдання Cron, створені до поточного формату delivery/store, виконайте
|
||||
`openclaw doctor --fix`. Тепер Doctor нормалізує застарілі поля Cron (`jobId`, `schedule.cron`,
|
||||
поля доставки верхнього рівня, включно із застарілим `threadId`, псевдоніми доставки `provider` у payload) і мігрує прості
|
||||
резервні Webhook-завдання з `notify: true` до явної доставки через webhook, коли налаштовано `cron.webhook`.
|
||||
|
||||
## Поширені редагування
|
||||
|
||||
Оновити налаштування доставки без зміни повідомлення:
|
||||
|
||||
```bash
|
||||
openclaw cron edit <job-id> --announce --channel telegram --to "123456789"
|
||||
```
|
||||
|
||||
Вимкнути доставку для ізольованого завдання:
|
||||
|
||||
```bash
|
||||
openclaw cron edit <job-id> --no-deliver
|
||||
```
|
||||
|
||||
Увімкнути полегшений bootstrap-контекст для ізольованого завдання:
|
||||
|
||||
```bash
|
||||
openclaw cron edit <job-id> --light-context
|
||||
```
|
||||
|
||||
Оголосити у конкретний канал:
|
||||
|
||||
```bash
|
||||
openclaw cron edit <job-id> --announce --channel slack --to "channel:C1234567890"
|
||||
```
|
||||
|
||||
Створити ізольоване завдання з полегшеним bootstrap-контекстом:
|
||||
|
||||
```bash
|
||||
openclaw cron add \
|
||||
--name "Lightweight morning brief" \
|
||||
--cron "0 7 * * *" \
|
||||
--session isolated \
|
||||
--message "Summarize overnight updates." \
|
||||
--light-context \
|
||||
--no-deliver
|
||||
```
|
||||
|
||||
`--light-context` застосовується лише до ізольованих завдань ходу агента. Для запусків Cron
|
||||
полегшений режим зберігає bootstrap-контекст порожнім замість упровадження повного набору bootstrap робочого простору.
|
||||
|
||||
Примітка щодо володіння доставкою:
|
||||
|
||||
- Доставка чату ізольованого Cron є спільною. Агент може надсилати безпосередньо за допомогою
|
||||
інструмента `message`, якщо маршрут чату доступний.
|
||||
- `announce` резервно доставляє фінальну відповідь лише тоді, коли агент не надіслав її
|
||||
безпосередньо до розв’язаної цілі. `webhook` надсилає завершений payload на URL.
|
||||
`none` вимикає резервну доставку runner.
|
||||
|
||||
## Поширені команди адміністрування
|
||||
|
||||
Ручний запуск:
|
||||
|
||||
```bash
|
||||
openclaw cron list
|
||||
openclaw cron show <job-id>
|
||||
openclaw cron run <job-id>
|
||||
openclaw cron run <job-id> --due
|
||||
openclaw cron runs --id <job-id> --limit 50
|
||||
```
|
||||
|
||||
Записи `cron runs` містять діагностику доставки з ціллю Cron, яку було задумано,
|
||||
розв’язаною ціллю, надсиланнями через інструмент message, використанням резервного механізму та станом доставки.
|
||||
|
||||
Переналаштування агента/сесії:
|
||||
|
||||
```bash
|
||||
openclaw cron edit <job-id> --agent ops
|
||||
openclaw cron edit <job-id> --clear-agent
|
||||
openclaw cron edit <job-id> --session current
|
||||
openclaw cron edit <job-id> --session "session:daily-brief"
|
||||
```
|
||||
|
||||
Налаштування доставки:
|
||||
|
||||
```bash
|
||||
openclaw cron edit <job-id> --announce --channel slack --to "channel:C1234567890"
|
||||
openclaw cron edit <job-id> --best-effort-deliver
|
||||
openclaw cron edit <job-id> --no-best-effort-deliver
|
||||
openclaw cron edit <job-id> --no-deliver
|
||||
```
|
||||
|
||||
Примітка щодо доставки збоїв:
|
||||
|
||||
- `delivery.failureDestination` підтримується для ізольованих завдань.
|
||||
- Завдання основної сесії можуть використовувати `delivery.failureDestination` лише тоді, коли основним
|
||||
режимом доставки є `webhook`.
|
||||
- Якщо ви не задаєте жодної цілі для збоїв, а завдання вже оголошує в
|
||||
канал, сповіщення про збої повторно використовують ту саму ціль announce.
|
||||
64
docs/uk/cli/daemon.md
Normal file
64
docs/uk/cli/daemon.md
Normal file
@ -0,0 +1,64 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви досі використовуєте `openclaw daemon ...` у скриптах
|
||||
- Вам потрібні команди життєвого циклу служби (install/start/stop/restart/status)
|
||||
summary: Довідка CLI для `openclaw daemon` (застарілий псевдонім для керування службою gateway)
|
||||
title: демон
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:17:33Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 91fdaf3c4f3e7dd4dff86f9b74a653dcba2674573698cf51efc4890077994169
|
||||
source_path: cli/daemon.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw daemon`
|
||||
|
||||
Застарілий псевдонім для команд керування службою Gateway.
|
||||
|
||||
`openclaw daemon ...` зіставляється з тією самою поверхнею керування службою, що й команди служби `openclaw gateway ...`.
|
||||
|
||||
## Використання
|
||||
|
||||
```bash
|
||||
openclaw daemon status
|
||||
openclaw daemon install
|
||||
openclaw daemon start
|
||||
openclaw daemon stop
|
||||
openclaw daemon restart
|
||||
openclaw daemon uninstall
|
||||
```
|
||||
|
||||
## Підкоманди
|
||||
|
||||
- `status`: показати стан встановлення служби та перевірити стан Gateway
|
||||
- `install`: встановити службу (`launchd`/`systemd`/`schtasks`)
|
||||
- `uninstall`: видалити службу
|
||||
- `start`: запустити службу
|
||||
- `stop`: зупинити службу
|
||||
- `restart`: перезапустити службу
|
||||
|
||||
## Поширені параметри
|
||||
|
||||
- `status`: `--url`, `--token`, `--password`, `--timeout`, `--no-probe`, `--require-rpc`, `--deep`, `--json`
|
||||
- `install`: `--port`, `--runtime <node|bun>`, `--token`, `--force`, `--json`
|
||||
- життєвий цикл (`uninstall|start|stop|restart`): `--json`
|
||||
|
||||
Примітки:
|
||||
|
||||
- `status` за можливості визначає налаштовані auth SecretRef для автентифікації перевірки.
|
||||
- Якщо обов’язковий auth SecretRef не визначено в цьому шляху команди, `daemon status --json` повідомляє `rpc.authWarning`, коли перевірка підключення/автентифікації завершується невдачею; передайте `--token`/`--password` явно або спочатку визначте джерело секрету.
|
||||
- Якщо перевірка успішна, попередження про невизначені auth-ref пригнічуються, щоб уникнути хибнопозитивних спрацьовувань.
|
||||
- `status --deep` додає найкращу можливу системну перевірку служби. Коли вона знаходить інші служби, схожі на gateway, у зрозумілому для людини виводі з’являються підказки щодо очищення та попередження, що одна gateway на машину, як і раніше, є звичайною рекомендацією.
|
||||
- У встановленнях Linux systemd перевірки розходжень токена в `status` охоплюють обидва джерела unit: `Environment=` і `EnvironmentFile=`.
|
||||
- Перевірки розходжень визначають SecretRef для `gateway.auth.token` за допомогою об’єднаного середовища виконання (спочатку середовище команди служби, потім резервне середовище процесу).
|
||||
- Якщо автентифікація токеном фактично не активна (явно задано `gateway.auth.mode` як `password`/`none`/`trusted-proxy`, або режим не задано, де може перемогти пароль і жоден кандидат токена не може перемогти), перевірки розходжень токена пропускають визначення токена з конфігурації.
|
||||
- Коли автентифікація токеном потребує токен, а `gateway.auth.token` керується через SecretRef, `install` перевіряє, що SecretRef можна визначити, але не зберігає визначений токен у метаданих середовища служби.
|
||||
- Якщо автентифікація токеном потребує токен, а налаштований SecretRef токена не визначено, встановлення завершується з безпечним блокуванням.
|
||||
- Якщо налаштовано і `gateway.auth.token`, і `gateway.auth.password`, а `gateway.auth.mode` не задано, встановлення блокується, доки режим не буде вказано явно.
|
||||
- Якщо ви навмисно запускаєте кілька gateway на одному хості, ізолюйте порти, config/state та робочі простори; див. [/gateway#multiple-gateways-same-host](/uk/gateway#multiple-gateways-same-host).
|
||||
|
||||
## Рекомендовано
|
||||
|
||||
Використовуйте [`openclaw gateway`](/uk/cli/gateway) для актуальної документації та прикладів.
|
||||
29
docs/uk/cli/dashboard.md
Normal file
29
docs/uk/cli/dashboard.md
Normal file
@ -0,0 +1,29 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете відкрити Control UI зі своїм поточним токеном
|
||||
- Ви хочете вивести URL без запуску браузера
|
||||
summary: Довідка CLI для `openclaw dashboard` (відкрити Control UI)
|
||||
title: панель керування
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:17:33Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: a34cd109a3803e2910fcb4d32f2588aa205a4933819829ef5598f0780f586c94
|
||||
source_path: cli/dashboard.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw dashboard`
|
||||
|
||||
Відкрийте Control UI, використовуючи свою поточну автентифікацію.
|
||||
|
||||
```bash
|
||||
openclaw dashboard
|
||||
openclaw dashboard --no-open
|
||||
```
|
||||
|
||||
Примітки:
|
||||
|
||||
- `dashboard` визначає налаштовані SecretRef для `gateway.auth.token`, коли це можливо.
|
||||
- Для токенів, якими керує SecretRef (визначених або невизначених), `dashboard` виводить/копіює/відкриває URL без токена, щоб уникнути розкриття зовнішніх секретів у виводі термінала, історії буфера обміну або аргументах запуску браузера.
|
||||
- Якщо `gateway.auth.token` керується через SecretRef, але не визначається в цьому шляху виконання команди, команда виводить URL без токена та явні рекомендації щодо виправлення замість вбудовування недійсного заповнювача токена.
|
||||
165
docs/uk/cli/devices.md
Normal file
165
docs/uk/cli/devices.md
Normal file
@ -0,0 +1,165 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви схвалюєте запити на сполучення пристроїв
|
||||
- Вам потрібно ротувати або відкликати токени пристроїв
|
||||
summary: Довідка CLI для `openclaw devices` (сполучення пристроїв + ротація/відкликання токенів)
|
||||
title: пристрої
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:17:35Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 8e58d2dff7fc22a11ff372f4937907977dab0ffa9f971b9c0bffeb3e347caf66
|
||||
source_path: cli/devices.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw devices`
|
||||
|
||||
Керуйте запитами на сполучення пристроїв і токенами з областю дії пристрою.
|
||||
|
||||
## Команди
|
||||
|
||||
### `openclaw devices list`
|
||||
|
||||
Показати список очікуваних запитів на сполучення та сполучених пристроїв.
|
||||
|
||||
```
|
||||
openclaw devices list
|
||||
openclaw devices list --json
|
||||
```
|
||||
|
||||
У виводі очікуваних запитів запитуваний доступ показується поруч із поточним схваленим доступом пристрою, якщо пристрій уже сполучений. Це робить оновлення області дії/ролі явними, а не створює враження, що сполучення було втрачено.
|
||||
|
||||
### `openclaw devices remove <deviceId>`
|
||||
|
||||
Видалити один запис сполученого пристрою.
|
||||
|
||||
Якщо ви автентифіковані за допомогою токена сполученого пристрою, виклики від неадміністратора можуть видаляти лише **власний** запис пристрою. Для видалення іншого пристрою потрібен `operator.admin`.
|
||||
|
||||
```
|
||||
openclaw devices remove <deviceId>
|
||||
openclaw devices remove <deviceId> --json
|
||||
```
|
||||
|
||||
### `openclaw devices clear --yes [--pending]`
|
||||
|
||||
Масово очистити сполучені пристрої.
|
||||
|
||||
```
|
||||
openclaw devices clear --yes
|
||||
openclaw devices clear --yes --pending
|
||||
openclaw devices clear --yes --pending --json
|
||||
```
|
||||
|
||||
### `openclaw devices approve [requestId] [--latest]`
|
||||
|
||||
Схвалити очікуваний запит на сполучення пристрою за точним `requestId`. Якщо `requestId` не вказано або передано `--latest`, OpenClaw лише показує вибраний очікуваний запит і завершує роботу; після перевірки деталей повторно запустіть схвалення з точним ідентифікатором запиту.
|
||||
|
||||
Примітка: якщо пристрій повторює спробу сполучення зі зміненими даними автентифікації (роль/області дії/публічний ключ), OpenClaw замінює попередній очікуваний запис і видає новий `requestId`. Запускайте `openclaw devices list` безпосередньо перед схваленням, щоб використати поточний ідентифікатор.
|
||||
|
||||
Якщо пристрій уже сполучений і запитує ширші області дії або ширшу роль, OpenClaw зберігає наявне схвалення та створює новий очікуваний запит на оновлення. Перегляньте стовпці `Requested` і `Approved` у `openclaw devices list` або скористайтеся `openclaw devices approve --latest`, щоб попередньо переглянути точне оновлення перед його схваленням.
|
||||
|
||||
```
|
||||
openclaw devices approve
|
||||
openclaw devices approve <requestId>
|
||||
openclaw devices approve --latest
|
||||
```
|
||||
|
||||
### `openclaw devices reject <requestId>`
|
||||
|
||||
Відхилити очікуваний запит на сполучення пристрою.
|
||||
|
||||
```
|
||||
openclaw devices reject <requestId>
|
||||
```
|
||||
|
||||
### `openclaw devices rotate --device <id> --role <role> [--scope <scope...>]`
|
||||
|
||||
Ротувати токен пристрою для конкретної ролі (необов’язково оновивши області дії).
|
||||
Цільова роль уже має існувати в схваленому контракті сполучення цього пристрою; ротація не може випустити нову несхвалену роль.
|
||||
Якщо не вказати `--scope`, пізніші повторні підключення зі збереженим ротованим токеном повторно використовуватимуть кешовані схвалені області дії цього токена. Якщо передати явні значення `--scope`, вони стануть збереженим набором областей дії для майбутніх повторних підключень із кешованим токеном.
|
||||
Виклики від неадміністратора зі сполученого пристрою можуть ротувати лише **власний** токен пристрою.
|
||||
Крім того, будь-які явні значення `--scope` мають залишатися в межах власних операторських областей дії сеансу викликача; ротація не може випустити ширший операторський токен, ніж той, який викликач уже має.
|
||||
|
||||
```
|
||||
openclaw devices rotate --device <deviceId> --role operator --scope operator.read --scope operator.write
|
||||
```
|
||||
|
||||
Повертає нове корисне навантаження токена у форматі JSON.
|
||||
|
||||
### `openclaw devices revoke --device <id> --role <role>`
|
||||
|
||||
Відкликати токен пристрою для конкретної ролі.
|
||||
|
||||
Виклики від неадміністратора зі сполученого пристрою можуть відкликати лише **власний** токен пристрою.
|
||||
Для відкликання токена іншого пристрою потрібен `operator.admin`.
|
||||
|
||||
```
|
||||
openclaw devices revoke --device <deviceId> --role node
|
||||
```
|
||||
|
||||
Повертає результат відкликання у форматі JSON.
|
||||
|
||||
## Поширені параметри
|
||||
|
||||
- `--url <url>`: URL WebSocket Gateway (за замовчуванням використовується `gateway.remote.url`, якщо налаштовано).
|
||||
- `--token <token>`: токен Gateway (якщо потрібен).
|
||||
- `--password <password>`: пароль Gateway (автентифікація паролем).
|
||||
- `--timeout <ms>`: тайм-аут RPC.
|
||||
- `--json`: вивід JSON (рекомендовано для скриптів).
|
||||
|
||||
Примітка: коли ви задаєте `--url`, CLI не повертається до облікових даних із конфігурації або змінних середовища.
|
||||
Передайте `--token` або `--password` явно. Відсутність явно переданих облікових даних є помилкою.
|
||||
|
||||
## Примітки
|
||||
|
||||
- Ротація токена повертає новий токен (чутливі дані). Поводьтеся з ним як із секретом.
|
||||
- Для цих команд потрібна область дії `operator.pairing` (або `operator.admin`).
|
||||
- Ротація токена залишається в межах схваленого набору ролей сполучення та базового рівня схвалених областей дії для цього пристрою. Випадковий запис кешованого токена не надає нової цілі для ротації.
|
||||
- Для сеансів токенів сполученого пристрою керування іншими пристроями доступне лише адміністратору:
|
||||
`remove`, `rotate` і `revoke` дозволені лише для власного пристрою, якщо викликач не має `operator.admin`.
|
||||
- `devices clear` навмисно захищено прапорцем `--yes`.
|
||||
- Якщо область дії сполучення недоступна на local loopback (і явний `--url` не передано), `list`/`approve` можуть використовувати локальний резервний механізм сполучення.
|
||||
- `devices approve` вимагає явного ідентифікатора запиту перед випуском токенів; якщо не вказати `requestId` або передати `--latest`, буде лише показано найновіший очікуваний запит.
|
||||
|
||||
## Контрольний список відновлення при розсинхронізації токена
|
||||
|
||||
Використовуйте це, коли Control UI або інші клієнти постійно завершуються помилкою `AUTH_TOKEN_MISMATCH` або `AUTH_DEVICE_TOKEN_MISMATCH`.
|
||||
|
||||
1. Підтвердьте поточне джерело токена gateway:
|
||||
|
||||
```bash
|
||||
openclaw config get gateway.auth.token
|
||||
```
|
||||
|
||||
2. Перелічіть сполучені пристрої та визначте ідентифікатор проблемного пристрою:
|
||||
|
||||
```bash
|
||||
openclaw devices list
|
||||
```
|
||||
|
||||
3. Ротуйте операторський токен для проблемного пристрою:
|
||||
|
||||
```bash
|
||||
openclaw devices rotate --device <deviceId> --role operator
|
||||
```
|
||||
|
||||
4. Якщо ротації недостатньо, видаліть застаріле сполучення і схваліть знову:
|
||||
|
||||
```bash
|
||||
openclaw devices remove <deviceId>
|
||||
openclaw devices list
|
||||
openclaw devices approve <requestId>
|
||||
```
|
||||
|
||||
5. Повторіть спробу підключення клієнта з поточним спільним токеном/паролем.
|
||||
|
||||
Примітки:
|
||||
|
||||
- Звичайний пріоритет автентифікації під час повторного підключення: спочатку явний спільний токен/пароль, потім явний `deviceToken`, потім збережений токен пристрою, потім bootstrap-токен.
|
||||
- Довірене відновлення після `AUTH_TOKEN_MISMATCH` може тимчасово надіслати і спільний токен, і збережений токен пристрою разом для однієї обмеженої повторної спроби.
|
||||
|
||||
Пов’язане:
|
||||
|
||||
- [Усунення проблем автентифікації Dashboard](/uk/web/dashboard#if-you-see-unauthorized-1008)
|
||||
- [Усунення проблем Gateway](/uk/gateway/troubleshooting#dashboard-control-ui-connectivity)
|
||||
70
docs/uk/cli/directory.md
Normal file
70
docs/uk/cli/directory.md
Normal file
@ -0,0 +1,70 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете знайти ідентифікатори контактів/груп/self для каналу
|
||||
- Ви розробляєте адаптер каталогу каналу
|
||||
summary: Довідка CLI для `openclaw directory` (self, peers, groups)
|
||||
title: каталог
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:17:38Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 6a81a037e0a33f77c24b1adabbc4be16ed4d03c419873f3cbdd63f2ce84a1064
|
||||
source_path: cli/directory.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw directory`
|
||||
|
||||
Пошук у каталозі для каналів, які це підтримують (контакти/peers, групи та «я»).
|
||||
|
||||
## Поширені прапорці
|
||||
|
||||
- `--channel <name>`: id/псевдонім каналу (обов’язково, якщо налаштовано кілька каналів; автоматично, якщо налаштовано лише один)
|
||||
- `--account <id>`: id облікового запису (типово: типовий для каналу)
|
||||
- `--json`: вивід JSON
|
||||
|
||||
## Примітки
|
||||
|
||||
- `directory` призначений для того, щоб допомогти вам знайти id, які можна вставити в інші команди (особливо `openclaw message send --target ...`).
|
||||
- Для багатьох каналів результати беруться з конфігурації (allowlists / налаштовані групи), а не з живого каталогу провайдера.
|
||||
- Типовий вивід — `id` (а іноді `name`), розділені табуляцією; для скриптів використовуйте `--json`.
|
||||
|
||||
## Використання результатів із `message send`
|
||||
|
||||
```bash
|
||||
openclaw directory peers list --channel slack --query "U0"
|
||||
openclaw message send --channel slack --target user:U012ABCDEF --message "hello"
|
||||
```
|
||||
|
||||
## Формати id (за каналом)
|
||||
|
||||
- WhatsApp: `+15551234567` (DM), `1234567890-1234567890@g.us` (група)
|
||||
- Telegram: `@username` або числовий id чату; групи мають числові id
|
||||
- Slack: `user:U…` і `channel:C…`
|
||||
- Discord: `user:<id>` і `channel:<id>`
|
||||
- Matrix (Plugin): `user:@user:server`, `room:!roomId:server` або `#alias:server`
|
||||
- Microsoft Teams (Plugin): `user:<id>` і `conversation:<id>`
|
||||
- Zalo (Plugin): id користувача (Bot API)
|
||||
- Zalo Personal / `zalouser` (Plugin): id потоку (DM/група) з `zca` (`me`, `friend list`, `group list`)
|
||||
|
||||
## Self ("я")
|
||||
|
||||
```bash
|
||||
openclaw directory self --channel zalouser
|
||||
```
|
||||
|
||||
## Peers (контакти/користувачі)
|
||||
|
||||
```bash
|
||||
openclaw directory peers list --channel zalouser
|
||||
openclaw directory peers list --channel zalouser --query "name"
|
||||
openclaw directory peers list --channel zalouser --limit 50
|
||||
```
|
||||
|
||||
## Групи
|
||||
|
||||
```bash
|
||||
openclaw directory groups list --channel zalouser
|
||||
openclaw directory groups list --channel zalouser --query "work"
|
||||
openclaw directory groups members --channel zalouser --group-id <id>
|
||||
```
|
||||
55
docs/uk/cli/dns.md
Normal file
55
docs/uk/cli/dns.md
Normal file
@ -0,0 +1,55 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете широкозонне виявлення (DNS-SD) через Tailscale + CoreDNS
|
||||
- You’re setting up split DNS for a custom discovery domain (example: openclaw.internal)
|
||||
summary: Довідка CLI для `openclaw dns` (допоміжні засоби для широкозонного виявлення)
|
||||
title: DNS
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:17:41Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 4831fbb7791adfed5195bc4ba36bb248d2bc8830958334211d3c96f824617927
|
||||
source_path: cli/dns.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw dns`
|
||||
|
||||
Допоміжні засоби DNS для широкозонного виявлення (Tailscale + CoreDNS). Наразі зосереджено на macOS + Homebrew CoreDNS.
|
||||
|
||||
Пов’язано:
|
||||
|
||||
- Виявлення Gateway: [Виявлення](/uk/gateway/discovery)
|
||||
- Конфігурація широкозонного виявлення: [Конфігурація](/uk/gateway/configuration)
|
||||
|
||||
## Налаштування
|
||||
|
||||
```bash
|
||||
openclaw dns setup
|
||||
openclaw dns setup --domain openclaw.internal
|
||||
openclaw dns setup --apply
|
||||
```
|
||||
|
||||
## `dns setup`
|
||||
|
||||
Сплануйте або застосуйте налаштування CoreDNS для виявлення unicast DNS-SD.
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--domain <domain>`: домен широкозонного виявлення (наприклад, `openclaw.internal`)
|
||||
- `--apply`: установити або оновити конфігурацію CoreDNS і перезапустити сервіс (потребує sudo; лише macOS)
|
||||
|
||||
Що показується:
|
||||
|
||||
- визначений домен виявлення
|
||||
- шлях до файлу зони
|
||||
- поточні IP-адреси tailnet
|
||||
- рекомендована конфігурація виявлення в `openclaw.json`
|
||||
- значення nameserver/domain для Tailscale Split DNS, які потрібно встановити
|
||||
|
||||
Примітки:
|
||||
|
||||
- Без `--apply` команда є лише допоміжним засобом планування та виводить рекомендоване налаштування.
|
||||
- Якщо `--domain` не вказано, OpenClaw використовує `discovery.wideArea.domain` із конфігурації.
|
||||
- `--apply` наразі підтримується лише на macOS і очікує Homebrew CoreDNS.
|
||||
- `--apply` ініціалізує файл зони за потреби, перевіряє наявність import-рядка CoreDNS і перезапускає brew-сервіс `coredns`.
|
||||
35
docs/uk/cli/docs.md
Normal file
35
docs/uk/cli/docs.md
Normal file
@ -0,0 +1,35 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете шукати в live-документації OpenClaw з термінала
|
||||
summary: Довідник CLI для `openclaw docs` (пошук у live-індексі документації)
|
||||
title: документація
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:17:41Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: cfcceed872d7509b9843af3fae733a136bc5e26ded55c2ac47a16489a1636989
|
||||
source_path: cli/docs.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw docs`
|
||||
|
||||
Пошук у live-індексі документації.
|
||||
|
||||
Аргументи:
|
||||
|
||||
- `[query...]`: пошукові терміни для надсилання до live-індексу документації
|
||||
|
||||
Приклади:
|
||||
|
||||
```bash
|
||||
openclaw docs
|
||||
openclaw docs browser existing-session
|
||||
openclaw docs sandbox allowHostControl
|
||||
openclaw docs gateway token secretref
|
||||
```
|
||||
|
||||
Примітки:
|
||||
|
||||
- Без запиту `openclaw docs` відкриває точку входу пошуку в live-документації.
|
||||
- Багатослівні запити передаються як один пошуковий запит.
|
||||
71
docs/uk/cli/doctor.md
Normal file
71
docs/uk/cli/doctor.md
Normal file
@ -0,0 +1,71 @@
|
||||
---
|
||||
read_when:
|
||||
- У вас є проблеми з підключенням або автентифікацією, і ви хочете отримати керовані виправлення
|
||||
- Ви оновилися й хочете виконати базову перевірку працездатності
|
||||
summary: Довідник CLI для `openclaw doctor` (перевірки стану + кероване виправлення)
|
||||
title: лікар
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:17:54Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: ad44619b427b938b2f6d4f904fcdc2d9862ff33c569008590f25e17d12e03530
|
||||
source_path: cli/doctor.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw doctor`
|
||||
|
||||
Перевірки стану + швидкі виправлення для Gateway і каналів.
|
||||
|
||||
Пов’язане:
|
||||
|
||||
- Усунення несправностей: [Troubleshooting](/uk/gateway/troubleshooting)
|
||||
- Аудит безпеки: [Security](/uk/gateway/security)
|
||||
|
||||
## Приклади
|
||||
|
||||
```bash
|
||||
openclaw doctor
|
||||
openclaw doctor --repair
|
||||
openclaw doctor --deep
|
||||
openclaw doctor --repair --non-interactive
|
||||
openclaw doctor --generate-gateway-token
|
||||
```
|
||||
|
||||
## Параметри
|
||||
|
||||
- `--no-workspace-suggestions`: вимкнути підказки щодо пам’яті/пошуку в робочому просторі
|
||||
- `--yes`: приймати типові значення без запитів
|
||||
- `--repair`: застосувати рекомендовані виправлення без запитів
|
||||
- `--fix`: псевдонім для `--repair`
|
||||
- `--force`: застосувати агресивні виправлення, включно з перезаписом користувацької конфігурації сервісу за потреби
|
||||
- `--non-interactive`: запуск без запитів; лише безпечні міграції
|
||||
- `--generate-gateway-token`: згенерувати й налаштувати токен Gateway
|
||||
- `--deep`: просканувати системні сервіси на наявність додаткових встановлень Gateway
|
||||
|
||||
Примітки:
|
||||
|
||||
- Інтерактивні запити (як-от виправлення keychain/OAuth) запускаються лише тоді, коли stdin є TTY і **не** встановлено `--non-interactive`. Безголові запуски (cron, Telegram, без термінала) пропускають запити.
|
||||
- `--fix` (псевдонім для `--repair`) записує резервну копію в `~/.openclaw/openclaw.json.bak` і видаляє невідомі ключі конфігурації, перелічуючи кожне видалення.
|
||||
- Перевірки цілісності стану тепер виявляють осиротілі файли transcript у каталозі сесій і можуть архівувати їх як `.deleted.<timestamp>`, щоб безпечно звільнити місце.
|
||||
- Doctor також сканує `~/.openclaw/cron/jobs.json` (або `cron.store`) на наявність застарілих форм cron jobs і може переписати їх на місці до того, як scheduler муситиме автоматично нормалізувати їх під час виконання.
|
||||
- Doctor відновлює відсутні runtime-залежності вбудованих plugin без потреби в правах на запис до встановленого пакета OpenClaw. Для npm-встановлень, що належать root, або захищених systemd units установіть `OPENCLAW_PLUGIN_STAGE_DIR` у каталог із правом запису, наприклад `/var/lib/openclaw/plugin-runtime-deps`.
|
||||
- Doctor автоматично мігрує застарілу пласку конфігурацію Talk (`talk.voiceId`, `talk.modelId` та подібні) у `talk.provider` + `talk.providers.<provider>`.
|
||||
- Повторні запуски `doctor --fix` більше не повідомляють і не застосовують нормалізацію Talk, якщо єдина відмінність — це порядок ключів об’єкта.
|
||||
- Doctor містить перевірку готовності memory-search і може рекомендувати `openclaw configure --section model`, якщо відсутні embedding-облікові дані.
|
||||
- Якщо режим sandbox увімкнено, але Docker недоступний, doctor повідомляє виразне попередження з варіантами виправлення (`install Docker` або `openclaw config set agents.defaults.sandbox.mode off`).
|
||||
- Якщо `gateway.auth.token`/`gateway.auth.password` керуються через SecretRef і недоступні в поточному шляху команди, doctor повідомляє попередження лише для читання і не записує резервні відкриті облікові дані.
|
||||
- Якщо перевірка channel SecretRef завершується помилкою в шляху виправлення, doctor продовжує роботу й повідомляє попередження замість передчасного завершення.
|
||||
- Автоматичне визначення username у Telegram `allowFrom` (`doctor --fix`) потребує токена Telegram, який можна визначити в поточному шляху команди. Якщо перевірка токена недоступна, doctor повідомляє попередження й пропускає автовизначення в цьому проході.
|
||||
|
||||
## macOS: перевизначення змінних середовища `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
|
||||
```
|
||||
25
docs/uk/cli/flows.md
Normal file
25
docs/uk/cli/flows.md
Normal file
@ -0,0 +1,25 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви натрапляєте на openclaw flows у старішій документації або примітках до випуску
|
||||
summary: 'Переспрямування: команди flow розміщені в `openclaw tasks flow`'
|
||||
title: flows (переспрямування)
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:17:49Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 99377cf58ae17262291218639c4425abcec4efbd0405cf05b6df0d2e5b7f20bb
|
||||
source_path: cli/flows.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw tasks flow`
|
||||
|
||||
Команди flow є підкомандами `openclaw tasks`, а не окремою командою `flows`.
|
||||
|
||||
```bash
|
||||
openclaw tasks flow list [--json]
|
||||
openclaw tasks flow show <lookup>
|
||||
openclaw tasks flow cancel <lookup>
|
||||
```
|
||||
|
||||
Повну документацію див. у [TaskFlow](/uk/automation/taskflow) та [довідці CLI для tasks](/uk/cli/tasks).
|
||||
380
docs/uk/cli/gateway.md
Normal file
380
docs/uk/cli/gateway.md
Normal file
@ -0,0 +1,380 @@
|
||||
---
|
||||
read_when:
|
||||
- Запуск Gateway з CLI (розробка або сервери)
|
||||
- Налагодження автентифікації Gateway, режимів прив’язки та підключення
|
||||
- Виявлення Gateway через Bonjour (локально + широкозонний DNS-SD)
|
||||
summary: CLI Gateway OpenClaw (`openclaw gateway`) — запуск, запити й виявлення Gateway
|
||||
title: Gateway
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:17:52Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 60706df4d3c49271c4b53029eaae16672dde534c7f6f4ce68e04b58fb0cfa467
|
||||
source_path: cli/gateway.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# CLI Gateway
|
||||
|
||||
Gateway — це WebSocket-сервер OpenClaw (канали, вузли, сесії, хуки).
|
||||
|
||||
Підкоманди на цій сторінці доступні через `openclaw gateway …`.
|
||||
|
||||
Пов’язана документація:
|
||||
|
||||
- [/gateway/bonjour](/uk/gateway/bonjour)
|
||||
- [/gateway/discovery](/uk/gateway/discovery)
|
||||
- [/gateway/configuration](/uk/gateway/configuration)
|
||||
|
||||
## Запуск Gateway
|
||||
|
||||
Запустіть локальний процес Gateway:
|
||||
|
||||
```bash
|
||||
openclaw gateway
|
||||
```
|
||||
|
||||
Псевдонім для запуску у foreground:
|
||||
|
||||
```bash
|
||||
openclaw gateway run
|
||||
```
|
||||
|
||||
Примітки:
|
||||
|
||||
- За замовчуванням Gateway відмовляється запускатися, якщо в `~/.openclaw/openclaw.json` не встановлено `gateway.mode=local`. Для разових запусків або запусків у режимі розробки використовуйте `--allow-unconfigured`.
|
||||
- Очікується, що `openclaw onboard --mode local` і `openclaw setup` записують `gateway.mode=local`. Якщо файл існує, але `gateway.mode` відсутній, вважайте це пошкодженою або перезаписаною конфігурацією та виправте її, а не припускайте локальний режим неявно.
|
||||
- Якщо файл існує, а `gateway.mode` відсутній, Gateway вважає це підозрілим пошкодженням конфігурації та відмовляється «вгадувати local» за вас.
|
||||
- Прив’язка поза межами loopback без автентифікації блокується (захисне обмеження).
|
||||
- `SIGUSR1` запускає перезапуск у межах процесу за наявності дозволу (`commands.restart` увімкнено за замовчуванням; установіть `commands.restart: false`, щоб заборонити ручний перезапуск, при цьому інструменти gateway tool/config apply/update залишатимуться дозволеними).
|
||||
- Обробники `SIGINT`/`SIGTERM` зупиняють процес gateway, але не відновлюють жоден користувацький стан термінала. Якщо ви обгортаєте CLI в TUI або raw-mode input, відновіть термінал перед виходом.
|
||||
|
||||
### Параметри
|
||||
|
||||
- `--port <port>`: порт WebSocket (типове значення надходить із config/env; зазвичай `18789`).
|
||||
- `--bind <loopback|lan|tailnet|auto|custom>`: режим прив’язки слухача.
|
||||
- `--auth <token|password>`: перевизначення режиму автентифікації.
|
||||
- `--token <token>`: перевизначення токена (також установлює `OPENCLAW_GATEWAY_TOKEN` для процесу).
|
||||
- `--password <password>`: перевизначення пароля. Попередження: паролі, передані inline, можуть бути видимі в локальних списках процесів.
|
||||
- `--password-file <path>`: прочитати пароль gateway з файлу.
|
||||
- `--tailscale <off|serve|funnel>`: оприлюднити Gateway через Tailscale.
|
||||
- `--tailscale-reset-on-exit`: скинути конфігурацію Tailscale serve/funnel під час завершення роботи.
|
||||
- `--allow-unconfigured`: дозволити запуск gateway без `gateway.mode=local` у конфігурації. Це обходить стартовий захист лише для разового/dev bootstrap; воно не записує й не виправляє файл конфігурації.
|
||||
- `--dev`: створити dev config + workspace, якщо їх немає (пропускає BOOTSTRAP.md).
|
||||
- `--reset`: скинути dev config + credentials + sessions + workspace (потребує `--dev`).
|
||||
- `--force`: перед запуском завершити будь-який наявний listener на вибраному порту.
|
||||
- `--verbose`: докладні журнали.
|
||||
- `--cli-backend-logs`: показувати в консолі лише журнали backend CLI (і вмикати stdout/stderr).
|
||||
- `--ws-log <auto|full|compact>`: стиль журналу websocket (типово `auto`).
|
||||
- `--compact`: псевдонім для `--ws-log compact`.
|
||||
- `--raw-stream`: журналювати сирі події потоку моделі у jsonl.
|
||||
- `--raw-stream-path <path>`: шлях до raw stream jsonl.
|
||||
|
||||
Профілювання запуску:
|
||||
|
||||
- Установіть `OPENCLAW_GATEWAY_STARTUP_TRACE=1`, щоб журналювати тривалість фаз під час запуску Gateway.
|
||||
- Запустіть `pnpm test:startup:gateway -- --runs 5 --warmup 1`, щоб виміряти продуктивність запуску Gateway. Бенчмарк фіксує перший вивід процесу, `/healthz`, `/readyz` і часові показники startup trace.
|
||||
|
||||
## Запит до запущеного Gateway
|
||||
|
||||
Усі команди запитів використовують WebSocket RPC.
|
||||
|
||||
Режими виводу:
|
||||
|
||||
- Типово: зручний для читання людиною формат (із кольорами в TTY).
|
||||
- `--json`: JSON для машинного читання (без стилізації/spinner).
|
||||
- `--no-color` (або `NO_COLOR=1`): вимкнути ANSI, зберігши придатний для читання людиною макет.
|
||||
|
||||
Спільні параметри (де підтримуються):
|
||||
|
||||
- `--url <url>`: URL WebSocket Gateway.
|
||||
- `--token <token>`: токен Gateway.
|
||||
- `--password <password>`: пароль Gateway.
|
||||
- `--timeout <ms>`: тайм-аут/бюджет часу (залежить від команди).
|
||||
- `--expect-final`: чекати на відповідь “final” (виклики агентів).
|
||||
|
||||
Примітка: коли ви встановлюєте `--url`, CLI не використовує резервний перехід до облікових даних із конфігурації або змінних середовища.
|
||||
Передайте `--token` або `--password` явно. Відсутність явних облікових даних є помилкою.
|
||||
|
||||
### `gateway health`
|
||||
|
||||
```bash
|
||||
openclaw gateway health --url ws://127.0.0.1:18789
|
||||
```
|
||||
|
||||
HTTP-ендпойнт `/healthz` — це перевірка живучості: він повертає відповідь, щойно сервер може відповідати по HTTP. HTTP-ендпойнт `/readyz` суворіший і залишається червоним, доки стартові sidecar-процеси, канали або налаштовані хуки ще завершують ініціалізацію.
|
||||
|
||||
### `gateway usage-cost`
|
||||
|
||||
Отримати зведення usage-cost із журналів сесій.
|
||||
|
||||
```bash
|
||||
openclaw gateway usage-cost
|
||||
openclaw gateway usage-cost --days 7
|
||||
openclaw gateway usage-cost --json
|
||||
```
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--days <days>`: кількість днів для включення (типово `30`).
|
||||
|
||||
### `gateway stability`
|
||||
|
||||
Отримати нещодавні дані записувача діагностичної стабільності із запущеного Gateway.
|
||||
|
||||
```bash
|
||||
openclaw gateway stability
|
||||
openclaw gateway stability --type payload.large
|
||||
openclaw gateway stability --bundle latest
|
||||
openclaw gateway stability --bundle latest --export
|
||||
openclaw gateway stability --json
|
||||
```
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--limit <limit>`: максимальна кількість нещодавніх подій для включення (типово `25`, максимум `1000`).
|
||||
- `--type <type>`: фільтр за типом діагностичної події, наприклад `payload.large` або `diagnostic.memory.pressure`.
|
||||
- `--since-seq <seq>`: включати лише події після номера діагностичної послідовності.
|
||||
- `--bundle [path]`: читати збережений stability bundle замість звернення до запущеного Gateway. Використовуйте `--bundle latest` (або просто `--bundle`) для найновішого bundle у каталозі стану або передайте шлях безпосередньо до bundle JSON.
|
||||
- `--export`: записати shareable support diagnostics zip замість виведення подробиць stability.
|
||||
- `--output <path>`: шлях виводу для `--export`.
|
||||
|
||||
Примітки:
|
||||
|
||||
- Записувач активний за замовчуванням. Установлюйте `diagnostics.enabled: false` лише тоді, коли потрібно вимкнути збір діагностичного Heartbeat Gateway.
|
||||
- Записи зберігають операційні метадані: назви подій, кількості, розміри в байтах, показники пам’яті, стан черги/сесії, назви каналу/plugin і відредаговані зведення сесій. Вони не зберігають текст чату, тіла webhook, виводи інструментів, сирі тіла запитів або відповідей, токени, cookies, секретні значення, імена хостів або сирі ідентифікатори сесій.
|
||||
- У разі фатального завершення Gateway, тайм-аутів під час завершення роботи та збоїв запуску після перезапуску OpenClaw записує той самий діагностичний знімок у `~/.openclaw/logs/stability/openclaw-stability-*.json`, якщо в записувача є події. Перегляньте найновіший bundle за допомогою `openclaw gateway stability --bundle latest`; параметри `--limit`, `--type` і `--since-seq` також застосовуються до виводу bundle.
|
||||
|
||||
### `gateway diagnostics export`
|
||||
|
||||
Записати локальний diagnostics zip, призначений для додавання до звітів про помилки.
|
||||
|
||||
```bash
|
||||
openclaw gateway diagnostics export
|
||||
openclaw gateway diagnostics export --output openclaw-diagnostics.zip
|
||||
openclaw gateway diagnostics export --json
|
||||
```
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--output <path>`: шлях до вихідного zip-файлу. Типово — support export у каталозі стану.
|
||||
- `--log-lines <count>`: максимальна кількість санітизованих рядків журналу для включення (типово `5000`).
|
||||
- `--log-bytes <bytes>`: максимальна кількість байтів журналу для аналізу (типово `1000000`).
|
||||
- `--url <url>`: URL WebSocket Gateway для знімка health.
|
||||
- `--token <token>`: токен Gateway для знімка health.
|
||||
- `--password <password>`: пароль Gateway для знімка health.
|
||||
- `--timeout <ms>`: тайм-аут знімка status/health (типово `3000`).
|
||||
- `--no-stability-bundle`: пропустити пошук збереженого stability bundle.
|
||||
- `--json`: вивести записаний шлях, розмір і manifest у форматі JSON.
|
||||
|
||||
Експорт містить manifest, зведення в Markdown, форму конфігурації, санітизовані деталі конфігурації, санітизовані зведення журналів, санітизовані знімки стану/health Gateway і найновіший stability bundle, якщо він існує.
|
||||
|
||||
Він призначений для поширення. Він зберігає операційні деталі, які допомагають у налагодженні, наприклад безпечні поля журналів OpenClaw, назви підсистем, коди стану, тривалості, налаштовані режими, порти, ідентифікатори plugin, ідентифікатори провайдерів, несекретні налаштування функцій і відредаговані операційні повідомлення журналу. Він пропускає або редагує текст чату, тіла webhook, виводи інструментів, облікові дані, cookies, ідентифікатори облікових записів/повідомлень, текст prompt/instruction, імена хостів і секретні значення. Якщо повідомлення у стилі LogTape схоже на текст навантаження користувача/чату/інструмента, експорт зберігає лише факт пропуску повідомлення та його розмір у байтах.
|
||||
|
||||
### `gateway status`
|
||||
|
||||
`gateway status` показує сервіс Gateway (launchd/systemd/schtasks) плюс необов’язкову перевірку можливостей підключення/автентифікації.
|
||||
|
||||
```bash
|
||||
openclaw gateway status
|
||||
openclaw gateway status --json
|
||||
openclaw gateway status --require-rpc
|
||||
```
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--url <url>`: додати явну ціль перевірки. Налаштовані remote + localhost також перевіряються.
|
||||
- `--token <token>`: автентифікація токеном для перевірки.
|
||||
- `--password <password>`: автентифікація паролем для перевірки.
|
||||
- `--timeout <ms>`: тайм-аут перевірки (типово `10000`).
|
||||
- `--no-probe`: пропустити перевірку підключення (лише перегляд сервісу).
|
||||
- `--deep`: також сканувати системні сервіси.
|
||||
- `--require-rpc`: підвищити типову перевірку підключення до перевірки читання та завершуватися з ненульовим кодом, якщо ця перевірка читання не вдалася. Не можна поєднувати з `--no-probe`.
|
||||
|
||||
Примітки:
|
||||
|
||||
- `gateway status` залишається доступною для діагностики, навіть коли локальна конфігурація CLI відсутня або недійсна.
|
||||
- Типова `gateway status` підтверджує стан сервісу, WebSocket-підключення та можливість автентифікації, видиму під час handshake. Вона не підтверджує операції читання/запису/адміністрування.
|
||||
- `gateway status` визначає налаштовані auth SecretRef для автентифікації перевірки, коли це можливо.
|
||||
- Якщо потрібний auth SecretRef не визначається в цьому шляху виконання команди, `gateway status --json` повідомляє `rpc.authWarning`, коли перевірка підключення/автентифікації не вдається; передайте `--token`/`--password` явно або спочатку визначте джерело секрету.
|
||||
- Якщо перевірка успішна, попередження про невизначені auth-ref приховуються, щоб уникнути хибнопозитивних результатів.
|
||||
- Використовуйте `--require-rpc` у скриптах і автоматизації, коли недостатньо просто сервісу, що слухає, і потрібно, щоб RPC-виклики зі scope читання теж були справними.
|
||||
- `--deep` додає спробу знайти додаткові встановлення launchd/systemd/schtasks. Коли виявлено кілька сервісів, схожих на gateway, придатний для читання людиною вивід показує підказки з очищення та попереджає, що більшість установок повинні запускати один gateway на машину.
|
||||
- Вивід для людини містить визначений шлях до журналу файлу, а також знімок шляхів/чинності конфігурації CLI порівняно із сервісом, щоб допомогти діагностувати розходження профілю або state-dir.
|
||||
- В установках Linux systemd перевірки розходження автентифікації читають значення `Environment=` і `EnvironmentFile=` з unit-файлу (включно з `%h`, лапкованими шляхами, кількома файлами й необов’язковими файлами з `-`).
|
||||
- Перевірки розходження визначають SecretRef для `gateway.auth.token`, використовуючи об’єднане runtime env (спочатку env команди сервісу, потім резервно env процесу).
|
||||
- Якщо автентифікація токеном фактично не активна (явний `gateway.auth.mode` зі значенням `password`/`none`/`trusted-proxy` або режим не встановлено, де пароль може мати пріоритет і жоден кандидат токена не може мати пріоритет), перевірки розходження токена пропускають визначення токена конфігурації.
|
||||
|
||||
### `gateway probe`
|
||||
|
||||
`gateway probe` — це команда «налагодити все». Вона завжди перевіряє:
|
||||
|
||||
- ваш налаштований remote gateway (якщо задано), і
|
||||
- localhost (loopback) **навіть якщо remote налаштовано**.
|
||||
|
||||
Якщо ви передасте `--url`, ця явна ціль буде додана перед обома. У виводі для людини
|
||||
цілі позначаються так:
|
||||
|
||||
- `URL (explicit)`
|
||||
- `Remote (configured)` або `Remote (configured, inactive)`
|
||||
- `Local loopback`
|
||||
|
||||
Якщо доступно кілька gateway, команда виведе їх усі. Підтримка кількох gateway можлива, коли ви використовуєте ізольовані профілі/порти (наприклад, rescue bot), але більшість установок усе ж запускають один gateway.
|
||||
|
||||
```bash
|
||||
openclaw gateway probe
|
||||
openclaw gateway probe --json
|
||||
```
|
||||
|
||||
Інтерпретація:
|
||||
|
||||
- `Reachable: yes` означає, що принаймні одна ціль прийняла WebSocket-підключення.
|
||||
- `Capability: read-only|write-capable|admin-capable|pairing-pending|connect-only` повідомляє, що саме перевірка змогла довести щодо автентифікації. Це окремо від доступності.
|
||||
- `Read probe: ok` означає, що RPC-виклики деталей зі scope читання (`health`/`status`/`system-presence`/`config.get`) також були успішними.
|
||||
- `Read probe: limited - missing scope: operator.read` означає, що підключення успішне, але RPC зі scope читання обмежені. Це повідомляється як **знижена** доступність, а не як повна відмова.
|
||||
- Код виходу є ненульовим лише тоді, коли жодна з перевірених цілей не є доступною.
|
||||
|
||||
Примітки щодо JSON (`--json`):
|
||||
|
||||
- Верхній рівень:
|
||||
- `ok`: принаймні одна ціль є доступною.
|
||||
- `degraded`: принаймні одна ціль мала RPC деталей з обмеженим scope.
|
||||
- `capability`: найкраща можливість, виявлена серед доступних цілей (`read_only`, `write_capable`, `admin_capable`, `pairing_pending`, `connected_no_operator_scope` або `unknown`).
|
||||
- `primaryTargetId`: найкраща ціль, яку слід вважати активним переможцем у такому порядку: явний URL, SSH-тунель, налаштований remote, потім local loopback.
|
||||
- `warnings[]`: записи попереджень best-effort з `code`, `message` і необов’язковими `targetIds`.
|
||||
- `network`: підказки URL для local loopback/tailnet, похідні від поточної конфігурації та мережі хоста.
|
||||
- `discovery.timeoutMs` і `discovery.count`: фактичний бюджет/кількість результатів виявлення, використані для цього проходу перевірки.
|
||||
- Для кожної цілі (`targets[].connect`):
|
||||
- `ok`: доступність після підключення + класифікація degraded.
|
||||
- `rpcOk`: повний успіх RPC деталей.
|
||||
- `scopeLimited`: RPC деталей не вдалося через відсутній operator scope.
|
||||
- Для кожної цілі (`targets[].auth`):
|
||||
- `role`: роль автентифікації, повідомлена в `hello-ok`, якщо доступна.
|
||||
- `scopes`: надані scope, повідомлені в `hello-ok`, якщо доступні.
|
||||
- `capability`: класифікація можливості автентифікації, показана для цієї цілі.
|
||||
|
||||
Поширені коди попереджень:
|
||||
|
||||
- `ssh_tunnel_failed`: не вдалося налаштувати SSH-тунель; команда повернулася до прямих перевірок.
|
||||
- `multiple_gateways`: доступною була більш ніж одна ціль; це нетипово, якщо тільки ви навмисно не запускаєте ізольовані профілі, наприклад rescue bot.
|
||||
- `auth_secretref_unresolved`: налаштований auth SecretRef не вдалося визначити для цілі, що завершилася помилкою.
|
||||
- `probe_scope_limited`: WebSocket-підключення успішне, але перевірка читання була обмежена через відсутність `operator.read`.
|
||||
|
||||
#### Remote через SSH (паритет із застосунком Mac)
|
||||
|
||||
Режим macOS-застосунку “Remote over SSH” використовує локальне перенаправлення порту, щоб remote gateway (який може бути прив’язаний лише до loopback) став доступним за адресою `ws://127.0.0.1:<port>`.
|
||||
|
||||
Еквівалент у CLI:
|
||||
|
||||
```bash
|
||||
openclaw gateway probe --ssh user@gateway-host
|
||||
```
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--ssh <target>`: `user@host` або `user@host:port` (порт типово `22`).
|
||||
- `--ssh-identity <path>`: файл identity.
|
||||
- `--ssh-auto`: вибрати перший виявлений хост gateway як SSH-ціль із визначеної
|
||||
кінцевої точки виявлення (`local.` плюс налаштований домен широкозонного виявлення, якщо є). Підказки лише з TXT
|
||||
ігноруються.
|
||||
|
||||
Конфігурація (необов’язкова, використовується як типові значення):
|
||||
|
||||
- `gateway.remote.sshTarget`
|
||||
- `gateway.remote.sshIdentity`
|
||||
|
||||
### `gateway call <method>`
|
||||
|
||||
Низькорівневий допоміжний засіб RPC.
|
||||
|
||||
```bash
|
||||
openclaw gateway call status
|
||||
openclaw gateway call logs.tail --params '{"sinceMs": 60000}'
|
||||
```
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--params <json>`: рядок JSON-об’єкта для параметрів (типово `{}`)
|
||||
- `--url <url>`
|
||||
- `--token <token>`
|
||||
- `--password <password>`
|
||||
- `--timeout <ms>`
|
||||
- `--expect-final`
|
||||
- `--json`
|
||||
|
||||
Примітки:
|
||||
|
||||
- `--params` має бути коректним JSON.
|
||||
- `--expect-final` головним чином призначений для RPC у стилі агентів, які транслюють проміжні події перед фінальним навантаженням.
|
||||
|
||||
## Керування сервісом Gateway
|
||||
|
||||
```bash
|
||||
openclaw gateway install
|
||||
openclaw gateway start
|
||||
openclaw gateway stop
|
||||
openclaw gateway restart
|
||||
openclaw gateway uninstall
|
||||
```
|
||||
|
||||
Параметри команд:
|
||||
|
||||
- `gateway status`: `--url`, `--token`, `--password`, `--timeout`, `--no-probe`, `--require-rpc`, `--deep`, `--json`
|
||||
- `gateway install`: `--port`, `--runtime <node|bun>`, `--token`, `--force`, `--json`
|
||||
- `gateway uninstall|start|stop|restart`: `--json`
|
||||
|
||||
Примітки:
|
||||
|
||||
- `gateway install` підтримує `--port`, `--runtime`, `--token`, `--force`, `--json`.
|
||||
- Коли автентифікація токеном потребує токен і `gateway.auth.token` керується через SecretRef, `gateway install` перевіряє, що SecretRef можливо визначити, але не зберігає визначений токен у метаданих середовища сервісу.
|
||||
- Якщо автентифікація токеном потребує токен, а налаштований token SecretRef не визначається, встановлення завершується із закриттям доступу замість збереження резервного відкритого тексту.
|
||||
- Для автентифікації паролем у `gateway run` віддавайте перевагу `OPENCLAW_GATEWAY_PASSWORD`, `--password-file` або `gateway.auth.password`, підкріпленому SecretRef, замість inline `--password`.
|
||||
- У режимі виведеної автентифікації shell-only `OPENCLAW_GATEWAY_PASSWORD` не послаблює вимоги до токена під час встановлення; використовуйте стійку конфігурацію (`gateway.auth.password` або config `env`) під час встановлення керованого сервісу.
|
||||
- Якщо налаштовано і `gateway.auth.token`, і `gateway.auth.password`, а `gateway.auth.mode` не встановлено, встановлення блокується, доки режим не буде задано явно.
|
||||
- Команди життєвого циклу приймають `--json` для скриптів.
|
||||
|
||||
## Виявлення gateway (Bonjour)
|
||||
|
||||
`gateway discover` сканує маяки Gateway (`_openclaw-gw._tcp`).
|
||||
|
||||
- Multicast DNS-SD: `local.`
|
||||
- Unicast DNS-SD (Wide-Area Bonjour): виберіть домен (наприклад: `openclaw.internal.`) і налаштуйте split DNS + DNS-сервер; див. [/gateway/bonjour](/uk/gateway/bonjour)
|
||||
|
||||
Лише gateway з увімкненим виявленням Bonjour (типово ввімкнено) рекламують маяк.
|
||||
|
||||
Записи Wide-Area discovery містять (TXT):
|
||||
|
||||
- `role` (підказка ролі gateway)
|
||||
- `transport` (підказка транспорту, наприклад `gateway`)
|
||||
- `gatewayPort` (порт WebSocket, зазвичай `18789`)
|
||||
- `sshPort` (необов’язково; клієнти типово використовують `22` для SSH-цілей, якщо це значення відсутнє)
|
||||
- `tailnetDns` (ім’я хоста MagicDNS, коли доступне)
|
||||
- `gatewayTls` / `gatewayTlsSha256` (TLS увімкнено + відбиток сертифіката)
|
||||
- `cliPath` (підказка remote-install, записана до wide-area zone)
|
||||
|
||||
### `gateway discover`
|
||||
|
||||
```bash
|
||||
openclaw gateway discover
|
||||
```
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--timeout <ms>`: тайм-аут на команду (browse/resolve); типово `2000`.
|
||||
- `--json`: машинозчитуваний вивід (також вимикає стилізацію/spinner).
|
||||
|
||||
Приклади:
|
||||
|
||||
```bash
|
||||
openclaw gateway discover --timeout 4000
|
||||
openclaw gateway discover --json | jq '.beacons[].wsUrl'
|
||||
```
|
||||
|
||||
Примітки:
|
||||
|
||||
- CLI сканує `local.` плюс налаштований домен широкозонного виявлення, якщо його ввімкнено.
|
||||
- `wsUrl` у JSON-виводі виводиться з визначеної кінцевої точки сервісу, а не з підказок
|
||||
лише з TXT, таких як `lanHost` або `tailnetDns`.
|
||||
- У `local.` mDNS `sshPort` і `cliPath` транслюються лише тоді, коли
|
||||
`discovery.mdns.mode` має значення `full`. Wide-area DNS-SD усе одно записує `cliPath`; `sshPort`
|
||||
і там також залишається необов’язковим.
|
||||
40
docs/uk/cli/health.md
Normal file
40
docs/uk/cli/health.md
Normal file
@ -0,0 +1,40 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете швидко перевірити стан здоров’я запущеного Gateway
|
||||
summary: Довідка CLI для `openclaw health` (знімок стану здоров’я Gateway через RPC)
|
||||
title: стан здоров’я
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:17:57Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 4ed2b9ceefee6159cabaae9172d2d88174626456e7503d5d2bcd142634188ff0
|
||||
source_path: cli/health.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw health`
|
||||
|
||||
Отримати стан здоров’я від запущеного Gateway.
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--json`: машинозчитуваний вивід
|
||||
- `--timeout <ms>`: тайм-аут з’єднання в мілісекундах (типово `10000`)
|
||||
- `--verbose`: докладне журналювання
|
||||
- `--debug`: псевдонім для `--verbose`
|
||||
|
||||
Приклади:
|
||||
|
||||
```bash
|
||||
openclaw health
|
||||
openclaw health --json
|
||||
openclaw health --timeout 2500
|
||||
openclaw health --verbose
|
||||
openclaw health --debug
|
||||
```
|
||||
|
||||
Примітки:
|
||||
|
||||
- Типова команда `openclaw health` запитує у запущеного gateway його знімок стану здоров’я. Якщо gateway уже має свіжий кешований знімок, він може повернути цей кешований вміст і оновити його у фоновому режимі.
|
||||
- `--verbose` примусово виконує живу перевірку, показує деталі з’єднання з gateway і розгортає людиночитний вивід для всіх налаштованих облікових записів і агентів.
|
||||
- Вивід містить сховища сесій для кожного агента, якщо налаштовано кілька агентів.
|
||||
345
docs/uk/cli/hooks.md
Normal file
345
docs/uk/cli/hooks.md
Normal file
@ -0,0 +1,345 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете керувати хуками агента
|
||||
- Ви хочете перевірити доступність хуків або ввімкнути хуки робочого простору
|
||||
summary: Довідка CLI для `openclaw hooks` (хуки агента)
|
||||
title: хуки
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:17:55Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: a09978267783734aaf9bd8bf36aa365ca680a3652afb904db2e5b55dfa64dcd1
|
||||
source_path: cli/hooks.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw hooks`
|
||||
|
||||
Керуйте хуками агента (автоматизаціями на основі подій для команд на кшталт `/new`, `/reset` і запуску gateway).
|
||||
|
||||
Запуск `openclaw hooks` без підкоманди еквівалентний `openclaw hooks list`.
|
||||
|
||||
Пов’язано:
|
||||
|
||||
- Хуки: [Хуки](/uk/automation/hooks)
|
||||
- Хуки Plugin: [Хуки Plugin](/uk/plugins/architecture#provider-runtime-hooks)
|
||||
|
||||
## Список усіх хуків
|
||||
|
||||
```bash
|
||||
openclaw hooks list
|
||||
```
|
||||
|
||||
Показати всі виявлені хуки з каталогів workspace, managed, extra і bundled.
|
||||
Під час запуску gateway внутрішні обробники хуків не завантажуються, доки не налаштовано принаймні один внутрішній хук.
|
||||
|
||||
**Параметри:**
|
||||
|
||||
- `--eligible`: Показувати лише придатні хуки (вимоги виконано)
|
||||
- `--json`: Вивести у форматі JSON
|
||||
- `-v, --verbose`: Показувати докладну інформацію, включно з відсутніми вимогами
|
||||
|
||||
**Приклад виводу:**
|
||||
|
||||
```
|
||||
Хуки (4/4 готові)
|
||||
|
||||
Готові:
|
||||
🚀 boot-md ✓ - Запускати BOOT.md під час запуску gateway
|
||||
📎 bootstrap-extra-files ✓ - Додавати додаткові bootstrap-файли workspace під час bootstrap агента
|
||||
📝 command-logger ✓ - Журналювати всі події команд у централізований файл аудиту
|
||||
💾 session-memory ✓ - Зберігати контекст сесії в пам’ять, коли подається команда /new або /reset
|
||||
```
|
||||
|
||||
**Приклад (verbose):**
|
||||
|
||||
```bash
|
||||
openclaw hooks list --verbose
|
||||
```
|
||||
|
||||
Показує відсутні вимоги для непридатних хуків.
|
||||
|
||||
**Приклад (JSON):**
|
||||
|
||||
```bash
|
||||
openclaw hooks list --json
|
||||
```
|
||||
|
||||
Повертає структурований JSON для програмного використання.
|
||||
|
||||
## Отримати інформацію про хук
|
||||
|
||||
```bash
|
||||
openclaw hooks info <name>
|
||||
```
|
||||
|
||||
Показати докладну інформацію про конкретний хук.
|
||||
|
||||
**Аргументи:**
|
||||
|
||||
- `<name>`: Назва хука або ключ хука (наприклад, `session-memory`)
|
||||
|
||||
**Параметри:**
|
||||
|
||||
- `--json`: Вивести у форматі JSON
|
||||
|
||||
**Приклад:**
|
||||
|
||||
```bash
|
||||
openclaw hooks info session-memory
|
||||
```
|
||||
|
||||
**Вивід:**
|
||||
|
||||
```
|
||||
💾 session-memory ✓ Готово
|
||||
|
||||
Зберігати контекст сесії в пам’ять, коли подається команда /new або /reset
|
||||
|
||||
Докладно:
|
||||
Джерело: openclaw-bundled
|
||||
Шлях: /path/to/openclaw/hooks/bundled/session-memory/HOOK.md
|
||||
Обробник: /path/to/openclaw/hooks/bundled/session-memory/handler.ts
|
||||
Домашня сторінка: https://docs.openclaw.ai/automation/hooks#session-memory
|
||||
Події: command:new, command:reset
|
||||
|
||||
Вимоги:
|
||||
Конфігурація: ✓ workspace.dir
|
||||
```
|
||||
|
||||
## Перевірити придатність хуків
|
||||
|
||||
```bash
|
||||
openclaw hooks check
|
||||
```
|
||||
|
||||
Показати зведення про стан придатності хуків (скільки готові, а скільки ні).
|
||||
|
||||
**Параметри:**
|
||||
|
||||
- `--json`: Вивести у форматі JSON
|
||||
|
||||
**Приклад виводу:**
|
||||
|
||||
```
|
||||
Стан хуків
|
||||
|
||||
Усього хуків: 4
|
||||
Готові: 4
|
||||
Не готові: 0
|
||||
```
|
||||
|
||||
## Увімкнути хук
|
||||
|
||||
```bash
|
||||
openclaw hooks enable <name>
|
||||
```
|
||||
|
||||
Увімкнути конкретний хук, додавши його до вашої конфігурації (типово `~/.openclaw/openclaw.json`).
|
||||
|
||||
**Примітка:** Хуки workspace типово вимкнені, доки ви не ввімкнете їх тут або в конфігурації. Хуки, якими керують plugins, показують `plugin:<id>` у `openclaw hooks list`, і їх не можна вмикати/вимикати тут. Натомість увімкніть/вимкніть сам Plugin.
|
||||
|
||||
**Аргументи:**
|
||||
|
||||
- `<name>`: Назва хука (наприклад, `session-memory`)
|
||||
|
||||
**Приклад:**
|
||||
|
||||
```bash
|
||||
openclaw hooks enable session-memory
|
||||
```
|
||||
|
||||
**Вивід:**
|
||||
|
||||
```
|
||||
✓ Хук увімкнено: 💾 session-memory
|
||||
```
|
||||
|
||||
**Що це робить:**
|
||||
|
||||
- Перевіряє, чи існує хук і чи є він придатним
|
||||
- Оновлює `hooks.internal.entries.<name>.enabled = true` у вашій конфігурації
|
||||
- Зберігає конфігурацію на диск
|
||||
|
||||
Якщо хук походить із `<workspace>/hooks/`, цей крок явного ввімкнення є обов’язковим, перш ніж
|
||||
Gateway завантажить його.
|
||||
|
||||
**Після ввімкнення:**
|
||||
|
||||
- Перезапустіть gateway, щоб хуки перезавантажилися (перезапуск застосунку в рядку меню на macOS або перезапуск вашого процесу gateway у dev).
|
||||
|
||||
## Вимкнути хук
|
||||
|
||||
```bash
|
||||
openclaw hooks disable <name>
|
||||
```
|
||||
|
||||
Вимкнути конкретний хук, оновивши вашу конфігурацію.
|
||||
|
||||
**Аргументи:**
|
||||
|
||||
- `<name>`: Назва хука (наприклад, `command-logger`)
|
||||
|
||||
**Приклад:**
|
||||
|
||||
```bash
|
||||
openclaw hooks disable command-logger
|
||||
```
|
||||
|
||||
**Вивід:**
|
||||
|
||||
```
|
||||
⏸ Хук вимкнено: 📝 command-logger
|
||||
```
|
||||
|
||||
**Після вимкнення:**
|
||||
|
||||
- Перезапустіть gateway, щоб хуки перезавантажилися
|
||||
|
||||
## Примітки
|
||||
|
||||
- `openclaw hooks list --json`, `info --json` і `check --json` записують структурований JSON безпосередньо в stdout.
|
||||
- Хуки, якими керують plugins, не можна вмикати або вимикати тут; натомість увімкніть або вимкніть Plugin-власник.
|
||||
|
||||
## Встановити набори хуків
|
||||
|
||||
```bash
|
||||
openclaw plugins install <package> # ClawHub first, then npm
|
||||
openclaw plugins install <package> --pin # pin version
|
||||
openclaw plugins install <path> # local path
|
||||
```
|
||||
|
||||
Встановіть набори хуків через уніфікований інсталятор plugins.
|
||||
|
||||
`openclaw hooks install` усе ще працює як псевдонім сумісності, але виводить
|
||||
попередження про застарілість і перенаправляє на `openclaw plugins install`.
|
||||
|
||||
Специфікації npm є **лише реєстровими** (назва пакета + необов’язкова **точна версія** або
|
||||
**dist-tag**). Специфікації Git/URL/file і діапазони semver відхиляються. Встановлення
|
||||
залежностей виконуються з `--ignore-scripts` для безпеки.
|
||||
|
||||
Прості специфікації та `@latest` залишаються на стабільній гілці. Якщо npm визначає будь-який із
|
||||
них як передвипускну версію, OpenClaw зупиняється й просить вас явно підтвердити це за допомогою
|
||||
тега передвипуску, наприклад `@beta`/`@rc`, або точної передвипускної версії.
|
||||
|
||||
**Що це робить:**
|
||||
|
||||
- Копіює набір хуків до `~/.openclaw/hooks/<id>`
|
||||
- Увімкнює встановлені хуки в `hooks.internal.entries.*`
|
||||
- Записує встановлення в `hooks.internal.installs`
|
||||
|
||||
**Параметри:**
|
||||
|
||||
- `-l, --link`: Зв’язати локальний каталог замість копіювання (додає його до `hooks.internal.load.extraDirs`)
|
||||
- `--pin`: Записувати встановлення npm як точний визначений `name@version` у `hooks.internal.installs`
|
||||
|
||||
**Підтримувані архіви:** `.zip`, `.tgz`, `.tar.gz`, `.tar`
|
||||
|
||||
**Приклади:**
|
||||
|
||||
```bash
|
||||
# Local directory
|
||||
openclaw plugins install ./my-hook-pack
|
||||
|
||||
# Local archive
|
||||
openclaw plugins install ./my-hook-pack.zip
|
||||
|
||||
# NPM package
|
||||
openclaw plugins install @openclaw/my-hook-pack
|
||||
|
||||
# Link a local directory without copying
|
||||
openclaw plugins install -l ./my-hook-pack
|
||||
```
|
||||
|
||||
Набори хуків, зв’язані через link, розглядаються як managed-хуки з каталогу,
|
||||
налаштованого оператором, а не як хуки workspace.
|
||||
|
||||
## Оновити набори хуків
|
||||
|
||||
```bash
|
||||
openclaw plugins update <id>
|
||||
openclaw plugins update --all
|
||||
```
|
||||
|
||||
Оновіть відстежувані набори хуків на основі npm через уніфікований засіб оновлення plugins.
|
||||
|
||||
`openclaw hooks update` усе ще працює як псевдонім сумісності, але виводить
|
||||
попередження про застарілість і перенаправляє на `openclaw plugins update`.
|
||||
|
||||
**Параметри:**
|
||||
|
||||
- `--all`: Оновити всі відстежувані набори хуків
|
||||
- `--dry-run`: Показати, що зміниться, без запису
|
||||
|
||||
Коли існує збережений хеш цілісності, а хеш отриманого артефакту змінюється,
|
||||
OpenClaw виводить попередження й просить підтвердження перед продовженням. Використовуйте
|
||||
глобальний `--yes`, щоб обійти запити в CI/неінтерактивних запусках.
|
||||
|
||||
## Вбудовані хуки
|
||||
|
||||
### session-memory
|
||||
|
||||
Зберігає контекст сесії в пам’ять, коли ви подаєте `/new` або `/reset`.
|
||||
|
||||
**Увімкнути:**
|
||||
|
||||
```bash
|
||||
openclaw hooks enable session-memory
|
||||
```
|
||||
|
||||
**Вивід:** `~/.openclaw/workspace/memory/YYYY-MM-DD-slug.md`
|
||||
|
||||
**Див.:** [документацію session-memory](/uk/automation/hooks#session-memory)
|
||||
|
||||
### bootstrap-extra-files
|
||||
|
||||
Додає додаткові bootstrap-файли (наприклад, локальні для монорепозиторію `AGENTS.md` / `TOOLS.md`) під час `agent:bootstrap`.
|
||||
|
||||
**Увімкнути:**
|
||||
|
||||
```bash
|
||||
openclaw hooks enable bootstrap-extra-files
|
||||
```
|
||||
|
||||
**Див.:** [документацію bootstrap-extra-files](/uk/automation/hooks#bootstrap-extra-files)
|
||||
|
||||
### command-logger
|
||||
|
||||
Журналює всі події команд у централізований файл аудиту.
|
||||
|
||||
**Увімкнути:**
|
||||
|
||||
```bash
|
||||
openclaw hooks enable command-logger
|
||||
```
|
||||
|
||||
**Вивід:** `~/.openclaw/logs/commands.log`
|
||||
|
||||
**Переглянути журнали:**
|
||||
|
||||
```bash
|
||||
# Recent commands
|
||||
tail -n 20 ~/.openclaw/logs/commands.log
|
||||
|
||||
# Pretty-print
|
||||
cat ~/.openclaw/logs/commands.log | jq .
|
||||
|
||||
# Filter by action
|
||||
grep '"action":"new"' ~/.openclaw/logs/commands.log | jq .
|
||||
```
|
||||
|
||||
**Див.:** [документацію command-logger](/uk/automation/hooks#command-logger)
|
||||
|
||||
### boot-md
|
||||
|
||||
Запускає `BOOT.md` під час запуску gateway (після запуску каналів).
|
||||
|
||||
**Події**: `gateway:startup`
|
||||
|
||||
**Увімкнути**:
|
||||
|
||||
```bash
|
||||
openclaw hooks enable boot-md
|
||||
```
|
||||
|
||||
**Див.:** [документацію boot-md](/uk/automation/hooks#boot-md)
|
||||
1854
docs/uk/cli/index.md
Normal file
1854
docs/uk/cli/index.md
Normal file
File diff suppressed because it is too large
Load Diff
290
docs/uk/cli/infer.md
Normal file
290
docs/uk/cli/infer.md
Normal file
@ -0,0 +1,290 @@
|
||||
---
|
||||
read_when:
|
||||
- Додавання або змінення команд `openclaw infer`
|
||||
- Проєктування стабільної безголової автоматизації можливостей
|
||||
summary: Infer-first CLI для робочих процесів із моделями, зображеннями, аудіо, TTS, відео, вебом та вбудовуваннями на базі провайдерів
|
||||
title: CLI Inference
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:18:05Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: e57d2438d0da24e1ed880bbacd244ede4af56beba4ac1baa3f2a1e393e641c9c
|
||||
source_path: cli/infer.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# CLI Inference
|
||||
|
||||
`openclaw infer` — це канонічна безголова поверхня для робочих процесів Inference на базі провайдерів.
|
||||
|
||||
Вона навмисно відкриває сімейства можливостей, а не сирі назви RPC Gateway і не сирі ідентифікатори інструментів агентів.
|
||||
|
||||
## Перетворіть infer на skill
|
||||
|
||||
Скопіюйте й вставте це агенту:
|
||||
|
||||
```text
|
||||
Read https://docs.openclaw.ai/cli/infer, then create a skill that routes my common workflows to `openclaw infer`.
|
||||
Focus on model runs, image generation, video generation, audio transcription, TTS, web search, and embeddings.
|
||||
```
|
||||
|
||||
Хороший skill на основі infer має:
|
||||
|
||||
- зіставляти поширені наміри користувача з правильними підкомандами infer
|
||||
- містити кілька канонічних прикладів infer для робочих процесів, які він охоплює
|
||||
- віддавати перевагу `openclaw infer ...` у прикладах і рекомендаціях
|
||||
- не дублювати повністю всю поверхню infer в тілі skill
|
||||
|
||||
Типове покриття skill, орієнтованого на infer:
|
||||
|
||||
- `openclaw infer model run`
|
||||
- `openclaw infer image generate`
|
||||
- `openclaw infer audio transcribe`
|
||||
- `openclaw infer tts convert`
|
||||
- `openclaw infer web search`
|
||||
- `openclaw infer embedding create`
|
||||
|
||||
## Чому варто використовувати infer
|
||||
|
||||
`openclaw infer` надає єдиний узгоджений CLI для завдань Inference на базі провайдерів в OpenClaw.
|
||||
|
||||
Переваги:
|
||||
|
||||
- Використовуйте провайдерів і моделі, уже налаштовані в OpenClaw, замість того щоб налаштовувати окремі одноразові обгортки для кожного бекенда.
|
||||
- Тримайте робочі процеси для моделей, зображень, транскрибування аудіо, TTS, відео, вебу та вбудовувань у межах одного дерева команд.
|
||||
- Використовуйте стабільну форму виводу `--json` для скриптів, автоматизації та робочих процесів, керованих агентами.
|
||||
- Віддавайте перевагу власній поверхні OpenClaw, коли завдання по суті полягає у «виконанні Inference».
|
||||
- Використовуйте звичайний локальний шлях без потреби запускати gateway для більшості команд infer.
|
||||
|
||||
## Дерево команд
|
||||
|
||||
```text
|
||||
openclaw infer
|
||||
list
|
||||
inspect
|
||||
|
||||
model
|
||||
run
|
||||
list
|
||||
inspect
|
||||
providers
|
||||
auth login
|
||||
auth logout
|
||||
auth status
|
||||
|
||||
image
|
||||
generate
|
||||
edit
|
||||
describe
|
||||
describe-many
|
||||
providers
|
||||
|
||||
audio
|
||||
transcribe
|
||||
providers
|
||||
|
||||
tts
|
||||
convert
|
||||
voices
|
||||
providers
|
||||
status
|
||||
enable
|
||||
disable
|
||||
set-provider
|
||||
|
||||
video
|
||||
generate
|
||||
describe
|
||||
providers
|
||||
|
||||
web
|
||||
search
|
||||
fetch
|
||||
providers
|
||||
|
||||
embedding
|
||||
create
|
||||
providers
|
||||
```
|
||||
|
||||
## Поширені завдання
|
||||
|
||||
Ця таблиця зіставляє поширені завдання Inference з відповідною командою infer.
|
||||
|
||||
| Завдання | Команда | Примітки |
|
||||
| ------------------------- | ---------------------------------------------------------------------- | ----------------------------------------------------- |
|
||||
| Виконати текстовий/модельний запит | `openclaw infer model run --prompt "..." --json` | За замовчуванням використовує звичайний локальний шлях |
|
||||
| Згенерувати зображення | `openclaw infer image generate --prompt "..." --json` | Використовуйте `image edit`, якщо починаєте з наявного файлу |
|
||||
| Описати файл зображення | `openclaw infer image describe --file ./image.png --json` | `--model` має бути `<provider/model>` із підтримкою зображень |
|
||||
| Транскрибувати аудіо | `openclaw infer audio transcribe --file ./memo.m4a --json` | `--model` має бути `<provider/model>` |
|
||||
| Синтезувати мовлення | `openclaw infer tts convert --text "..." --output ./speech.mp3 --json` | `tts status` орієнтований на gateway |
|
||||
| Згенерувати відео | `openclaw infer video generate --prompt "..." --json` | |
|
||||
| Описати відеофайл | `openclaw infer video describe --file ./clip.mp4 --json` | `--model` має бути `<provider/model>` |
|
||||
| Шукати у вебі | `openclaw infer web search --query "..." --json` | |
|
||||
| Отримати вебсторінку | `openclaw infer web fetch --url https://example.com --json` | |
|
||||
| Створити вбудовування | `openclaw infer embedding create --text "..." --json` | |
|
||||
|
||||
## Поведінка
|
||||
|
||||
- `openclaw infer ...` — основна поверхня CLI для цих робочих процесів.
|
||||
- Використовуйте `--json`, коли вивід споживатиметься іншою командою або скриптом.
|
||||
- Використовуйте `--provider` або `--model provider/model`, коли потрібен конкретний бекенд.
|
||||
- Для `image describe`, `audio transcribe` і `video describe` `--model` має використовувати форму `<provider/model>`.
|
||||
- Для `image describe` явний `--model` запускає цю пару провайдер/модель безпосередньо. Модель має підтримувати зображення в каталозі моделей або конфігурації провайдера.
|
||||
- Команди безстанового виконання за замовчуванням локальні.
|
||||
- Команди для стану, яким керує gateway, за замовчуванням використовують gateway.
|
||||
- Звичайний локальний шлях не вимагає, щоб gateway був запущений.
|
||||
|
||||
## Model
|
||||
|
||||
Використовуйте `model` для текстового Inference на базі провайдерів і перевірки моделі/провайдера.
|
||||
|
||||
```bash
|
||||
openclaw infer model run --prompt "Reply with exactly: smoke-ok" --json
|
||||
openclaw infer model run --prompt "Summarize this changelog entry" --provider openai --json
|
||||
openclaw infer model providers --json
|
||||
openclaw infer model inspect --name gpt-5.4 --json
|
||||
```
|
||||
|
||||
Примітки:
|
||||
|
||||
- `model run` повторно використовує середовище виконання агента, тому перевизначення провайдера/моделі поводяться як у звичайному виконанні агента.
|
||||
- `model auth login`, `model auth logout` і `model auth status` керують збереженим станом автентифікації провайдера.
|
||||
|
||||
## Image
|
||||
|
||||
Використовуйте `image` для генерації, редагування та опису.
|
||||
|
||||
```bash
|
||||
openclaw infer image generate --prompt "friendly lobster illustration" --json
|
||||
openclaw infer image generate --prompt "cinematic product photo of headphones" --json
|
||||
openclaw infer image describe --file ./photo.jpg --json
|
||||
openclaw infer image describe --file ./ui-screenshot.png --model openai/gpt-4.1-mini --json
|
||||
openclaw infer image describe --file ./photo.jpg --model ollama/qwen2.5vl:7b --json
|
||||
```
|
||||
|
||||
Примітки:
|
||||
|
||||
- Використовуйте `image edit`, якщо починаєте з наявних вхідних файлів.
|
||||
- Для `image describe` `--model` має бути `<provider/model>` із підтримкою зображень.
|
||||
- Для локальних візуальних моделей Ollama спочатку завантажте модель і встановіть `OLLAMA_API_KEY` у будь-яке значення-заповнювач, наприклад `ollama-local`. Див. [Ollama](/uk/providers/ollama#vision-and-image-description).
|
||||
|
||||
## Audio
|
||||
|
||||
Використовуйте `audio` для транскрибування файлів.
|
||||
|
||||
```bash
|
||||
openclaw infer audio transcribe --file ./memo.m4a --json
|
||||
openclaw infer audio transcribe --file ./team-sync.m4a --language en --prompt "Focus on names and action items" --json
|
||||
openclaw infer audio transcribe --file ./memo.m4a --model openai/whisper-1 --json
|
||||
```
|
||||
|
||||
Примітки:
|
||||
|
||||
- `audio transcribe` призначено для транскрибування файлів, а не для керування сеансами в реальному часі.
|
||||
- `--model` має бути `<provider/model>`.
|
||||
|
||||
## TTS
|
||||
|
||||
Використовуйте `tts` для синтезу мовлення та стану провайдера TTS.
|
||||
|
||||
```bash
|
||||
openclaw infer tts convert --text "hello from openclaw" --output ./hello.mp3 --json
|
||||
openclaw infer tts convert --text "Your build is complete" --output ./build-complete.mp3 --json
|
||||
openclaw infer tts providers --json
|
||||
openclaw infer tts status --json
|
||||
```
|
||||
|
||||
Примітки:
|
||||
|
||||
- `tts status` за замовчуванням використовує gateway, оскільки відображає стан TTS, яким керує gateway.
|
||||
- Використовуйте `tts providers`, `tts voices` і `tts set-provider` для перевірки та налаштування поведінки TTS.
|
||||
|
||||
## Video
|
||||
|
||||
Використовуйте `video` для генерації та опису.
|
||||
|
||||
```bash
|
||||
openclaw infer video generate --prompt "cinematic sunset over the ocean" --json
|
||||
openclaw infer video generate --prompt "slow drone shot over a forest lake" --json
|
||||
openclaw infer video describe --file ./clip.mp4 --json
|
||||
openclaw infer video describe --file ./clip.mp4 --model openai/gpt-4.1-mini --json
|
||||
```
|
||||
|
||||
Примітки:
|
||||
|
||||
- Для `video describe` `--model` має бути `<provider/model>`.
|
||||
|
||||
## Web
|
||||
|
||||
Використовуйте `web` для робочих процесів пошуку та отримання даних.
|
||||
|
||||
```bash
|
||||
openclaw infer web search --query "OpenClaw docs" --json
|
||||
openclaw infer web search --query "OpenClaw infer web providers" --json
|
||||
openclaw infer web fetch --url https://docs.openclaw.ai/cli/infer --json
|
||||
openclaw infer web providers --json
|
||||
```
|
||||
|
||||
Примітки:
|
||||
|
||||
- Використовуйте `web providers` для перевірки доступних, налаштованих і вибраних провайдерів.
|
||||
|
||||
## Embedding
|
||||
|
||||
Використовуйте `embedding` для створення векторів і перевірки провайдера вбудовувань.
|
||||
|
||||
```bash
|
||||
openclaw infer embedding create --text "friendly lobster" --json
|
||||
openclaw infer embedding create --text "customer support ticket: delayed shipment" --model openai/text-embedding-3-large --json
|
||||
openclaw infer embedding providers --json
|
||||
```
|
||||
|
||||
## Вивід JSON
|
||||
|
||||
Команди infer нормалізують вивід JSON у межах спільної оболонки:
|
||||
|
||||
```json
|
||||
{
|
||||
"ok": true,
|
||||
"capability": "image.generate",
|
||||
"transport": "local",
|
||||
"provider": "openai",
|
||||
"model": "gpt-image-2",
|
||||
"attempts": [],
|
||||
"outputs": []
|
||||
}
|
||||
```
|
||||
|
||||
Поля верхнього рівня є стабільними:
|
||||
|
||||
- `ok`
|
||||
- `capability`
|
||||
- `transport`
|
||||
- `provider`
|
||||
- `model`
|
||||
- `attempts`
|
||||
- `outputs`
|
||||
- `error`
|
||||
|
||||
## Поширені помилки
|
||||
|
||||
```bash
|
||||
# Погано
|
||||
openclaw infer media image generate --prompt "friendly lobster"
|
||||
|
||||
# Добре
|
||||
openclaw infer image generate --prompt "friendly lobster"
|
||||
```
|
||||
|
||||
```bash
|
||||
# Погано
|
||||
openclaw infer audio transcribe --file ./memo.m4a --model whisper-1 --json
|
||||
|
||||
# Добре
|
||||
openclaw infer audio transcribe --file ./memo.m4a --model openai/whisper-1 --json
|
||||
```
|
||||
|
||||
## Примітки
|
||||
|
||||
- `openclaw capability ...` є псевдонімом для `openclaw infer ...`.
|
||||
66
docs/uk/cli/logs.md
Normal file
66
docs/uk/cli/logs.md
Normal file
@ -0,0 +1,66 @@
|
||||
---
|
||||
read_when:
|
||||
- Вам потрібно віддалено переглядати кінець журналів Gateway (без SSH)
|
||||
- Ви хочете рядки журналу у форматі JSON для інструментів
|
||||
summary: Довідка CLI для `openclaw logs` (перегляд кінця журналів Gateway через RPC)
|
||||
title: журнали
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:18:21Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 238a52e31a9a332cab513ced049e92d032b03c50376895ce57dffa2ee7d1e4b4
|
||||
source_path: cli/logs.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw logs`
|
||||
|
||||
Перегляд кінця файлових журналів Gateway через RPC (працює у віддаленому режимі).
|
||||
|
||||
Пов’язане:
|
||||
|
||||
- Огляд журналювання: [Журналювання](/uk/logging)
|
||||
- CLI Gateway: [gateway](/uk/cli/gateway)
|
||||
|
||||
## Параметри
|
||||
|
||||
- `--limit <n>`: максимальна кількість рядків журналу для повернення (типово `200`)
|
||||
- `--max-bytes <n>`: максимальна кількість байтів для читання з файла журналу (типово `250000`)
|
||||
- `--follow`: стежити за потоком журналу
|
||||
- `--interval <ms>`: інтервал опитування під час стеження (типово `1000`)
|
||||
- `--json`: виводити події JSON, розділені рядками
|
||||
- `--plain`: звичайний текстовий вивід без стилізованого форматування
|
||||
- `--no-color`: вимкнути ANSI-кольори
|
||||
- `--local-time`: відображати часові мітки у вашому локальному часовому поясі
|
||||
|
||||
## Спільні параметри RPC Gateway
|
||||
|
||||
`openclaw logs` також приймає стандартні прапорці клієнта Gateway:
|
||||
|
||||
- `--url <url>`: URL WebSocket Gateway
|
||||
- `--token <token>`: токен Gateway
|
||||
- `--timeout <ms>`: тайм-аут у мс (типово `30000`)
|
||||
- `--expect-final`: чекати фінальної відповіді, коли виклик Gateway підтримується агентом
|
||||
|
||||
Коли ви передаєте `--url`, CLI не застосовує автоматично облікові дані з конфігурації або середовища. Явно вкажіть `--token`, якщо цільовий Gateway вимагає автентифікації.
|
||||
|
||||
## Приклади
|
||||
|
||||
```bash
|
||||
openclaw logs
|
||||
openclaw logs --follow
|
||||
openclaw logs --follow --interval 2000
|
||||
openclaw logs --limit 500 --max-bytes 500000
|
||||
openclaw logs --json
|
||||
openclaw logs --plain
|
||||
openclaw logs --no-color
|
||||
openclaw logs --limit 500
|
||||
openclaw logs --local-time
|
||||
openclaw logs --follow --local-time
|
||||
openclaw logs --url ws://127.0.0.1:18789 --token "$OPENCLAW_GATEWAY_TOKEN"
|
||||
```
|
||||
|
||||
## Примітки
|
||||
|
||||
- Використовуйте `--local-time`, щоб відображати часові мітки у вашому локальному часовому поясі.
|
||||
- Якщо локальний Gateway local loopback запитує pairing, `openclaw logs` автоматично переключається на налаштований локальний файл журналу. Явно задані цілі через `--url` не використовують це резервне переключення.
|
||||
515
docs/uk/cli/mcp.md
Normal file
515
docs/uk/cli/mcp.md
Normal file
@ -0,0 +1,515 @@
|
||||
---
|
||||
read_when:
|
||||
- Підключення Codex, Claude Code або іншого MCP-клієнта до каналів на базі OpenClaw
|
||||
- Запуск `openclaw mcp serve`
|
||||
- Керування збереженими OpenClaw визначеннями MCP-серверів
|
||||
summary: Надавайте доступ до розмов каналів OpenClaw через MCP і керуйте збереженими визначеннями MCP-серверів
|
||||
title: mcp
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:18:09Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: bbc528a7490132f4b505f62bdc4556602243a5e27557c4965c2e1d4f80ad00bd
|
||||
source_path: cli/mcp.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# mcp
|
||||
|
||||
`openclaw mcp` має дві задачі:
|
||||
|
||||
- запускати OpenClaw як MCP-сервер за допомогою `openclaw mcp serve`
|
||||
- керувати визначеннями вихідних MCP-серверів, що належать OpenClaw, за допомогою `list`, `show`,
|
||||
`set` і `unset`
|
||||
|
||||
Інакше кажучи:
|
||||
|
||||
- `serve` — це OpenClaw, що працює як MCP-сервер
|
||||
- `list` / `show` / `set` / `unset` — це OpenClaw, що працює як реєстр на
|
||||
стороні MCP-клієнта для інших MCP-серверів, які його runtime-компоненти можуть використати пізніше
|
||||
|
||||
Використовуйте [`openclaw acp`](/uk/cli/acp), коли OpenClaw має сам розміщувати
|
||||
сеанс coding harness і маршрутизувати це runtime-середовище через ACP.
|
||||
|
||||
## OpenClaw як MCP-сервер
|
||||
|
||||
Це шлях `openclaw mcp serve`.
|
||||
|
||||
## Коли використовувати `serve`
|
||||
|
||||
Використовуйте `openclaw mcp serve`, коли:
|
||||
|
||||
- Codex, Claude Code або інший MCP-клієнт має напряму взаємодіяти з
|
||||
розмовами каналів на базі OpenClaw
|
||||
- у вас уже є локальний або віддалений Gateway OpenClaw із маршрутизованими сеансами
|
||||
- вам потрібен один MCP-сервер, який працює з різними каналами OpenClaw,
|
||||
замість запуску окремих мостів для кожного каналу
|
||||
|
||||
Натомість використовуйте [`openclaw acp`](/uk/cli/acp), коли OpenClaw має сам
|
||||
розміщувати runtime-середовище coding і зберігати сеанс агента всередині OpenClaw.
|
||||
|
||||
## Як це працює
|
||||
|
||||
`openclaw mcp serve` запускає stdio MCP-сервер. Цим процесом керує MCP-клієнт.
|
||||
Поки клієнт тримає stdio-сеанс відкритим, міст підключається до
|
||||
локального або віддаленого Gateway OpenClaw через WebSocket і надає доступ до
|
||||
маршрутизованих розмов каналів через MCP.
|
||||
|
||||
Життєвий цикл:
|
||||
|
||||
1. MCP-клієнт запускає `openclaw mcp serve`
|
||||
2. міст підключається до Gateway
|
||||
3. маршрутизовані сеанси стають розмовами MCP та інструментами transcript/history
|
||||
4. живі події ставляться в чергу в пам’яті, поки міст підключений
|
||||
5. якщо ввімкнено режим каналу Claude, той самий сеанс також може отримувати
|
||||
push-сповіщення, специфічні для Claude
|
||||
|
||||
Важлива поведінка:
|
||||
|
||||
- стан live-черги починається з моменту підключення моста
|
||||
- старіша історія transcript зчитується через `messages_read`
|
||||
- push-сповіщення Claude існують лише поки MCP-сеанс активний
|
||||
- коли клієнт відключається, міст завершує роботу, а live-черга зникає
|
||||
|
||||
## Вибір режиму клієнта
|
||||
|
||||
Той самий міст можна використовувати двома різними способами:
|
||||
|
||||
- Загальні MCP-клієнти: лише стандартні MCP-інструменти. Використовуйте `conversations_list`,
|
||||
`messages_read`, `events_poll`, `events_wait`, `messages_send` та
|
||||
інструменти погодження.
|
||||
- Claude Code: стандартні MCP-інструменти плюс адаптер каналу, специфічний для Claude.
|
||||
Увімкніть `--claude-channel-mode on` або залиште типове значення `auto`.
|
||||
|
||||
Наразі `auto` поводиться так само, як `on`. Визначення можливостей клієнта поки що немає.
|
||||
|
||||
## Що надає `serve`
|
||||
|
||||
Міст використовує наявні метадані маршруту сеансу Gateway, щоб надавати
|
||||
доступ до розмов на основі каналів. Розмова з’являється, коли OpenClaw уже має
|
||||
стан сеансу з відомим маршрутом, наприклад:
|
||||
|
||||
- `channel`
|
||||
- метадані одержувача або призначення
|
||||
- необов’язковий `accountId`
|
||||
- необов’язковий `threadId`
|
||||
|
||||
Це дає MCP-клієнтам єдину точку для:
|
||||
|
||||
- перегляду списку нещодавніх маршрутизованих розмов
|
||||
- читання нещодавньої історії transcript
|
||||
- очікування нових вхідних подій
|
||||
- надсилання відповіді назад тим самим маршрутом
|
||||
- перегляду запитів на погодження, що надходять, поки міст підключений
|
||||
|
||||
## Використання
|
||||
|
||||
```bash
|
||||
# Локальний Gateway
|
||||
openclaw mcp serve
|
||||
|
||||
# Віддалений Gateway
|
||||
openclaw mcp serve --url wss://gateway-host:18789 --token-file ~/.openclaw/gateway.token
|
||||
|
||||
# Віддалений Gateway з автентифікацією паролем
|
||||
openclaw mcp serve --url wss://gateway-host:18789 --password-file ~/.openclaw/gateway.password
|
||||
|
||||
# Увімкнути докладні журнали моста
|
||||
openclaw mcp serve --verbose
|
||||
|
||||
# Вимкнути push-сповіщення, специфічні для Claude
|
||||
openclaw mcp serve --claude-channel-mode off
|
||||
```
|
||||
|
||||
## Інструменти моста
|
||||
|
||||
Поточний міст надає такі MCP-інструменти:
|
||||
|
||||
- `conversations_list`
|
||||
- `conversation_get`
|
||||
- `messages_read`
|
||||
- `attachments_fetch`
|
||||
- `events_poll`
|
||||
- `events_wait`
|
||||
- `messages_send`
|
||||
- `permissions_list_open`
|
||||
- `permissions_respond`
|
||||
|
||||
### `conversations_list`
|
||||
|
||||
Показує список нещодавніх розмов на основі сеансів, які вже мають метадані маршруту в
|
||||
стані сеансу Gateway.
|
||||
|
||||
Корисні фільтри:
|
||||
|
||||
- `limit`
|
||||
- `search`
|
||||
- `channel`
|
||||
- `includeDerivedTitles`
|
||||
- `includeLastMessage`
|
||||
|
||||
### `conversation_get`
|
||||
|
||||
Повертає одну розмову за `session_key`.
|
||||
|
||||
### `messages_read`
|
||||
|
||||
Зчитує нещодавні повідомлення transcript для однієї розмови на основі сеансу.
|
||||
|
||||
### `attachments_fetch`
|
||||
|
||||
Витягує нетекстові блоки вмісту повідомлення з одного повідомлення transcript. Це
|
||||
подання метаданих поверх вмісту transcript, а не окреме стале сховище attachment blob.
|
||||
|
||||
### `events_poll`
|
||||
|
||||
Зчитує поставлені в чергу живі події, починаючи з числового курсора.
|
||||
|
||||
### `events_wait`
|
||||
|
||||
Виконує довге опитування, доки не надійде наступна відповідна поставлена в чергу подія або не спливе тайм-аут.
|
||||
|
||||
Використовуйте це, коли загальному MCP-клієнту потрібна майже реальна доставка в реальному часі без
|
||||
push-протоколу, специфічного для Claude.
|
||||
|
||||
### `messages_send`
|
||||
|
||||
Надсилає текст назад тим самим маршрутом, уже записаним у сеансі.
|
||||
|
||||
Поточна поведінка:
|
||||
|
||||
- потрібен наявний маршрут розмови
|
||||
- використовує канал сеансу, одержувача, id облікового запису та id треду
|
||||
- надсилає лише текст
|
||||
|
||||
### `permissions_list_open`
|
||||
|
||||
Показує список очікуваних запитів на погодження exec/plugin, які міст спостерігав з моменту
|
||||
підключення до Gateway.
|
||||
|
||||
### `permissions_respond`
|
||||
|
||||
Обробляє один очікуваний запит на погодження exec/plugin одним із варіантів:
|
||||
|
||||
- `allow-once`
|
||||
- `allow-always`
|
||||
- `deny`
|
||||
|
||||
## Модель подій
|
||||
|
||||
Поки міст підключений, він підтримує чергу подій у пам’яті.
|
||||
|
||||
Поточні типи подій:
|
||||
|
||||
- `message`
|
||||
- `exec_approval_requested`
|
||||
- `exec_approval_resolved`
|
||||
- `plugin_approval_requested`
|
||||
- `plugin_approval_resolved`
|
||||
- `claude_permission_request`
|
||||
|
||||
Важливі обмеження:
|
||||
|
||||
- черга є лише live; вона починається в момент запуску MCP-моста
|
||||
- `events_poll` і `events_wait` самі по собі не відтворюють старішу історію Gateway
|
||||
- стале відставання слід зчитувати через `messages_read`
|
||||
|
||||
## Сповіщення каналу Claude
|
||||
|
||||
Міст також може надавати сповіщення каналу, специфічні для Claude. Це
|
||||
еквівалент адаптера каналу Claude Code в OpenClaw: стандартні MCP-інструменти залишаються
|
||||
доступними, але живі вхідні повідомлення також можуть надходити як MCP-сповіщення,
|
||||
специфічні для Claude.
|
||||
|
||||
Прапорці:
|
||||
|
||||
- `--claude-channel-mode off`: лише стандартні MCP-інструменти
|
||||
- `--claude-channel-mode on`: увімкнути сповіщення каналу Claude
|
||||
- `--claude-channel-mode auto`: поточне типове значення; така сама поведінка моста, як у `on`
|
||||
|
||||
Коли ввімкнено режим каналу Claude, сервер оголошує експериментальні
|
||||
можливості Claude і може надсилати:
|
||||
|
||||
- `notifications/claude/channel`
|
||||
- `notifications/claude/channel/permission`
|
||||
|
||||
Поточна поведінка моста:
|
||||
|
||||
- вхідні повідомлення transcript типу `user` пересилаються як
|
||||
`notifications/claude/channel`
|
||||
- запити дозволів Claude, отримані через MCP, відстежуються в пам’яті
|
||||
- якщо пов’язана розмова пізніше надсилає `yes abcde` або `no abcde`, міст
|
||||
перетворює це на `notifications/claude/channel/permission`
|
||||
- ці сповіщення доступні лише для live-сеансу; якщо MCP-клієнт відключається,
|
||||
ціль для push зникає
|
||||
|
||||
Це навмисно специфічно для клієнта. Загальні MCP-клієнти мають покладатися на
|
||||
стандартні інструменти опитування.
|
||||
|
||||
## Конфігурація MCP-клієнта
|
||||
|
||||
Приклад конфігурації stdio-клієнта:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"openclaw": {
|
||||
"command": "openclaw",
|
||||
"args": [
|
||||
"mcp",
|
||||
"serve",
|
||||
"--url",
|
||||
"wss://gateway-host:18789",
|
||||
"--token-file",
|
||||
"/path/to/gateway.token"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Для більшості загальних MCP-клієнтів починайте зі стандартної поверхні інструментів і
|
||||
ігноруйте режим Claude. Вмикайте режим Claude лише для клієнтів, які справді
|
||||
розуміють методи сповіщень, специфічні для Claude.
|
||||
|
||||
## Параметри
|
||||
|
||||
`openclaw mcp serve` підтримує:
|
||||
|
||||
- `--url <url>`: URL WebSocket Gateway
|
||||
- `--token <token>`: токен Gateway
|
||||
- `--token-file <path>`: зчитати токен із файлу
|
||||
- `--password <password>`: пароль Gateway
|
||||
- `--password-file <path>`: зчитати пароль із файлу
|
||||
- `--claude-channel-mode <auto|on|off>`: режим сповіщень Claude
|
||||
- `-v`, `--verbose`: докладні журнали у stderr
|
||||
|
||||
За можливості віддавайте перевагу `--token-file` або `--password-file` замість секретів у командному рядку.
|
||||
|
||||
## Безпека та межа довіри
|
||||
|
||||
Міст не вигадує маршрутизацію. Він лише надає доступ до розмов, які Gateway
|
||||
вже знає, як маршрутизувати.
|
||||
|
||||
Це означає:
|
||||
|
||||
- allowlist відправників, pairing і довіра на рівні каналу як і раніше належать
|
||||
до базової конфігурації каналу OpenClaw
|
||||
- `messages_send` може відповідати лише через наявний збережений маршрут
|
||||
- стан погоджень є лише live/в пам’яті для поточного сеансу моста
|
||||
- автентифікація моста має використовувати ті самі механізми токена або пароля Gateway, яким ви
|
||||
довіряли б для будь-якого іншого віддаленого клієнта Gateway
|
||||
|
||||
Якщо розмова відсутня в `conversations_list`, зазвичай причина не в
|
||||
конфігурації MCP. Причина — відсутні або неповні метадані маршруту в базовому
|
||||
сеансі Gateway.
|
||||
|
||||
## Тестування
|
||||
|
||||
OpenClaw постачається з детермінованою Docker smoke-перевіркою для цього моста:
|
||||
|
||||
```bash
|
||||
pnpm test:docker:mcp-channels
|
||||
```
|
||||
|
||||
Ця smoke-перевірка:
|
||||
|
||||
- запускає контейнер Gateway із підготовленими даними
|
||||
- запускає другий контейнер, який запускає `openclaw mcp serve`
|
||||
- перевіряє виявлення розмов, читання transcript, читання метаданих attachment,
|
||||
поведінку live-черги подій і маршрутизацію вихідних надсилань
|
||||
- перевіряє сповіщення стилю Claude для каналу та дозволів через справжній
|
||||
stdio MCP-міст
|
||||
|
||||
Це найшвидший спосіб довести, що міст працює, без підключення реального
|
||||
облікового запису Telegram, Discord або iMessage до тестового запуску.
|
||||
|
||||
Для ширшого контексту тестування див. [Тестування](/uk/help/testing).
|
||||
|
||||
## Усунення несправностей
|
||||
|
||||
### Не повертаються розмови
|
||||
|
||||
Зазвичай це означає, що сеанс Gateway ще не можна маршрутизувати. Підтвердьте, що
|
||||
базовий сеанс має збережені метадані маршруту channel/provider, recipient і
|
||||
необов’язкові `account/thread`.
|
||||
|
||||
### `events_poll` або `events_wait` пропускає старіші повідомлення
|
||||
|
||||
Це очікувано. Live-черга починається з моменту підключення моста. Читайте старішу історію transcript через `messages_read`.
|
||||
|
||||
### Не з’являються сповіщення Claude
|
||||
|
||||
Перевірте все з наведеного:
|
||||
|
||||
- клієнт тримає stdio MCP-сеанс відкритим
|
||||
- `--claude-channel-mode` має значення `on` або `auto`
|
||||
- клієнт справді розуміє методи сповіщень, специфічні для Claude
|
||||
- вхідне повідомлення надійшло після підключення моста
|
||||
|
||||
### Відсутні погодження
|
||||
|
||||
`permissions_list_open` показує лише запити на погодження, які були помічені, поки міст
|
||||
був підключений. Це не API сталої історії погоджень.
|
||||
|
||||
## OpenClaw як реєстр MCP-клієнтів
|
||||
|
||||
Це шлях `openclaw mcp list`, `show`, `set` і `unset`.
|
||||
|
||||
Ці команди не надають доступ до OpenClaw через MCP. Вони керують визначеннями MCP-серверів, що належать OpenClaw,
|
||||
у `mcp.servers` в конфігурації OpenClaw.
|
||||
|
||||
Ці збережені визначення призначені для runtime-середовищ, які OpenClaw запускає або налаштовує
|
||||
пізніше, наприклад вбудованого Pi та інших runtime-адаптерів. OpenClaw зберігає
|
||||
визначення централізовано, щоб цим runtime-компонентам не потрібно було підтримувати власні дублікати
|
||||
списків MCP-серверів.
|
||||
|
||||
Важлива поведінка:
|
||||
|
||||
- ці команди лише читають або записують конфігурацію OpenClaw
|
||||
- вони не підключаються до цільового MCP-сервера
|
||||
- вони не перевіряють, чи команда, URL або віддалений транспорт
|
||||
доступні прямо зараз
|
||||
- runtime-адаптери самі вирішують, які форми транспорту вони реально підтримують під час виконання
|
||||
- вбудований Pi надає налаштовані MCP-інструменти у звичайних профілях інструментів `coding` і `messaging`;
|
||||
`minimal` усе ще приховує їх, а `tools.deny: ["bundle-mcp"]` явно їх вимикає
|
||||
|
||||
## Збережені визначення MCP-серверів
|
||||
|
||||
OpenClaw також зберігає в конфігурації легковаговий реєстр MCP-серверів для поверхонь,
|
||||
яким потрібні визначення MCP, керовані OpenClaw.
|
||||
|
||||
Команди:
|
||||
|
||||
- `openclaw mcp list`
|
||||
- `openclaw mcp show [name]`
|
||||
- `openclaw mcp set <name> <json>`
|
||||
- `openclaw mcp unset <name>`
|
||||
|
||||
Примітки:
|
||||
|
||||
- `list` сортує імена серверів.
|
||||
- `show` без імені виводить повний об’єкт налаштованих MCP-серверів.
|
||||
- `set` очікує одне значення JSON-об’єкта в командному рядку.
|
||||
- `unset` завершується з помилкою, якщо вказаний сервер не існує.
|
||||
|
||||
Приклади:
|
||||
|
||||
```bash
|
||||
openclaw mcp list
|
||||
openclaw mcp show context7 --json
|
||||
openclaw mcp set context7 '{"command":"uvx","args":["context7-mcp"]}'
|
||||
openclaw mcp set docs '{"url":"https://mcp.example.com"}'
|
||||
openclaw mcp unset context7
|
||||
```
|
||||
|
||||
Приклад структури конфігурації:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcp": {
|
||||
"servers": {
|
||||
"context7": {
|
||||
"command": "uvx",
|
||||
"args": ["context7-mcp"]
|
||||
},
|
||||
"docs": {
|
||||
"url": "https://mcp.example.com"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Транспорт stdio
|
||||
|
||||
Запускає локальний дочірній процес і взаємодіє через stdin/stdout.
|
||||
|
||||
| Поле | Опис |
|
||||
| -------------------------- | ------------------------------------- |
|
||||
| `command` | Виконуваний файл для запуску (обов’язково) |
|
||||
| `args` | Масив аргументів командного рядка |
|
||||
| `env` | Додаткові змінні середовища |
|
||||
| `cwd` / `workingDirectory` | Робочий каталог для процесу |
|
||||
|
||||
#### Фільтр безпеки env для stdio
|
||||
|
||||
OpenClaw відхиляє ключі env запуску інтерпретатора, які можуть змінити спосіб запуску stdio MCP-сервера до першого RPC, навіть якщо вони вказані в блоці `env` сервера. Заблоковані ключі включають `NODE_OPTIONS`, `PYTHONSTARTUP`, `PYTHONPATH`, `PERL5OPT`, `RUBYOPT`, `SHELLOPTS`, `PS4` та подібні змінні керування runtime. Під час запуску такі значення відхиляються з помилкою конфігурації, щоб вони не могли підставити неявний prelude, замінити інтерпретатор або ввімкнути debugger для stdio-процесу. Звичайні облікові дані, proxy і змінні env, специфічні для сервера (`GITHUB_TOKEN`, `HTTP_PROXY`, власні `*_API_KEY` тощо), це не зачіпає.
|
||||
|
||||
Якщо вашому MCP-серверу справді потрібна одна із заблокованих змінних, задайте її для хост-процесу Gateway, а не в `env` stdio-сервера.
|
||||
|
||||
### Транспорт SSE / HTTP
|
||||
|
||||
Підключається до віддаленого MCP-сервера через HTTP Server-Sent Events.
|
||||
|
||||
| Поле | Опис |
|
||||
| --------------------- | ---------------------------------------------------------------- |
|
||||
| `url` | URL `http` або `https` віддаленого сервера (обов’язково) |
|
||||
| `headers` | Необов’язкова карта HTTP-заголовків ключ-значення (наприклад, токени автентифікації) |
|
||||
| `connectionTimeoutMs` | Тайм-аут підключення для сервера в мс (необов’язково) |
|
||||
|
||||
Приклад:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcp": {
|
||||
"servers": {
|
||||
"remote-tools": {
|
||||
"url": "https://mcp.example.com",
|
||||
"headers": {
|
||||
"Authorization": "Bearer <token>"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Чутливі значення в `url` (userinfo) і `headers` маскуються в журналах і
|
||||
виводі стану.
|
||||
|
||||
### Транспорт Streamable HTTP
|
||||
|
||||
`streamable-http` — це додатковий варіант транспорту поряд із `sse` і `stdio`. Він використовує HTTP streaming для двобічного зв’язку з віддаленими MCP-серверами.
|
||||
|
||||
| Поле | Опис |
|
||||
| --------------------- | -------------------------------------------------------------------------------------------- |
|
||||
| `url` | URL `http` або `https` віддаленого сервера (обов’язково) |
|
||||
| `transport` | Установіть `"streamable-http"` для вибору цього транспорту; якщо поле не вказано, OpenClaw використовує `sse` |
|
||||
| `headers` | Необов’язкова карта HTTP-заголовків ключ-значення (наприклад, токени автентифікації) |
|
||||
| `connectionTimeoutMs` | Тайм-аут підключення для сервера в мс (необов’язково) |
|
||||
|
||||
Приклад:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcp": {
|
||||
"servers": {
|
||||
"streaming-tools": {
|
||||
"url": "https://mcp.example.com/stream",
|
||||
"transport": "streamable-http",
|
||||
"connectionTimeoutMs": 10000,
|
||||
"headers": {
|
||||
"Authorization": "Bearer <token>"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Ці команди керують лише збереженою конфігурацією. Вони не запускають міст каналу,
|
||||
не відкривають live-сеанс MCP-клієнта і не доводять, що цільовий сервер доступний.
|
||||
|
||||
## Поточні обмеження
|
||||
|
||||
Ця сторінка описує міст у тому вигляді, у якому він постачається зараз.
|
||||
|
||||
Поточні обмеження:
|
||||
|
||||
- виявлення розмов залежить від наявних метаданих маршруту сеансу Gateway
|
||||
- немає загального push-протоколу, окрім адаптера, специфічного для Claude
|
||||
- поки що немає інструментів редагування повідомлень або реакцій
|
||||
- транспорт HTTP/SSE/streamable-http підключається до одного віддаленого сервера; мультиплексованого upstream поки що немає
|
||||
- `permissions_list_open` включає лише погодження, які спостерігалися, поки міст
|
||||
був підключений
|
||||
181
docs/uk/cli/memory.md
Normal file
181
docs/uk/cli/memory.md
Normal file
@ -0,0 +1,181 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете індексувати або шукати семантичну пам’ять
|
||||
- Ви налагоджуєте доступність пам’яті або індексування
|
||||
- Ви хочете перенести викликану короткострокову пам’ять до `MEMORY.md`
|
||||
summary: Довідник CLI для `openclaw memory` (status/index/search/promote/promote-explain/rem-harness)
|
||||
title: пам’ять
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:18:14Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: c9ea7aa2858b18cc6daa6531c45c9e838015b84de1c7a1b88716f2b1323e419c
|
||||
source_path: cli/memory.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw memory`
|
||||
|
||||
Керуйте індексуванням і пошуком семантичної пам’яті.
|
||||
Надається активним plugin пам’яті (типово: `memory-core`; установіть `plugins.slots.memory = "none"`, щоб вимкнути).
|
||||
|
||||
Пов’язане:
|
||||
|
||||
- Концепція пам’яті: [Memory](/uk/concepts/memory)
|
||||
- Вікі пам’яті: [Memory Wiki](/uk/plugins/memory-wiki)
|
||||
- Wiki CLI: [wiki](/uk/cli/wiki)
|
||||
- Plugins: [Plugins](/uk/tools/plugin)
|
||||
|
||||
## Приклади
|
||||
|
||||
```bash
|
||||
openclaw memory status
|
||||
openclaw memory status --deep
|
||||
openclaw memory status --fix
|
||||
openclaw memory index --force
|
||||
openclaw memory search "meeting notes"
|
||||
openclaw memory search --query "deployment" --max-results 20
|
||||
openclaw memory promote --limit 10 --min-score 0.75
|
||||
openclaw memory promote --apply
|
||||
openclaw memory promote --json --min-recall-count 0 --min-unique-queries 0
|
||||
openclaw memory promote-explain "router vlan"
|
||||
openclaw memory promote-explain "router vlan" --json
|
||||
openclaw memory rem-harness
|
||||
openclaw memory rem-harness --json
|
||||
openclaw memory status --json
|
||||
openclaw memory status --deep --index
|
||||
openclaw memory status --deep --index --verbose
|
||||
openclaw memory status --agent main
|
||||
openclaw memory index --agent main --verbose
|
||||
```
|
||||
|
||||
## Параметри
|
||||
|
||||
`memory status` і `memory index`:
|
||||
|
||||
- `--agent <id>`: обмежити одним агентом. Без цього ці команди виконуються для кожного налаштованого агента; якщо список агентів не налаштовано, вони повертаються до типового агента.
|
||||
- `--verbose`: виводити докладні журнали під час перевірок та індексування.
|
||||
|
||||
`memory status`:
|
||||
|
||||
- `--deep`: перевірити доступність vector + embedding.
|
||||
- `--index`: виконати повторне індексування, якщо сховище забруднене (має на увазі `--deep`).
|
||||
- `--fix`: виправити застарілі блокування recall і нормалізувати метадані перенесення.
|
||||
- `--json`: вивести JSON.
|
||||
|
||||
`memory index`:
|
||||
|
||||
- `--force`: примусово виконати повне повторне індексування.
|
||||
|
||||
`memory search`:
|
||||
|
||||
- Вхід запиту: передайте або позиційний `[query]`, або `--query <text>`.
|
||||
- Якщо передано обидва, перемагає `--query`.
|
||||
- Якщо не передано жодного, команда завершується з помилкою.
|
||||
- `--agent <id>`: обмежити одним агентом (типово: типовий агент).
|
||||
- `--max-results <n>`: обмежити кількість повернених результатів.
|
||||
- `--min-score <n>`: відфільтрувати збіги з низькою оцінкою.
|
||||
- `--json`: вивести результати JSON.
|
||||
|
||||
`memory promote`:
|
||||
|
||||
Попередній перегляд і застосування перенесення короткострокової пам’яті.
|
||||
|
||||
```bash
|
||||
openclaw memory promote [--apply] [--limit <n>] [--include-promoted]
|
||||
```
|
||||
|
||||
- `--apply` -- записати перенесення до `MEMORY.md` (типово: лише попередній перегляд).
|
||||
- `--limit <n>` -- обмежити кількість показаних кандидатів.
|
||||
- `--include-promoted` -- включити записи, уже перенесені в попередніх циклах.
|
||||
|
||||
Повні параметри:
|
||||
|
||||
- Ранжує короткострокових кандидатів із `memory/YYYY-MM-DD.md` за допомогою зважених сигналів перенесення (`frequency`, `relevance`, `query diversity`, `recency`, `consolidation`, `conceptual richness`).
|
||||
- Використовує короткострокові сигнали як із recall пам’яті, так і з щоденних проходів ingestion, а також легкі сигнали підсилення фаз light/REM.
|
||||
- Коли Dreaming увімкнено, `memory-core` автоматично керує одним завданням Cron, яке виконує повний цикл (`light -> REM -> deep`) у фоновому режимі (ручний `openclaw cron add` не потрібен).
|
||||
- `--agent <id>`: обмежити одним агентом (типово: типовий агент).
|
||||
- `--limit <n>`: максимальна кількість кандидатів для повернення/застосування.
|
||||
- `--min-score <n>`: мінімальна зважена оцінка перенесення.
|
||||
- `--min-recall-count <n>`: мінімальна кількість recall, потрібна для кандидата.
|
||||
- `--min-unique-queries <n>`: мінімальна кількість різних запитів, потрібна для кандидата.
|
||||
- `--apply`: додати вибраних кандидатів до `MEMORY.md` і позначити їх як перенесені.
|
||||
- `--include-promoted`: включити у вивід уже перенесених кандидатів.
|
||||
- `--json`: вивести JSON.
|
||||
|
||||
`memory promote-explain`:
|
||||
|
||||
Пояснити конкретного кандидата на перенесення та розклад його оцінки.
|
||||
|
||||
```bash
|
||||
openclaw memory promote-explain <selector> [--agent <id>] [--include-promoted] [--json]
|
||||
```
|
||||
|
||||
- `<selector>`: ключ кандидата, фрагмент шляху або фрагмент уривка для пошуку.
|
||||
- `--agent <id>`: обмежити одним агентом (типово: типовий агент).
|
||||
- `--include-promoted`: включити вже перенесених кандидатів.
|
||||
- `--json`: вивести JSON.
|
||||
|
||||
`memory rem-harness`:
|
||||
|
||||
Попередній перегляд REM reflections, candidate truths і результату deep-перенесення без будь-якого запису.
|
||||
|
||||
```bash
|
||||
openclaw memory rem-harness [--agent <id>] [--include-promoted] [--json]
|
||||
```
|
||||
|
||||
- `--agent <id>`: обмежити одним агентом (типово: типовий агент).
|
||||
- `--include-promoted`: включити вже перенесених deep-кандидатів.
|
||||
- `--json`: вивести JSON.
|
||||
|
||||
## Dreaming
|
||||
|
||||
Dreaming — це фонова система консолідації пам’яті з трьома взаємодоповнювальними
|
||||
фазами: **light** (сортування/підготовка короткострокового матеріалу), **deep** (перенесення
|
||||
сталих фактів до `MEMORY.md`) і **REM** (рефлексія та виявлення тем).
|
||||
|
||||
- Увімкнення через `plugins.entries.memory-core.config.dreaming.enabled: true`.
|
||||
- Перемикання з чату через `/dreaming on|off` (або перевірка через `/dreaming status`).
|
||||
- Dreaming працює за одним керованим розкладом циклу (`dreaming.frequency`) і виконує фази в порядку: light, REM, deep.
|
||||
- Лише фаза deep записує сталу пам’ять до `MEMORY.md`.
|
||||
- Людинозрозумілий вивід фаз і записи щоденника записуються до `DREAMS.md` (або наявного `dreams.md`), з необов’язковими звітами по фазах у `memory/dreaming/<phase>/YYYY-MM-DD.md`.
|
||||
- Ранжування використовує зважені сигнали: частота recall, релевантність отримання, різноманітність запитів, часова свіжість, міжденна консолідація та похідне концептуальне багатство.
|
||||
- Перенесення повторно читає live-щоденну нотатку перед записом до `MEMORY.md`, тож відредаговані або видалені короткострокові уривки не будуть перенесені зі застарілих знімків сховища recall.
|
||||
- Заплановані й ручні запуски `memory promote` використовують однакові типові параметри фази deep, якщо ви не передасте перевизначення порогів через CLI.
|
||||
- Автоматичні запуски розподіляються між налаштованими робочими просторами пам’яті.
|
||||
|
||||
Типовий розклад:
|
||||
|
||||
- **Частота циклу**: `dreaming.frequency = 0 3 * * *`
|
||||
- **Пороги deep**: `minScore=0.8`, `minRecallCount=3`, `minUniqueQueries=3`, `recencyHalfLifeDays=14`, `maxAgeDays=30`
|
||||
|
||||
Приклад:
|
||||
|
||||
```json
|
||||
{
|
||||
"plugins": {
|
||||
"entries": {
|
||||
"memory-core": {
|
||||
"config": {
|
||||
"dreaming": {
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Примітки:
|
||||
|
||||
- `memory index --verbose` виводить подробиці по фазах (provider, model, sources, активність пакетів).
|
||||
- `memory status` включає будь-які додаткові шляхи, налаштовані через `memorySearch.extraPaths`.
|
||||
- Якщо фактично активні поля remote API key для пам’яті налаштовано як SecretRef, команда визначає ці значення з активного знімка Gateway. Якщо Gateway недоступний, команда одразу завершується з помилкою.
|
||||
- Примітка про розбіжність версій Gateway: цей шлях команди потребує Gateway, який підтримує `secrets.resolve`; старіші Gateway повертають помилку unknown-method.
|
||||
- Налаштовуйте частоту запланованих циклів через `dreaming.frequency`. Політика deep-перенесення в іншому разі є внутрішньою; використовуйте прапорці CLI в `memory promote`, коли вам потрібні разові ручні перевизначення.
|
||||
- `memory rem-harness --path <file-or-dir> --grounded` показує попередній перегляд grounded `What Happened`, `Reflections` і `Possible Lasting Updates` з історичних щоденних нотаток без будь-якого запису.
|
||||
- `memory rem-backfill --path <file-or-dir>` записує оборотні grounded-записи щоденника до `DREAMS.md` для перегляду в UI.
|
||||
- `memory rem-backfill --path <file-or-dir> --stage-short-term` також додає grounded-сталі кандидати до live-сховища короткострокового перенесення, щоб звичайна фаза deep могла їх ранжувати.
|
||||
- `memory rem-backfill --rollback` видаляє раніше записані grounded-записи щоденника, а `memory rem-backfill --rollback-short-term` видаляє раніше підготовлених grounded-кандидатів короткострокової пам’яті.
|
||||
- Див. [Dreaming](/uk/concepts/dreaming) для повного опису фаз і довідника з конфігурації.
|
||||
305
docs/uk/cli/message.md
Normal file
305
docs/uk/cli/message.md
Normal file
@ -0,0 +1,305 @@
|
||||
---
|
||||
read_when:
|
||||
- Додавання або змінення дій CLI для повідомлень
|
||||
- Зміна поведінки вихідного каналу
|
||||
summary: Довідка CLI для `openclaw message` (надсилання + дії каналу)
|
||||
title: повідомлення
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:18:24Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 37b6f40b435326aee186dad1e6e060c24f2ef6d44b07fd85d4ce5cfd7f350b91
|
||||
source_path: cli/message.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw message`
|
||||
|
||||
Єдина вихідна команда для надсилання повідомлень і дій каналу
|
||||
(Discord/Google Chat/iMessage/Matrix/Mattermost (Plugin)/Microsoft Teams/Signal/Slack/Telegram/WhatsApp).
|
||||
|
||||
## Використання
|
||||
|
||||
```
|
||||
openclaw message <subcommand> [flags]
|
||||
```
|
||||
|
||||
Вибір каналу:
|
||||
|
||||
- `--channel` обов’язковий, якщо налаштовано більше ніж один канал.
|
||||
- Якщо налаштовано рівно один канал, він стає типовим.
|
||||
- Значення: `discord|googlechat|imessage|matrix|mattermost|msteams|signal|slack|telegram|whatsapp` (Mattermost потребує Plugin)
|
||||
|
||||
Формати цілі (`--target`):
|
||||
|
||||
- WhatsApp: E.164 або JID групи
|
||||
- Telegram: id чату або `@username`
|
||||
- Discord: `channel:<id>` або `user:<id>` (або згадка `<@id>`; необроблені числові id трактуються як канали)
|
||||
- Google Chat: `spaces/<spaceId>` або `users/<userId>`
|
||||
- Slack: `channel:<id>` або `user:<id>` (необроблений id каналу приймається)
|
||||
- Mattermost (Plugin): `channel:<id>`, `user:<id>` або `@username` (id без префікса трактуються як канали)
|
||||
- Signal: `+E.164`, `group:<id>`, `signal:+E.164`, `signal:group:<id>` або `username:<name>`/`u:<name>`
|
||||
- iMessage: handle, `chat_id:<id>`, `chat_guid:<guid>` або `chat_identifier:<id>`
|
||||
- Matrix: `@user:server`, `!room:server` або `#alias:server`
|
||||
- Microsoft Teams: id розмови (`19:...@thread.tacv2`) або `conversation:<id>` чи `user:<aad-object-id>`
|
||||
|
||||
Пошук за назвою:
|
||||
|
||||
- Для підтримуваних провайдерів (Discord/Slack/тощо) назви каналів, як-от `Help` або `#help`, розв’язуються через кеш каталогу.
|
||||
- Якщо в кеші немає збігу, OpenClaw спробує виконати live-пошук у каталозі, якщо провайдер це підтримує.
|
||||
|
||||
## Загальні прапорці
|
||||
|
||||
- `--channel <name>`
|
||||
- `--account <id>`
|
||||
- `--target <dest>` (цільовий канал або користувач для send/poll/read/тощо)
|
||||
- `--targets <name>` (повторюється; лише для broadcast)
|
||||
- `--json`
|
||||
- `--dry-run`
|
||||
- `--verbose`
|
||||
|
||||
## Поведінка SecretRef
|
||||
|
||||
- `openclaw message` розв’язує підтримувані SecretRef каналу перед виконанням вибраної дії.
|
||||
- Розв’язання, коли це можливо, обмежується ціллю активної дії:
|
||||
- на рівні каналу, коли задано `--channel` (або його виведено з цілей із префіксом на кшталт `discord:...`)
|
||||
- на рівні облікового запису, коли задано `--account` (глобальні поверхні каналу + поверхні вибраного облікового запису)
|
||||
- коли `--account` пропущено, OpenClaw не примушує область SecretRef облікового запису `default`
|
||||
- Нерозв’язані SecretRef у не пов’язаних каналах не блокують цільову дію повідомлення.
|
||||
- Якщо SecretRef вибраного каналу/облікового запису не розв’язано, команда для цієї дії завершується за принципом fail closed.
|
||||
|
||||
## Дії
|
||||
|
||||
### Ядро
|
||||
|
||||
- `send`
|
||||
- Канали: WhatsApp/Telegram/Discord/Google Chat/Slack/Mattermost (Plugin)/Signal/iMessage/Matrix/Microsoft Teams
|
||||
- Обов’язково: `--target`, а також `--message`, `--media` або `--presentation`
|
||||
- Необов’язково: `--media`, `--presentation`, `--delivery`, `--pin`, `--reply-to`, `--thread-id`, `--gif-playback`, `--force-document`, `--silent`
|
||||
- Спільні корисні навантаження presentation: `--presentation` надсилає семантичні блоки (`text`, `context`, `divider`, `buttons`, `select`), які ядро рендерить через оголошені можливості вибраного каналу. Див. [Презентація повідомлень](/uk/plugins/message-presentation).
|
||||
- Узагальнені налаштування доставки: `--delivery` приймає підказки доставки, як-от `{ "pin": true }`; `--pin` — це скорочення для закріпленої доставки, коли канал це підтримує.
|
||||
- Лише Telegram: `--force-document` (надсилати зображення та GIF як документи, щоб уникнути стиснення Telegram)
|
||||
- Лише Telegram: `--thread-id` (id теми форуму)
|
||||
- Лише Slack: `--thread-id` (timestamp потоку; `--reply-to` використовує те саме поле)
|
||||
- Telegram + Discord: `--silent`
|
||||
- Лише WhatsApp: `--gif-playback`
|
||||
|
||||
- `poll`
|
||||
- Канали: WhatsApp/Telegram/Discord/Matrix/Microsoft Teams
|
||||
- Обов’язково: `--target`, `--poll-question`, `--poll-option` (повторюється)
|
||||
- Необов’язково: `--poll-multi`
|
||||
- Лише Discord: `--poll-duration-hours`, `--silent`, `--message`
|
||||
- Лише Telegram: `--poll-duration-seconds` (5-600), `--silent`, `--poll-anonymous` / `--poll-public`, `--thread-id`
|
||||
|
||||
- `react`
|
||||
- Канали: Discord/Google Chat/Slack/Telegram/WhatsApp/Signal/Matrix
|
||||
- Обов’язково: `--message-id`, `--target`
|
||||
- Необов’язково: `--emoji`, `--remove`, `--participant`, `--from-me`, `--target-author`, `--target-author-uuid`
|
||||
- Примітка: `--remove` потребує `--emoji` (пропустіть `--emoji`, щоб очистити власні реакції там, де це підтримується; див. /tools/reactions)
|
||||
- Лише WhatsApp: `--participant`, `--from-me`
|
||||
- Реакції в групах Signal: обов’язково `--target-author` або `--target-author-uuid`
|
||||
|
||||
- `reactions`
|
||||
- Канали: Discord/Google Chat/Slack/Matrix
|
||||
- Обов’язково: `--message-id`, `--target`
|
||||
- Необов’язково: `--limit`
|
||||
|
||||
- `read`
|
||||
- Канали: Discord/Slack/Matrix
|
||||
- Обов’язково: `--target`
|
||||
- Необов’язково: `--limit`, `--before`, `--after`
|
||||
- Лише Discord: `--around`
|
||||
|
||||
- `edit`
|
||||
- Канали: Discord/Slack/Matrix
|
||||
- Обов’язково: `--message-id`, `--message`, `--target`
|
||||
|
||||
- `delete`
|
||||
- Канали: Discord/Slack/Telegram/Matrix
|
||||
- Обов’язково: `--message-id`, `--target`
|
||||
|
||||
- `pin` / `unpin`
|
||||
- Канали: Discord/Slack/Matrix
|
||||
- Обов’язково: `--message-id`, `--target`
|
||||
|
||||
- `pins` (список)
|
||||
- Канали: Discord/Slack/Matrix
|
||||
- Обов’язково: `--target`
|
||||
|
||||
- `permissions`
|
||||
- Канали: Discord/Matrix
|
||||
- Обов’язково: `--target`
|
||||
- Лише Matrix: доступно, коли ввімкнено шифрування Matrix і дозволено дії верифікації
|
||||
|
||||
- `search`
|
||||
- Канали: Discord
|
||||
- Обов’язково: `--guild-id`, `--query`
|
||||
- Необов’язково: `--channel-id`, `--channel-ids` (повторюється), `--author-id`, `--author-ids` (повторюється), `--limit`
|
||||
|
||||
### Потоки
|
||||
|
||||
- `thread create`
|
||||
- Канали: Discord
|
||||
- Обов’язково: `--thread-name`, `--target` (id каналу)
|
||||
- Необов’язково: `--message-id`, `--message`, `--auto-archive-min`
|
||||
|
||||
- `thread list`
|
||||
- Канали: Discord
|
||||
- Обов’язково: `--guild-id`
|
||||
- Необов’язково: `--channel-id`, `--include-archived`, `--before`, `--limit`
|
||||
|
||||
- `thread reply`
|
||||
- Канали: Discord
|
||||
- Обов’язково: `--target` (id потоку), `--message`
|
||||
- Необов’язково: `--media`, `--reply-to`
|
||||
|
||||
### Emoji
|
||||
|
||||
- `emoji list`
|
||||
- Discord: `--guild-id`
|
||||
- Slack: без додаткових прапорців
|
||||
|
||||
- `emoji upload`
|
||||
- Канали: Discord
|
||||
- Обов’язково: `--guild-id`, `--emoji-name`, `--media`
|
||||
- Необов’язково: `--role-ids` (повторюється)
|
||||
|
||||
### Наліпки
|
||||
|
||||
- `sticker send`
|
||||
- Канали: Discord
|
||||
- Обов’язково: `--target`, `--sticker-id` (повторюється)
|
||||
- Необов’язково: `--message`
|
||||
|
||||
- `sticker upload`
|
||||
- Канали: Discord
|
||||
- Обов’язково: `--guild-id`, `--sticker-name`, `--sticker-desc`, `--sticker-tags`, `--media`
|
||||
|
||||
### Ролі / Канали / Учасники / Голос
|
||||
|
||||
- `role info` (Discord): `--guild-id`
|
||||
- `role add` / `role remove` (Discord): `--guild-id`, `--user-id`, `--role-id`
|
||||
- `channel info` (Discord): `--target`
|
||||
- `channel list` (Discord): `--guild-id`
|
||||
- `member info` (Discord/Slack): `--user-id` (+ `--guild-id` для Discord)
|
||||
- `voice status` (Discord): `--guild-id`, `--user-id`
|
||||
|
||||
### Події
|
||||
|
||||
- `event list` (Discord): `--guild-id`
|
||||
- `event create` (Discord): `--guild-id`, `--event-name`, `--start-time`
|
||||
- Необов’язково: `--end-time`, `--desc`, `--channel-id`, `--location`, `--event-type`
|
||||
|
||||
### Модерація (Discord)
|
||||
|
||||
- `timeout`: `--guild-id`, `--user-id` (необов’язково `--duration-min` або `--until`; пропустіть обидва, щоб очистити timeout)
|
||||
- `kick`: `--guild-id`, `--user-id` (+ `--reason`)
|
||||
- `ban`: `--guild-id`, `--user-id` (+ `--delete-days`, `--reason`)
|
||||
- `timeout` також підтримує `--reason`
|
||||
|
||||
### Broadcast
|
||||
|
||||
- `broadcast`
|
||||
- Канали: будь-який налаштований канал; використовуйте `--channel all`, щоб націлитися на всіх провайдерів
|
||||
- Обов’язково: `--targets <target...>`
|
||||
- Необов’язково: `--message`, `--media`, `--dry-run`
|
||||
|
||||
## Приклади
|
||||
|
||||
Надіслати відповідь у Discord:
|
||||
|
||||
```
|
||||
openclaw message send --channel discord \
|
||||
--target channel:123 --message "hi" --reply-to 456
|
||||
```
|
||||
|
||||
Надіслати повідомлення із семантичними кнопками:
|
||||
|
||||
```
|
||||
openclaw message send --channel discord \
|
||||
--target channel:123 --message "Choose:" \
|
||||
--presentation '{"blocks":[{"type":"buttons","buttons":[{"label":"Approve","value":"approve","style":"success"},{"label":"Decline","value":"decline","style":"danger"}]}]}'
|
||||
```
|
||||
|
||||
Ядро рендерить те саме корисне навантаження `presentation` у компоненти Discord, блоки Slack, вбудовані кнопки Telegram, props Mattermost або картки Teams/Feishu залежно від можливостей каналу. Повний контракт і правила резервного відображення див. у [Презентація повідомлень](/uk/plugins/message-presentation).
|
||||
|
||||
Надіслати розширене корисне навантаження presentation:
|
||||
|
||||
```bash
|
||||
openclaw message send --channel googlechat --target spaces/AAA... \
|
||||
--message "Choose:" \
|
||||
--presentation '{"title":"Deploy approval","tone":"warning","blocks":[{"type":"text","text":"Choose a path"},{"type":"buttons","buttons":[{"label":"Approve","value":"approve"},{"label":"Decline","value":"decline"}]}]}'
|
||||
```
|
||||
|
||||
Створити опитування в Discord:
|
||||
|
||||
```
|
||||
openclaw message poll --channel discord \
|
||||
--target channel:123 \
|
||||
--poll-question "Snack?" \
|
||||
--poll-option Pizza --poll-option Sushi \
|
||||
--poll-multi --poll-duration-hours 48
|
||||
```
|
||||
|
||||
Створити опитування в Telegram (автозакриття через 2 хвилини):
|
||||
|
||||
```
|
||||
openclaw message poll --channel telegram \
|
||||
--target @mychat \
|
||||
--poll-question "Lunch?" \
|
||||
--poll-option Pizza --poll-option Sushi \
|
||||
--poll-duration-seconds 120 --silent
|
||||
```
|
||||
|
||||
Надіслати проактивне повідомлення в Teams:
|
||||
|
||||
```
|
||||
openclaw message send --channel msteams \
|
||||
--target conversation:19:abc@thread.tacv2 --message "hi"
|
||||
```
|
||||
|
||||
Створити опитування в Teams:
|
||||
|
||||
```
|
||||
openclaw message poll --channel msteams \
|
||||
--target conversation:19:abc@thread.tacv2 \
|
||||
--poll-question "Lunch?" \
|
||||
--poll-option Pizza --poll-option Sushi
|
||||
```
|
||||
|
||||
Додати реакцію в Slack:
|
||||
|
||||
```
|
||||
openclaw message react --channel slack \
|
||||
--target C123 --message-id 456 --emoji "✅"
|
||||
```
|
||||
|
||||
Додати реакцію в групі Signal:
|
||||
|
||||
```
|
||||
openclaw message react --channel signal \
|
||||
--target signal:group:abc123 --message-id 1737630212345 \
|
||||
--emoji "✅" --target-author-uuid 123e4567-e89b-12d3-a456-426614174000
|
||||
```
|
||||
|
||||
Надіслати вбудовані кнопки Telegram через узагальнену presentation:
|
||||
|
||||
```
|
||||
openclaw message send --channel telegram --target @mychat --message "Choose:" \
|
||||
--presentation '{"blocks":[{"type":"buttons","buttons":[{"label":"Yes","value":"cmd:yes"},{"label":"No","value":"cmd:no"}]}]}'
|
||||
```
|
||||
|
||||
Надіслати картку Teams через узагальнену presentation:
|
||||
|
||||
```bash
|
||||
openclaw message send --channel msteams \
|
||||
--target conversation:19:abc@thread.tacv2 \
|
||||
--presentation '{"title":"Status update","blocks":[{"type":"text","text":"Build completed"}]}'
|
||||
```
|
||||
|
||||
Надіслати зображення Telegram як документ, щоб уникнути стиснення:
|
||||
|
||||
```bash
|
||||
openclaw message send --channel telegram --target @mychat \
|
||||
--media ./diagram.png --force-document
|
||||
```
|
||||
143
docs/uk/cli/models.md
Normal file
143
docs/uk/cli/models.md
Normal file
@ -0,0 +1,143 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете змінити типові моделі або переглянути стан auth провайдера
|
||||
- Ви хочете просканувати доступні моделі/провайдерів і налагодити профілі auth провайдера
|
||||
summary: Довідка CLI для `openclaw models` (status/list/set/scan, псевдоніми, резервні варіанти, auth)
|
||||
title: моделі
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:18:27Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 5b057688266bcb72fc9719837ae6a026bed9849ff04577949467363d83b6d069
|
||||
source_path: cli/models.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw models`
|
||||
|
||||
Виявлення, сканування та налаштування моделей (типова модель, резервні варіанти, профілі auth).
|
||||
|
||||
Пов’язано:
|
||||
|
||||
- Провайдери + моделі: [Моделі](/uk/providers/models)
|
||||
- Налаштування auth провайдера: [Початок роботи](/uk/start/getting-started)
|
||||
|
||||
## Поширені команди
|
||||
|
||||
```bash
|
||||
openclaw models status
|
||||
openclaw models list
|
||||
openclaw models set <model-or-alias>
|
||||
openclaw models scan
|
||||
```
|
||||
|
||||
`openclaw models status` показує визначені типові/резервні варіанти разом з оглядом auth.
|
||||
Коли доступні знімки використання провайдера, розділ стану OAuth/API key також містить
|
||||
вікна використання провайдера та знімки квот.
|
||||
Поточні провайдери з вікнами використання: Anthropic, GitHub Copilot, Gemini CLI, OpenAI
|
||||
Codex, MiniMax, Xiaomi і z.ai. Auth використання надходить із хуків,
|
||||
специфічних для провайдера, коли вони доступні; інакше OpenClaw повертається до зіставлення
|
||||
облікових даних OAuth/API key з профілів auth, env або config.
|
||||
У виводі `--json` `auth.providers` — це огляд провайдера з урахуванням
|
||||
env/config/store, тоді як `auth.oauth` — це лише стан профілів сховища auth.
|
||||
Додайте `--probe`, щоб виконати живі перевірки auth для кожного налаштованого профілю провайдера.
|
||||
Перевірки є реальними запитами (можуть витрачати токени й спричиняти обмеження частоти).
|
||||
Використовуйте `--agent <id>`, щоб перевірити стан моделі/auth для налаштованого агента. Якщо параметр не вказано,
|
||||
команда використовує `OPENCLAW_AGENT_DIR`/`PI_CODING_AGENT_DIR`, якщо їх задано, інакше —
|
||||
типовий налаштований агент.
|
||||
Рядки перевірок можуть походити з профілів auth, облікових даних env або `models.json`.
|
||||
|
||||
Примітки:
|
||||
|
||||
- `models set <model-or-alias>` приймає `provider/model` або псевдонім.
|
||||
- `models list --all` включає рядки статичного каталогу, які належать bundled-провайдерам,
|
||||
навіть якщо ви ще не пройшли автентифікацію в цього провайдера. Такі рядки все одно
|
||||
показуються як недоступні, доки не буде налаштовано відповідний auth.
|
||||
- Посилання на моделі аналізуються розділенням за **першим** символом `/`. Якщо ID моделі містить `/` (у стилі OpenRouter), додайте префікс провайдера (приклад: `openrouter/moonshotai/kimi-k2`).
|
||||
- Якщо ви не вказали провайдера, OpenClaw спочатку визначає введення як псевдонім, потім —
|
||||
як унікальний збіг налаштованого провайдера для цього точного id моделі, і лише після цього
|
||||
повертається до типового налаштованого провайдера з попередженням про застарілість.
|
||||
Якщо цей провайдер більше не надає налаштовану типову модель, OpenClaw
|
||||
повертається до першого налаштованого провайдера/моделі замість показу
|
||||
застарілого типового значення для видаленого провайдера.
|
||||
- `models status` може показувати `marker(<value>)` у виводі auth для незасекречених заповнювачів (наприклад `OPENAI_API_KEY`, `secretref-managed`, `minimax-oauth`, `oauth:chutes`, `ollama-local`) замість маскування їх як секретів.
|
||||
|
||||
### `models status`
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--json`
|
||||
- `--plain`
|
||||
- `--check` (код виходу 1=прострочено/відсутнє, 2=скоро спливає)
|
||||
- `--probe` (жива перевірка налаштованих профілів auth)
|
||||
- `--probe-provider <name>` (перевірити один провайдер)
|
||||
- `--probe-profile <id>` (повторювані або перелічені через кому id профілів)
|
||||
- `--probe-timeout <ms>`
|
||||
- `--probe-concurrency <n>`
|
||||
- `--probe-max-tokens <n>`
|
||||
- `--agent <id>` (id налаштованого агента; перевизначає `OPENCLAW_AGENT_DIR`/`PI_CODING_AGENT_DIR`)
|
||||
|
||||
Категорії станів перевірок:
|
||||
|
||||
- `ok`
|
||||
- `auth`
|
||||
- `rate_limit`
|
||||
- `billing`
|
||||
- `timeout`
|
||||
- `format`
|
||||
- `unknown`
|
||||
- `no_model`
|
||||
|
||||
Варіанти detail/reason-code перевірок, яких варто очікувати:
|
||||
|
||||
- `excluded_by_auth_order`: збережений профіль існує, але явний
|
||||
`auth.order.<provider>` його пропустив, тому перевірка повідомляє про виключення замість
|
||||
спроби використання.
|
||||
- `missing_credential`, `invalid_expires`, `expired`, `unresolved_ref`:
|
||||
профіль наявний, але не є придатним/визначуваним.
|
||||
- `no_model`: auth провайдера існує, але OpenClaw не зміг визначити придатний
|
||||
кандидат моделі для перевірки для цього провайдера.
|
||||
|
||||
## Псевдоніми + резервні варіанти
|
||||
|
||||
```bash
|
||||
openclaw models aliases list
|
||||
openclaw models fallbacks list
|
||||
```
|
||||
|
||||
## Профілі auth
|
||||
|
||||
```bash
|
||||
openclaw models auth add
|
||||
openclaw models auth login --provider <id>
|
||||
openclaw models auth setup-token --provider <id>
|
||||
openclaw models auth paste-token
|
||||
```
|
||||
|
||||
`models auth add` — це інтерактивний помічник auth. Він може запускати потік auth провайдера
|
||||
(OAuth/API key) або провести вас через ручне вставлення токена, залежно від
|
||||
обраного провайдера.
|
||||
|
||||
`models auth login` запускає потік auth plugin провайдера (OAuth/API key). Використовуйте
|
||||
`openclaw plugins list`, щоб побачити, які провайдери встановлено.
|
||||
|
||||
Приклади:
|
||||
|
||||
```bash
|
||||
openclaw models auth login --provider openai-codex --set-default
|
||||
```
|
||||
|
||||
Примітки:
|
||||
|
||||
- `setup-token` і `paste-token` залишаються загальними командами для токенів для провайдерів,
|
||||
які надають методи auth через токен.
|
||||
- `setup-token` потребує інтерактивного TTY і запускає метод токен-auth провайдера
|
||||
(типово — метод `setup-token` цього провайдера, якщо він його надає).
|
||||
- `paste-token` приймає рядок токена, створений деінде або автоматизацією.
|
||||
- `paste-token` вимагає `--provider`, запитує значення токена та записує
|
||||
його до типового id профілю `<provider>:manual`, якщо ви не передали
|
||||
`--profile-id`.
|
||||
- `paste-token --expires-in <duration>` зберігає абсолютний час завершення дії токена з
|
||||
відносної тривалості, наприклад `365d` або `12h`.
|
||||
- Примітка щодо Anthropic: співробітники Anthropic повідомили нам, що використання Claude CLI у стилі OpenClaw знову дозволене, тому OpenClaw вважає повторне використання Claude CLI та використання `claude -p` дозволеними для цієї інтеграції, якщо Anthropic не опублікує нову політику.
|
||||
- `setup-token` / `paste-token` для Anthropic залишаються доступними як підтримуваний шлях токена OpenClaw, але тепер OpenClaw віддає перевагу повторному використанню Claude CLI і `claude -p`, коли це можливо.
|
||||
135
docs/uk/cli/node.md
Normal file
135
docs/uk/cli/node.md
Normal file
@ -0,0 +1,135 @@
|
||||
---
|
||||
read_when:
|
||||
- Запуск headless-хоста node
|
||||
- Сполучення node не на macOS для system.run
|
||||
summary: Довідка CLI для `openclaw node` (headless-хост node)
|
||||
title: node
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:18:36Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 6123b33ec46f2b85f2c815947435ac91bbe84456165ff0e504453356da55b46d
|
||||
source_path: cli/node.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw node`
|
||||
|
||||
Запустити **headless-хост node**, який підключається до WebSocket Gateway і надає
|
||||
`system.run` / `system.which` на цій машині.
|
||||
|
||||
## Навіщо використовувати хост node?
|
||||
|
||||
Використовуйте хост node, коли хочете, щоб агенти **виконували команди на інших машинах** у вашій мережі без установлення повноцінного допоміжного застосунку macOS на цих машинах.
|
||||
|
||||
Поширені сценарії використання:
|
||||
|
||||
- Виконання команд на віддалених Linux/Windows-машинах (сервери збірки, лабораторні машини, NAS).
|
||||
- Залишити exec **ізольованим** на gateway, але делегувати дозволені запуски іншим хостам.
|
||||
- Надати легку, headless-ціль виконання для автоматизації або CI-вузлів.
|
||||
|
||||
Виконання, як і раніше, захищене **погодженнями exec** та списками дозволів для кожного агента на хості node, тож ви можете зберігати доступ до команд обмеженим і явним.
|
||||
|
||||
## Проксі браузера (нульова конфігурація)
|
||||
|
||||
Хости node автоматично оголошують проксі браузера, якщо `browser.enabled` не вимкнено на node. Це дає змогу агенту використовувати автоматизацію браузера на цій node без додаткового налаштування.
|
||||
|
||||
Типово проксі надає звичайну поверхню профілів браузера цієї node. Якщо ви встановите `nodeHost.browserProxy.allowProfiles`, проксі стане обмежувальним:
|
||||
звернення до профілів, яких немає в allowlist, буде відхилено, а маршрути створення/видалення постійних профілів через проксі буде заблоковано.
|
||||
|
||||
За потреби вимкніть його на node:
|
||||
|
||||
```json5
|
||||
{
|
||||
nodeHost: {
|
||||
browserProxy: {
|
||||
enabled: false,
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
## Запуск (передній план)
|
||||
|
||||
```bash
|
||||
openclaw node run --host <gateway-host> --port 18789
|
||||
```
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--host <host>`: хост WebSocket Gateway (типово: `127.0.0.1`)
|
||||
- `--port <port>`: порт WebSocket Gateway (типово: `18789`)
|
||||
- `--tls`: використовувати TLS для з’єднання з gateway
|
||||
- `--tls-fingerprint <sha256>`: очікуваний відбиток сертифіката TLS (sha256)
|
||||
- `--node-id <id>`: перевизначити id node (очищає токен pairing)
|
||||
- `--display-name <name>`: перевизначити відображуване ім’я node
|
||||
|
||||
## Автентифікація Gateway для хоста node
|
||||
|
||||
`openclaw node run` і `openclaw node install` визначають автентифікацію gateway із config/env (у командах node немає прапорців `--token`/`--password`):
|
||||
|
||||
- Спочатку перевіряються `OPENCLAW_GATEWAY_TOKEN` / `OPENCLAW_GATEWAY_PASSWORD`.
|
||||
- Потім використовується резервний варіант із локальної конфігурації: `gateway.auth.token` / `gateway.auth.password`.
|
||||
- У локальному режимі хост node навмисно не успадковує `gateway.remote.token` / `gateway.remote.password`.
|
||||
- Якщо `gateway.auth.token` / `gateway.auth.password` явно налаштовано через SecretRef і не розв’язано, визначення автентифікації node завершується за принципом fail closed (без маскування резервним віддаленим варіантом).
|
||||
- У `gateway.mode=remote` поля віддаленого клієнта (`gateway.remote.token` / `gateway.remote.password`) також можуть використовуватися відповідно до правил пріоритету для віддаленого режиму.
|
||||
- Визначення автентифікації хоста node враховує лише змінні середовища `OPENCLAW_GATEWAY_*`.
|
||||
|
||||
## Сервіс (фоновий режим)
|
||||
|
||||
Установити headless-хост node як сервіс користувача.
|
||||
|
||||
```bash
|
||||
openclaw node install --host <gateway-host> --port 18789
|
||||
```
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--host <host>`: хост WebSocket Gateway (типово: `127.0.0.1`)
|
||||
- `--port <port>`: порт WebSocket Gateway (типово: `18789`)
|
||||
- `--tls`: використовувати TLS для з’єднання з gateway
|
||||
- `--tls-fingerprint <sha256>`: очікуваний відбиток сертифіката TLS (sha256)
|
||||
- `--node-id <id>`: перевизначити id node (очищає токен pairing)
|
||||
- `--display-name <name>`: перевизначити відображуване ім’я node
|
||||
- `--runtime <runtime>`: runtime сервісу (`node` або `bun`)
|
||||
- `--force`: перевстановити/перезаписати, якщо вже встановлено
|
||||
|
||||
Керування сервісом:
|
||||
|
||||
```bash
|
||||
openclaw node status
|
||||
openclaw node stop
|
||||
openclaw node restart
|
||||
openclaw node uninstall
|
||||
```
|
||||
|
||||
Використовуйте `openclaw node run` для хоста node в передньому плані (без сервісу).
|
||||
|
||||
Команди сервісу приймають `--json` для машинозчитуваного виводу.
|
||||
|
||||
## Pairing
|
||||
|
||||
Перше підключення створює запит на pairing пристрою в стані очікування (`role: node`) на Gateway.
|
||||
Погодьте його через:
|
||||
|
||||
```bash
|
||||
openclaw devices list
|
||||
openclaw devices approve <requestId>
|
||||
```
|
||||
|
||||
Якщо node повторює спробу pairing зі зміненими даними автентифікації (role/scopes/public key),
|
||||
попередній запит у стані очікування замінюється, і створюється новий `requestId`.
|
||||
Перед погодженням знову виконайте `openclaw devices list`.
|
||||
|
||||
Хост node зберігає id node, токен, відображуване ім’я та інформацію про з’єднання з gateway у
|
||||
`~/.openclaw/node.json`.
|
||||
|
||||
## Погодження exec
|
||||
|
||||
`system.run` обмежується локальними погодженнями exec:
|
||||
|
||||
- `~/.openclaw/exec-approvals.json`
|
||||
- [Погодження exec](/uk/tools/exec-approvals)
|
||||
- `openclaw approvals --node <id|name|ip>` (редагування з Gateway)
|
||||
|
||||
Для дозволеного асинхронного exec на node OpenClaw готує канонічний `systemRunPlan` перед запитом погодження. Пізніше переспрямування погодженого `system.run` повторно використовує цей збережений план, тому зміни до полів command/cwd/session після створення запиту на погодження відхиляються замість того, щоб змінювати те, що виконує node.
|
||||
73
docs/uk/cli/nodes.md
Normal file
73
docs/uk/cli/nodes.md
Normal file
@ -0,0 +1,73 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви керуєте сполученими вузлами (cameras, screen, canvas)
|
||||
- Вам потрібно схвалити запити або викликати команди вузла
|
||||
summary: Довідка CLI для `openclaw nodes` (статус, сполучення, виклик, camera/canvas/screen)
|
||||
title: вузли
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:18:48Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 1ce3095591c4623ad18e3eca8d8083e5c10266fbf94afea2d025f0ba8093a175
|
||||
source_path: cli/nodes.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw nodes`
|
||||
|
||||
Керуйте сполученими вузлами (пристроями) і викликайте можливості вузлів.
|
||||
|
||||
Пов’язане:
|
||||
|
||||
- Огляд вузлів: [Вузли](/uk/nodes)
|
||||
- Камера: [Вузли камери](/uk/nodes/camera)
|
||||
- Зображення: [Вузли зображень](/uk/nodes/images)
|
||||
|
||||
Поширені параметри:
|
||||
|
||||
- `--url`, `--token`, `--timeout`, `--json`
|
||||
|
||||
## Поширені команди
|
||||
|
||||
```bash
|
||||
openclaw nodes list
|
||||
openclaw nodes list --connected
|
||||
openclaw nodes list --last-connected 24h
|
||||
openclaw nodes pending
|
||||
openclaw nodes approve <requestId>
|
||||
openclaw nodes reject <requestId>
|
||||
openclaw nodes rename --node <id|name|ip> --name <displayName>
|
||||
openclaw nodes status
|
||||
openclaw nodes status --connected
|
||||
openclaw nodes status --last-connected 24h
|
||||
```
|
||||
|
||||
`nodes list` виводить таблиці очікуваних запитів і сполучених вузлів. Рядки сполучених вузлів містять час від останнього підключення (Last Connect).
|
||||
Використовуйте `--connected`, щоб показувати лише вузли, підключені зараз. Використовуйте `--last-connected <duration>`, щоб
|
||||
відфільтрувати вузли, які підключалися протягом заданого проміжку часу (наприклад, `24h`, `7d`).
|
||||
|
||||
Примітка щодо схвалення:
|
||||
|
||||
- `openclaw nodes pending` потребує лише області дії сполучення.
|
||||
- `openclaw nodes approve <requestId>` успадковує додаткові вимоги до областей дії з
|
||||
очікуваного запиту:
|
||||
- запит без команд: лише сполучення
|
||||
- команди вузла без exec: сполучення + запис
|
||||
- `system.run` / `system.run.prepare` / `system.which`: сполучення + адміністрування
|
||||
|
||||
## Виклик
|
||||
|
||||
```bash
|
||||
openclaw nodes invoke --node <id|name|ip> --command <command> --params <json>
|
||||
```
|
||||
|
||||
Прапорці виклику:
|
||||
|
||||
- `--params <json>`: рядок об’єкта JSON (за замовчуванням `{}`).
|
||||
- `--invoke-timeout <ms>`: тайм-аут виклику вузла (за замовчуванням `15000`).
|
||||
- `--idempotency-key <key>`: необов’язковий ключ ідемпотентності.
|
||||
- `system.run` і `system.run.prepare` тут заблоковані; для виконання в оболонці використовуйте інструмент `exec` з `host=node`.
|
||||
|
||||
Для виконання команд оболонки на вузлі використовуйте інструмент `exec` з `host=node` замість `openclaw nodes run`.
|
||||
CLI `nodes` тепер зосереджений на можливостях: прямий RPC через `nodes invoke`, а також сполучення, camera,
|
||||
screen, location, canvas і сповіщення.
|
||||
189
docs/uk/cli/onboard.md
Normal file
189
docs/uk/cli/onboard.md
Normal file
@ -0,0 +1,189 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете кероване налаштування Gateway, робочого простору, автентифікації, каналів і Skills
|
||||
summary: Довідник CLI для `openclaw onboard` (інтерактивне початкове налаштування)
|
||||
title: початкове налаштування
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:18:45Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 348ee9cbc14ff78b588f10297e728473668a72f9f16be385f25022bf5108340c
|
||||
source_path: cli/onboard.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw onboard`
|
||||
|
||||
Інтерактивне початкове налаштування для локального або віддаленого налаштування Gateway.
|
||||
|
||||
## Пов’язані посібники
|
||||
|
||||
- Центр початкового налаштування CLI: [Onboarding (CLI)](/uk/start/wizard)
|
||||
- Огляд початкового налаштування: [Onboarding Overview](/uk/start/onboarding-overview)
|
||||
- Довідник CLI початкового налаштування: [CLI Setup Reference](/uk/start/wizard-cli-reference)
|
||||
- Автоматизація CLI: [CLI Automation](/uk/start/wizard-cli-automation)
|
||||
- Початкове налаштування macOS: [Onboarding (macOS App)](/uk/start/onboarding)
|
||||
|
||||
## Приклади
|
||||
|
||||
```bash
|
||||
openclaw onboard
|
||||
openclaw onboard --flow quickstart
|
||||
openclaw onboard --flow manual
|
||||
openclaw onboard --mode remote --remote-url wss://gateway-host:18789
|
||||
```
|
||||
|
||||
Для plaintext-цілей `ws://` у приватній мережі (лише для довірених мереж) установіть
|
||||
`OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1` у середовищі процесу початкового налаштування.
|
||||
|
||||
Неінтерактивний custom provider:
|
||||
|
||||
```bash
|
||||
openclaw onboard --non-interactive \
|
||||
--auth-choice custom-api-key \
|
||||
--custom-base-url "https://llm.example.com/v1" \
|
||||
--custom-model-id "foo-large" \
|
||||
--custom-api-key "$CUSTOM_API_KEY" \
|
||||
--secret-input-mode plaintext \
|
||||
--custom-compatibility openai
|
||||
```
|
||||
|
||||
`--custom-api-key` є необов’язковим у неінтерактивному режимі. Якщо його не вказано, початкове налаштування перевіряє `CUSTOM_API_KEY`.
|
||||
|
||||
LM Studio також підтримує прапорець ключа, специфічний для провайдера, у неінтерактивному режимі:
|
||||
|
||||
```bash
|
||||
openclaw onboard --non-interactive \
|
||||
--auth-choice lmstudio \
|
||||
--custom-base-url "http://localhost:1234/v1" \
|
||||
--custom-model-id "qwen/qwen3.5-9b" \
|
||||
--lmstudio-api-key "$LM_API_TOKEN" \
|
||||
--accept-risk
|
||||
```
|
||||
|
||||
Неінтерактивний Ollama:
|
||||
|
||||
```bash
|
||||
openclaw onboard --non-interactive \
|
||||
--auth-choice ollama \
|
||||
--custom-base-url "http://ollama-host:11434" \
|
||||
--custom-model-id "qwen3.5:27b" \
|
||||
--accept-risk
|
||||
```
|
||||
|
||||
`--custom-base-url` типово дорівнює `http://127.0.0.1:11434`. `--custom-model-id` є необов’язковим; якщо його не вказано, початкове налаштування використовує типові значення, запропоновані Ollama. Cloud model ID, такі як `kimi-k2.5:cloud`, також тут працюють.
|
||||
|
||||
Зберігайте ключі провайдерів як refs замість plaintext:
|
||||
|
||||
```bash
|
||||
openclaw onboard --non-interactive \
|
||||
--auth-choice openai-api-key \
|
||||
--secret-input-mode ref \
|
||||
--accept-risk
|
||||
```
|
||||
|
||||
З `--secret-input-mode ref` початкове налаштування записує refs, підкріплені env, замість plaintext-значень ключів.
|
||||
Для провайдерів, що використовують auth-profile, це записує записи `keyRef`; для custom providers це записує `models.providers.<id>.apiKey` як env ref (наприклад `{ source: "env", provider: "default", id: "CUSTOM_API_KEY" }`).
|
||||
|
||||
Контракт неінтерактивного режиму `ref`:
|
||||
|
||||
- Установіть env var провайдера в середовищі процесу початкового налаштування (наприклад, `OPENAI_API_KEY`).
|
||||
- Не передавайте inline-прапорці ключів (наприклад, `--openai-api-key`), якщо цей env var також не встановлено.
|
||||
- Якщо inline-прапорець ключа передано без потрібного env var, початкове налаштування одразу завершується з помилкою та підказками.
|
||||
|
||||
Параметри токена Gateway у неінтерактивному режимі:
|
||||
|
||||
- `--gateway-auth token --gateway-token <token>` зберігає plaintext-токен.
|
||||
- `--gateway-auth token --gateway-token-ref-env <name>` зберігає `gateway.auth.token` як env SecretRef.
|
||||
- `--gateway-token` і `--gateway-token-ref-env` є взаємовиключними.
|
||||
- `--gateway-token-ref-env` потребує непорожній env var у середовищі процесу початкового налаштування.
|
||||
- З `--install-daemon`, коли автентифікація токеном потребує токена, токени Gateway, якими керує SecretRef, перевіряються, але не зберігаються як визначений plaintext у метаданих середовища сервісу supervisor.
|
||||
- З `--install-daemon`, якщо режим токена потребує токена, а налаштований token SecretRef не визначено, початкове налаштування завершується з відмовою за замовчуванням і підказками щодо виправлення.
|
||||
- З `--install-daemon`, якщо налаштовано і `gateway.auth.token`, і `gateway.auth.password`, а `gateway.auth.mode` не встановлено, початкове налаштування блокує встановлення, доки режим не буде явно задано.
|
||||
- Локальне початкове налаштування записує `gateway.mode="local"` у конфігурацію. Якщо в пізнішому файлі конфігурації бракує `gateway.mode`, вважайте це пошкодженням конфігурації або неповним ручним редагуванням, а не допустимим скороченням для локального режиму.
|
||||
- `--allow-unconfigured` — це окремий аварійний механізм runtime Gateway. Він не означає, що початкове налаштування може пропустити `gateway.mode`.
|
||||
|
||||
Приклад:
|
||||
|
||||
```bash
|
||||
export OPENCLAW_GATEWAY_TOKEN="your-token"
|
||||
openclaw onboard --non-interactive \
|
||||
--mode local \
|
||||
--auth-choice skip \
|
||||
--gateway-auth token \
|
||||
--gateway-token-ref-env OPENCLAW_GATEWAY_TOKEN \
|
||||
--accept-risk
|
||||
```
|
||||
|
||||
Стан локального Gateway у неінтерактивному режимі:
|
||||
|
||||
- Якщо ви не передасте `--skip-health`, початкове налаштування чекає на доступний локальний Gateway, перш ніж успішно завершитися.
|
||||
- `--install-daemon` спочатку запускає керований шлях встановлення Gateway. Без нього у вас уже має працювати локальний Gateway, наприклад `openclaw gateway run`.
|
||||
- Якщо в автоматизації вам потрібні лише записи конфігурації/робочого простору/bootstrap, використовуйте `--skip-health`.
|
||||
- У native Windows `--install-daemon` спочатку пробує Scheduled Tasks і повертається до елемента входу в папці Startup для конкретного користувача, якщо створення завдання заборонено.
|
||||
|
||||
Поведінка інтерактивного початкового налаштування в режимі reference:
|
||||
|
||||
- Виберіть **Use secret reference**, коли з’явиться відповідний запит.
|
||||
- Потім виберіть один із варіантів:
|
||||
- Змінна середовища
|
||||
- Налаштований secret provider (`file` або `exec`)
|
||||
- Перед збереженням ref початкове налаштування виконує швидку попередню перевірку.
|
||||
- Якщо перевірка не пройде, початкове налаштування покаже помилку й дозволить повторити спробу.
|
||||
|
||||
Неінтерактивні варіанти endpoint для Z.AI:
|
||||
|
||||
Примітка: `--auth-choice zai-api-key` тепер автоматично визначає найкращий endpoint Z.AI для вашого ключа (надає перевагу загальному API з `zai/glm-5.1`).
|
||||
Якщо вам потрібні саме endpoint GLM Coding Plan, виберіть `zai-coding-global` або `zai-coding-cn`.
|
||||
|
||||
```bash
|
||||
# Вибір endpoint без запитів
|
||||
openclaw onboard --non-interactive \
|
||||
--auth-choice zai-coding-global \
|
||||
--zai-api-key "$ZAI_API_KEY"
|
||||
|
||||
# Інші варіанти endpoint Z.AI:
|
||||
# --auth-choice zai-coding-cn
|
||||
# --auth-choice zai-global
|
||||
# --auth-choice zai-cn
|
||||
```
|
||||
|
||||
Неінтерактивний приклад Mistral:
|
||||
|
||||
```bash
|
||||
openclaw onboard --non-interactive \
|
||||
--auth-choice mistral-api-key \
|
||||
--mistral-api-key "$MISTRAL_API_KEY"
|
||||
```
|
||||
|
||||
Примітки щодо flow:
|
||||
|
||||
- `quickstart`: мінімум запитів, автоматично генерує токен Gateway.
|
||||
- `manual`: повні запити для порту/прив’язки/автентифікації (псевдонім `advanced`).
|
||||
- Коли вибір автентифікації передбачає preferred provider, початкове налаштування попередньо фільтрує
|
||||
засоби вибору моделі за замовчуванням і allowlist за цим провайдером. Для Volcengine і
|
||||
BytePlus це також відповідає варіантам coding-plan
|
||||
(`volcengine-plan/*`, `byteplus-plan/*`).
|
||||
- Якщо фільтр preferred-provider поки що не дає жодних завантажених моделей, початкове налаштування
|
||||
повертається до нефільтрованого каталогу замість того, щоб залишати засіб вибору порожнім.
|
||||
- На кроці вебпошуку деякі провайдери можуть запускати
|
||||
додаткові запити, специфічні для провайдера:
|
||||
- **Grok** може запропонувати необов’язкове налаштування `x_search` з тим самим `XAI_API_KEY`
|
||||
і вибором моделі `x_search`.
|
||||
- **Kimi** може запитати регіон API Moonshot (`api.moonshot.ai` чи
|
||||
`api.moonshot.cn`) і типову модель вебпошуку Kimi.
|
||||
- Поведінка області DM під час локального початкового налаштування: [CLI Setup Reference](/uk/start/wizard-cli-reference#outputs-and-internals).
|
||||
- Найшвидший перший чат: `openclaw dashboard` (Control UI, без налаштування каналів).
|
||||
- Custom Provider: підключіть будь-який endpoint, сумісний з OpenAI або Anthropic,
|
||||
включно з хостованими провайдерами, яких немає в списку. Використовуйте Unknown для автовизначення.
|
||||
|
||||
## Типові наступні команди
|
||||
|
||||
```bash
|
||||
openclaw configure
|
||||
openclaw agents add <name>
|
||||
```
|
||||
|
||||
<Note>
|
||||
`--json` не означає неінтерактивний режим. Для скриптів використовуйте `--non-interactive`.
|
||||
</Note>
|
||||
72
docs/uk/cli/pairing.md
Normal file
72
docs/uk/cli/pairing.md
Normal file
@ -0,0 +1,72 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви використовуєте DM у режимі сполучення й вам потрібно підтверджувати відправників
|
||||
summary: Довідка CLI для `openclaw pairing` (підтвердження/перегляд запитів на сполучення)
|
||||
title: сполучення
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:18:54Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 122a608ef83ec2b1011fdfd1b59b94950a4dcc8b598335b0956e2eedece4958f
|
||||
source_path: cli/pairing.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw pairing`
|
||||
|
||||
Підтверджуйте або переглядайте запити на DM-сполучення (для каналів, що підтримують сполучення).
|
||||
|
||||
Пов’язано:
|
||||
|
||||
- Потік сполучення: [Сполучення](/uk/channels/pairing)
|
||||
|
||||
## Команди
|
||||
|
||||
```bash
|
||||
openclaw pairing list telegram
|
||||
openclaw pairing list --channel telegram --account work
|
||||
openclaw pairing list telegram --json
|
||||
|
||||
openclaw pairing approve <code>
|
||||
openclaw pairing approve telegram <code>
|
||||
openclaw pairing approve --channel telegram --account work <code> --notify
|
||||
```
|
||||
|
||||
## `pairing list`
|
||||
|
||||
Показати список очікуваних запитів на сполучення для одного каналу.
|
||||
|
||||
Параметри:
|
||||
|
||||
- `[channel]`: позиційний id каналу
|
||||
- `--channel <channel>`: явний id каналу
|
||||
- `--account <accountId>`: id облікового запису для каналів із кількома обліковими записами
|
||||
- `--json`: машинозчитуваний вивід
|
||||
|
||||
Примітки:
|
||||
|
||||
- Якщо налаштовано кілька каналів, що підтримують сполучення, ви маєте вказати канал або позиційно, або через `--channel`.
|
||||
- Канали extension дозволені, якщо id каналу є коректним.
|
||||
|
||||
## `pairing approve`
|
||||
|
||||
Підтвердити код очікуваного сполучення і дозволити цього відправника.
|
||||
|
||||
Використання:
|
||||
|
||||
- `openclaw pairing approve <channel> <code>`
|
||||
- `openclaw pairing approve --channel <channel> <code>`
|
||||
- `openclaw pairing approve <code>`, коли налаштовано рівно один канал, що підтримує сполучення
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--channel <channel>`: явний id каналу
|
||||
- `--account <accountId>`: id облікового запису для каналів із кількома обліковими записами
|
||||
- `--notify`: надіслати підтвердження назад запитувачу в тому самому каналі
|
||||
|
||||
## Примітки
|
||||
|
||||
- Вхідне значення каналу: передавайте його позиційно (`pairing list telegram`) або через `--channel <channel>`.
|
||||
- `pairing list` підтримує `--account <accountId>` для каналів із кількома обліковими записами.
|
||||
- `pairing approve` підтримує `--account <accountId>` і `--notify`.
|
||||
- Якщо налаштовано лише один канал, що підтримує сполучення, дозволено `pairing approve <code>`.
|
||||
325
docs/uk/cli/plugins.md
Normal file
325
docs/uk/cli/plugins.md
Normal file
@ -0,0 +1,325 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете встановити або керувати plugin для Gateway чи сумісними пакетами
|
||||
- Ви хочете налагодити збої завантаження plugin
|
||||
summary: Довідка CLI для `openclaw plugins` (список, установлення, marketplace, видалення, увімкнення/вимкнення, doctor)
|
||||
title: plugins
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:19:00Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: ad76a8068054d145db578ed01f1fb0726fff884c48d256ad8c0b708a516cd727
|
||||
source_path: cli/plugins.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw plugins`
|
||||
|
||||
Керуйте plugin для Gateway, пакетами хуків і сумісними пакетами.
|
||||
|
||||
Пов’язане:
|
||||
|
||||
- Система plugin: [Plugins](/uk/tools/plugin)
|
||||
- Сумісність пакетів: [Пакети plugin](/uk/plugins/bundles)
|
||||
- Маніфест plugin + схема: [Маніфест plugin](/uk/plugins/manifest)
|
||||
- Посилення безпеки: [Безпека](/uk/gateway/security)
|
||||
|
||||
## Команди
|
||||
|
||||
```bash
|
||||
openclaw plugins list
|
||||
openclaw plugins list --enabled
|
||||
openclaw plugins list --verbose
|
||||
openclaw plugins list --json
|
||||
openclaw plugins install <path-or-spec>
|
||||
openclaw plugins inspect <id>
|
||||
openclaw plugins inspect <id> --json
|
||||
openclaw plugins inspect --all
|
||||
openclaw plugins info <id>
|
||||
openclaw plugins enable <id>
|
||||
openclaw plugins disable <id>
|
||||
openclaw plugins uninstall <id>
|
||||
openclaw plugins doctor
|
||||
openclaw plugins update <id-or-npm-spec>
|
||||
openclaw plugins update --all
|
||||
openclaw plugins marketplace list <marketplace>
|
||||
openclaw plugins marketplace list <marketplace> --json
|
||||
```
|
||||
|
||||
Вбудовані plugins постачаються разом з OpenClaw. Деякі з них увімкнені типово (наприклад,
|
||||
вбудовані провайдери моделей, вбудовані провайдери мовлення та вбудований plugin браузера);
|
||||
інші потребують `plugins enable`.
|
||||
|
||||
Рідні plugins OpenClaw мають постачатися з `openclaw.plugin.json` із вбудованою JSON-схемою
|
||||
(`configSchema`, навіть якщо вона порожня). Сумісні пакети натомість використовують власні маніфести пакетів.
|
||||
|
||||
`plugins list` показує `Format: openclaw` або `Format: bundle`. Докладний вивід list/info
|
||||
також показує підтип пакета (`codex`, `claude` або `cursor`) плюс виявлені можливості пакета.
|
||||
|
||||
### Установлення
|
||||
|
||||
```bash
|
||||
openclaw plugins install <package> # спочатку ClawHub, потім npm
|
||||
openclaw plugins install clawhub:<package> # лише ClawHub
|
||||
openclaw plugins install <package> --force # перезаписати наявне встановлення
|
||||
openclaw plugins install <package> --pin # закріпити версію
|
||||
openclaw plugins install <package> --dangerously-force-unsafe-install
|
||||
openclaw plugins install <path> # локальний шлях
|
||||
openclaw plugins install <plugin>@<marketplace> # marketplace
|
||||
openclaw plugins install <plugin> --marketplace <name> # marketplace (явно)
|
||||
openclaw plugins install <plugin> --marketplace https://github.com/<owner>/<repo>
|
||||
```
|
||||
|
||||
Спочатку для простих назв пакетів виконується перевірка у ClawHub, а потім у npm. Примітка щодо безпеки:
|
||||
ставтеся до встановлення plugin так, ніби ви запускаєте код. Віддавайте перевагу закріпленим версіям.
|
||||
|
||||
Якщо конфігурація невалідна, `plugins install` зазвичай завершується за принципом fail closed і повідомляє, що спочатку
|
||||
потрібно виконати `openclaw doctor --fix`. Єдиний задокументований виняток — вузький шлях
|
||||
відновлення для вбудованого plugin, який явно ввімкнув
|
||||
`openclaw.install.allowInvalidConfigRecovery`.
|
||||
|
||||
`--force` повторно використовує наявну ціль установлення та перезаписує вже встановлений
|
||||
plugin або пакет хуків на місці. Використовуйте цей параметр, коли ви навмисно перевстановлюєте
|
||||
той самий id з нового локального шляху, архіву, пакета ClawHub або артефакту npm.
|
||||
Для звичайних оновлень уже відстежуваного npm plugin краще використовувати
|
||||
`openclaw plugins update <id-or-npm-spec>`.
|
||||
|
||||
`--pin` застосовується лише до встановлень npm. Він не підтримується з `--marketplace`,
|
||||
оскільки встановлення через marketplace зберігають метадані джерела marketplace замість
|
||||
специфікації npm.
|
||||
|
||||
`--dangerously-force-unsafe-install` — це аварійний параметр для хибнопозитивних спрацьовувань
|
||||
вбудованого сканера небезпечного коду. Він дозволяє продовжити встановлення навіть тоді,
|
||||
коли вбудований сканер повідомляє про результати рівня `critical`, але **не**
|
||||
обходить блокування політик хука plugin `before_install` і **не** обходить блокування
|
||||
через збої сканування.
|
||||
|
||||
Цей прапорець CLI застосовується до потоків встановлення/оновлення plugin. Установлення
|
||||
залежностей Skills через Gateway використовують відповідне перевизначення запиту
|
||||
`dangerouslyForceUnsafeInstall`, тоді як `openclaw skills install` залишається окремим
|
||||
потоком завантаження/встановлення Skills із ClawHub.
|
||||
|
||||
`plugins install` також є поверхнею встановлення для пакетів хуків, які надають
|
||||
`openclaw.hooks` у `package.json`. Для відфільтрованої видимості хуків і вмикання
|
||||
окремих хуків використовуйте `openclaw hooks`, а не встановлення пакета.
|
||||
|
||||
Специфікації npm є **лише реєстровими** (назва пакета + необов’язкова **точна версія** або
|
||||
**dist-tag**). Специфікації Git/URL/файлів і діапазони semver відхиляються. Для безпеки
|
||||
залежності встановлюються з `--ignore-scripts`.
|
||||
|
||||
Прості специфікації та `@latest` залишаються на стабільній гілці. Якщо npm розв’язує будь-яку
|
||||
з них у пререліз, OpenClaw зупиняється й просить вас явно погодитися, указавши
|
||||
тег пререлізу, наприклад `@beta`/`@rc`, або точну версію пререлізу, наприклад
|
||||
`@1.2.3-beta.4`.
|
||||
|
||||
Якщо проста специфікація встановлення збігається з id вбудованого plugin (наприклад, `diffs`), OpenClaw
|
||||
встановлює вбудований plugin безпосередньо. Щоб установити npm-пакет із такою самою
|
||||
назвою, використовуйте явну scoped-специфікацію (наприклад, `@scope/diffs`).
|
||||
|
||||
Підтримувані архіви: `.zip`, `.tgz`, `.tar.gz`, `.tar`.
|
||||
|
||||
Також підтримуються встановлення з marketplace Claude.
|
||||
|
||||
Для встановлень із ClawHub використовується явний локатор `clawhub:<package>`:
|
||||
|
||||
```bash
|
||||
openclaw plugins install clawhub:openclaw-codex-app-server
|
||||
openclaw plugins install clawhub:openclaw-codex-app-server@1.2.3
|
||||
```
|
||||
|
||||
Тепер OpenClaw також надає перевагу ClawHub для простих plugin-специфікацій, безпечних для npm. Він переходить
|
||||
до npm лише тоді, коли у ClawHub немає такого пакета або версії:
|
||||
|
||||
```bash
|
||||
openclaw plugins install openclaw-codex-app-server
|
||||
```
|
||||
|
||||
OpenClaw завантажує архів пакета з ClawHub, перевіряє заявлену
|
||||
сумісність API plugin / мінімальну сумісність із gateway, а потім установлює його через звичайний
|
||||
шлях архіву. Записані встановлення зберігають свої метадані джерела ClawHub для подальших
|
||||
оновлень.
|
||||
|
||||
Використовуйте скорочення `plugin@marketplace`, коли назва marketplace існує в локальному
|
||||
кеші реєстру Claude за адресою `~/.claude/plugins/known_marketplaces.json`:
|
||||
|
||||
```bash
|
||||
openclaw plugins marketplace list <marketplace-name>
|
||||
openclaw plugins install <plugin-name>@<marketplace-name>
|
||||
```
|
||||
|
||||
Використовуйте `--marketplace`, якщо хочете передати джерело marketplace явно:
|
||||
|
||||
```bash
|
||||
openclaw plugins install <plugin-name> --marketplace <marketplace-name>
|
||||
openclaw plugins install <plugin-name> --marketplace <owner/repo>
|
||||
openclaw plugins install <plugin-name> --marketplace https://github.com/<owner>/<repo>
|
||||
openclaw plugins install <plugin-name> --marketplace ./my-marketplace
|
||||
```
|
||||
|
||||
Джерелами marketplace можуть бути:
|
||||
|
||||
- відома Claude назва marketplace з `~/.claude/plugins/known_marketplaces.json`
|
||||
- локальний корінь marketplace або шлях `marketplace.json`
|
||||
- скорочення GitHub-репозиторію на кшталт `owner/repo`
|
||||
- URL GitHub-репозиторію на кшталт `https://github.com/owner/repo`
|
||||
- URL git
|
||||
|
||||
Для віддалених marketplace, завантажених з GitHub або git, записи plugin мають залишатися
|
||||
в межах клонованого репозиторію marketplace. OpenClaw приймає джерела відносних шляхів із
|
||||
цього репозиторію й відхиляє HTTP(S), абсолютні шляхи, git, GitHub та інші джерела plugin,
|
||||
що не є шляхами, з віддалених маніфестів.
|
||||
|
||||
Для локальних шляхів і архівів OpenClaw автоматично виявляє:
|
||||
|
||||
- рідні plugins OpenClaw (`openclaw.plugin.json`)
|
||||
- сумісні пакети Codex (`.codex-plugin/plugin.json`)
|
||||
- сумісні пакети Claude (`.claude-plugin/plugin.json` або типовий макет компонентів Claude)
|
||||
- сумісні пакети Cursor (`.cursor-plugin/plugin.json`)
|
||||
|
||||
Сумісні пакети встановлюються у звичайний корінь extensions і беруть участь у тому самому потоці
|
||||
list/info/enable/disable. Наразі підтримуються bundle Skills, command-skills Claude,
|
||||
типові значення Claude `settings.json`, типові значення Claude `.lsp.json` /
|
||||
`lspServers`, оголошені в маніфесті, command-skills Cursor та сумісні
|
||||
каталоги хуків Codex; інші виявлені можливості пакета показуються в diagnostics/info, але
|
||||
ще не підключені до виконання в runtime.
|
||||
|
||||
### Список
|
||||
|
||||
```bash
|
||||
openclaw plugins list
|
||||
openclaw plugins list --enabled
|
||||
openclaw plugins list --verbose
|
||||
openclaw plugins list --json
|
||||
```
|
||||
|
||||
Використовуйте `--enabled`, щоб показати лише завантажені plugins. Використовуйте `--verbose`, щоб перейти
|
||||
від табличного подання до рядків із докладною інформацією про кожен plugin із метаданими
|
||||
джерела/походження/версії/активації. Для машинозчитуваного переліку та
|
||||
діагностики реєстру використовуйте `--json`.
|
||||
|
||||
Використовуйте `--link`, щоб не копіювати локальний каталог (додає до `plugins.load.paths`):
|
||||
|
||||
```bash
|
||||
openclaw plugins install -l ./my-plugin
|
||||
```
|
||||
|
||||
`--force` не підтримується з `--link`, оскільки зв’язані встановлення повторно використовують
|
||||
шлях до джерела замість копіювання у керовану ціль установлення.
|
||||
|
||||
Використовуйте `--pin` для встановлень npm, щоб зберегти розв’язану точну специфікацію (`name@version`) у
|
||||
`plugins.installs`, залишаючи типову поведінку без закріплення.
|
||||
|
||||
### Видалення
|
||||
|
||||
```bash
|
||||
openclaw plugins uninstall <id>
|
||||
openclaw plugins uninstall <id> --dry-run
|
||||
openclaw plugins uninstall <id> --keep-files
|
||||
```
|
||||
|
||||
`uninstall` видаляє записи plugin з `plugins.entries`, `plugins.installs`,
|
||||
списку дозволених plugin і зв’язаних записів `plugins.load.paths`, де це застосовується.
|
||||
Для plugin Active Memory слот пам’яті скидається до `memory-core`.
|
||||
|
||||
Типово `uninstall` також видаляє каталог установлення plugin у корені plugin
|
||||
активного каталогу стану. Використовуйте
|
||||
`--keep-files`, щоб зберегти файли на диску.
|
||||
|
||||
`--keep-config` підтримується як застарілий псевдонім для `--keep-files`.
|
||||
|
||||
### Оновлення
|
||||
|
||||
```bash
|
||||
openclaw plugins update <id-or-npm-spec>
|
||||
openclaw plugins update --all
|
||||
openclaw plugins update <id-or-npm-spec> --dry-run
|
||||
openclaw plugins update @openclaw/voice-call@beta
|
||||
openclaw plugins update openclaw-codex-app-server --dangerously-force-unsafe-install
|
||||
```
|
||||
|
||||
Оновлення застосовуються до відстежуваних встановлень у `plugins.installs` і відстежуваних
|
||||
встановлень пакетів хуків у `hooks.internal.installs`.
|
||||
|
||||
Коли ви передаєте id plugin, OpenClaw повторно використовує записану специфікацію встановлення для цього
|
||||
plugin. Це означає, що раніше збережені dist-tag, наприклад `@beta`, і точні закріплені
|
||||
версії продовжують використовуватися під час наступних запусків `update <id>`.
|
||||
|
||||
Для встановлень npm ви також можете передати явну специфікацію npm-пакета з dist-tag
|
||||
або точною версією. OpenClaw зіставляє назву цього пакета назад із відстежуваним записом plugin,
|
||||
оновлює встановлений plugin і записує нову специфікацію npm для майбутніх
|
||||
оновлень за id.
|
||||
|
||||
Передавання назви npm-пакета без версії чи тега також зіставляється назад із
|
||||
відстежуваним записом plugin. Використовуйте це, коли plugin був закріплений на точній версії й
|
||||
ви хочете повернути його на типову лінію релізів реєстру.
|
||||
|
||||
Перед живим оновленням npm OpenClaw перевіряє встановлену версію пакета за метаданими
|
||||
реєстру npm. Якщо встановлена версія та ідентичність записаного артефакту вже
|
||||
збігаються з розв’язаною ціллю, оновлення пропускається без
|
||||
завантаження, перевстановлення або перезапису `openclaw.json`.
|
||||
|
||||
Коли існує збережений хеш цілісності й хеш отриманого артефакту змінюється,
|
||||
OpenClaw трактує це як дрейф артефакту npm. Інтерактивна команда
|
||||
`openclaw plugins update` показує очікуваний і фактичний хеші та запитує
|
||||
підтвердження перед продовженням. Неінтерактивні допоміжні засоби оновлення завершуються за принципом fail closed,
|
||||
якщо викликач не надає явної політики продовження.
|
||||
|
||||
`--dangerously-force-unsafe-install` також доступний у `plugins update` як
|
||||
аварійне перевизначення для хибнопозитивних спрацьовувань сканування небезпечного коду під час
|
||||
оновлення plugin. Він, як і раніше, не обходить блокування політики `before_install` plugin
|
||||
або блокування через збій сканування й застосовується лише до оновлень plugin, а не до
|
||||
оновлень пакетів хуків.
|
||||
|
||||
### Inspect
|
||||
|
||||
```bash
|
||||
openclaw plugins inspect <id>
|
||||
openclaw plugins inspect <id> --json
|
||||
```
|
||||
|
||||
Глибока інтроспекція для одного plugin. Показує ідентичність, стан завантаження, джерело,
|
||||
зареєстровані можливості, хуки, інструменти, команди, сервіси, методи gateway,
|
||||
маршрути HTTP, прапорці політик, diagnostics, метадані встановлення, можливості пакета
|
||||
та будь-яку виявлену підтримку серверів MCP або LSP.
|
||||
|
||||
Кожен plugin класифікується за тим, що він фактично реєструє в runtime:
|
||||
|
||||
- **plain-capability** — один тип можливостей (наприклад, plugin лише з провайдером)
|
||||
- **hybrid-capability** — кілька типів можливостей (наприклад, текст + мовлення + зображення)
|
||||
- **hook-only** — лише хуки, без можливостей або поверхонь
|
||||
- **non-capability** — інструменти/команди/сервіси, але без можливостей
|
||||
|
||||
Докладніше про модель можливостей див. у [Форми plugin](/uk/plugins/architecture#plugin-shapes).
|
||||
|
||||
Прапорець `--json` виводить машинозчитуваний звіт, придатний для скриптів і
|
||||
аудиту.
|
||||
|
||||
`inspect --all` відображає загальносистемну таблицю з колонками форми, типів можливостей,
|
||||
приміток сумісності, можливостей пакета та зведення хуків.
|
||||
|
||||
`info` — це псевдонім для `inspect`.
|
||||
|
||||
### Doctor
|
||||
|
||||
```bash
|
||||
openclaw plugins doctor
|
||||
```
|
||||
|
||||
`doctor` повідомляє про помилки завантаження plugin, diagnostics маніфесту/виявлення та
|
||||
примітки щодо сумісності. Коли все в порядку, виводиться `No plugin issues
|
||||
detected.`
|
||||
|
||||
Для збоїв форми модуля, таких як відсутні експорти `register`/`activate`, повторно запустіть
|
||||
із `OPENCLAW_PLUGIN_LOAD_DEBUG=1`, щоб включити в діагностичний вивід компактне зведення форми експортів.
|
||||
|
||||
### Marketplace
|
||||
|
||||
```bash
|
||||
openclaw plugins marketplace list <source>
|
||||
openclaw plugins marketplace list <source> --json
|
||||
```
|
||||
|
||||
Список marketplace приймає локальний шлях до marketplace, шлях до `marketplace.json`,
|
||||
скорочення GitHub на кшталт `owner/repo`, URL репозиторію GitHub або URL git. `--json`
|
||||
виводить розв’язану мітку джерела, а також розібраний маніфест marketplace і
|
||||
записи plugin.
|
||||
59
docs/uk/cli/qr.md
Normal file
59
docs/uk/cli/qr.md
Normal file
@ -0,0 +1,59 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете швидко сполучити застосунок мобільного вузла з gateway
|
||||
- Вам потрібен вивід коду налаштування для віддаленого/ручного поширення
|
||||
summary: Довідка CLI для `openclaw qr` (генерація QR-коду сполучення для мобільного пристрою + коду налаштування)
|
||||
title: qr
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:19:03Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: ee6469334ad09037318f938c7ac609b7d5e3385c0988562501bb02a1bfa411ff
|
||||
source_path: cli/qr.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw qr`
|
||||
|
||||
Згенеруйте QR-код сполучення для мобільного пристрою та код налаштування на основі вашої поточної конфігурації Gateway.
|
||||
|
||||
## Використання
|
||||
|
||||
```bash
|
||||
openclaw qr
|
||||
openclaw qr --setup-code-only
|
||||
openclaw qr --json
|
||||
openclaw qr --remote
|
||||
openclaw qr --url wss://gateway.example/ws
|
||||
```
|
||||
|
||||
## Параметри
|
||||
|
||||
- `--remote`: віддавати перевагу `gateway.remote.url`; якщо його не задано, `gateway.tailscale.mode=serve|funnel` усе одно може надати віддалений публічний URL
|
||||
- `--url <url>`: перевизначити URL gateway, що використовується в корисному навантаженні
|
||||
- `--public-url <url>`: перевизначити публічний URL, що використовується в корисному навантаженні
|
||||
- `--token <token>`: перевизначити, відносно якого токена gateway автентифікується bootstrap-потік
|
||||
- `--password <password>`: перевизначити, відносно якого пароля gateway автентифікується bootstrap-потік
|
||||
- `--setup-code-only`: вивести лише код налаштування
|
||||
- `--no-ascii`: пропустити ASCII-відтворення QR-коду
|
||||
- `--json`: вивести JSON (`setupCode`, `gatewayUrl`, `auth`, `urlSource`)
|
||||
|
||||
## Примітки
|
||||
|
||||
- `--token` і `--password` є взаємовиключними.
|
||||
- Сам код налаштування тепер містить непрозорий короткоживучий `bootstrapToken`, а не спільний токен/пароль gateway.
|
||||
- У вбудованому bootstrap-потоці node/operator основний токен Node, як і раніше, потрапляє з `scopes: []`.
|
||||
- Якщо bootstrap-передача також видає операторський токен, він лишається обмеженим списком дозволів bootstrap: `operator.approvals`, `operator.read`, `operator.talk.secrets`, `operator.write`.
|
||||
- Перевірки областей дії bootstrap мають префікс ролі. Цей список дозволів оператора задовольняє лише операторські запити; ролям, відмінним від оператора, як і раніше потрібні області дії під префіксом їхньої власної ролі.
|
||||
- Сполучення мобільного пристрою завершується за принципом fail closed для URL gateway `ws://` через Tailscale/публічні маршрути. Приватний LAN `ws://` і далі підтримується, але для мобільних маршрутів через Tailscale/публічні мережі слід використовувати Tailscale Serve/Funnel або URL gateway `wss://`.
|
||||
- Із `--remote` OpenClaw вимагає або `gateway.remote.url`, або
|
||||
`gateway.tailscale.mode=serve|funnel`.
|
||||
- Із `--remote`, якщо фактично активні віддалені облікові дані налаштовані як SecretRef і ви не передаєте `--token` або `--password`, команда отримує їх з активного знімка gateway. Якщо gateway недоступний, команда завершується помилкою одразу.
|
||||
- Без `--remote` локальні SecretRef автентифікації gateway розв’язуються, якщо не передано перевизначення автентифікації через CLI:
|
||||
- `gateway.auth.token` розв’язується, коли може перемогти автентифікація токеном (явний `gateway.auth.mode="token"` або виведений режим, де жодне джерело пароля не перемагає).
|
||||
- `gateway.auth.password` розв’язується, коли може перемогти автентифікація паролем (явний `gateway.auth.mode="password"` або виведений режим без токена-переможця з auth/env).
|
||||
- Якщо налаштовано і `gateway.auth.token`, і `gateway.auth.password` (включно з SecretRef), а `gateway.auth.mode` не задано, розв’язання коду налаштування завершується помилкою, доки режим не буде явно встановлено.
|
||||
- Примітка про розсинхронізацію версій Gateway: цей шлях команди вимагає gateway, який підтримує `secrets.resolve`; старіші gateway повертають помилку unknown-method.
|
||||
- Після сканування схваліть сполучення пристрою за допомогою:
|
||||
- `openclaw devices list`
|
||||
- `openclaw devices approve <requestId>`
|
||||
42
docs/uk/cli/reset.md
Normal file
42
docs/uk/cli/reset.md
Normal file
@ -0,0 +1,42 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете стерти локальний стан, зберігши встановлений CLI
|
||||
- Ви хочете пробний запуск, щоб побачити, що буде видалено
|
||||
summary: Довідка CLI для `openclaw reset` (скидання локального стану/конфігурації)
|
||||
title: скидання
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:19:06Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: ad464700f948bebe741ec309f25150714f0b280834084d4f531327418a42c79b
|
||||
source_path: cli/reset.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw reset`
|
||||
|
||||
Скидання локальної конфігурації/стану (CLI залишається встановленим).
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--scope <scope>`: `config`, `config+creds+sessions` або `full`
|
||||
- `--yes`: пропустити запити на підтвердження
|
||||
- `--non-interactive`: вимкнути запити; вимагає `--scope` і `--yes`
|
||||
- `--dry-run`: показати дії без видалення файлів
|
||||
|
||||
Приклади:
|
||||
|
||||
```bash
|
||||
openclaw backup create
|
||||
openclaw reset
|
||||
openclaw reset --dry-run
|
||||
openclaw reset --scope config --yes --non-interactive
|
||||
openclaw reset --scope config+creds+sessions --yes --non-interactive
|
||||
openclaw reset --scope full --yes --non-interactive
|
||||
```
|
||||
|
||||
Примітки:
|
||||
|
||||
- Спочатку виконайте `openclaw backup create`, якщо хочете мати придатний для відновлення знімок перед видаленням локального стану.
|
||||
- Якщо ви не вказали `--scope`, `openclaw reset` використовує інтерактивний запит, щоб вибрати, що видалити.
|
||||
- `--non-interactive` є чинним лише тоді, коли задано і `--scope`, і `--yes`.
|
||||
204
docs/uk/cli/sandbox.md
Normal file
204
docs/uk/cli/sandbox.md
Normal file
@ -0,0 +1,204 @@
|
||||
---
|
||||
read_when: You are managing sandbox runtimes or debugging sandbox/tool-policy behavior.
|
||||
status: active
|
||||
summary: Керуйте середовищами виконання sandbox і переглядайте ефективну політику sandbox
|
||||
title: CLI sandbox
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:19:11Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: fa2783037da2901316108d35e04bb319d5d57963c2764b9146786b3c6474b48a
|
||||
source_path: cli/sandbox.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# CLI sandbox
|
||||
|
||||
Керуйте середовищами виконання sandbox для ізольованого виконання агентів.
|
||||
|
||||
## Огляд
|
||||
|
||||
OpenClaw може запускати агентів в ізольованих середовищах виконання sandbox для безпеки. Команди `sandbox` допомагають переглядати та перевідтворювати ці середовища після оновлень або змін конфігурації.
|
||||
|
||||
Сьогодні це зазвичай означає:
|
||||
|
||||
- Docker-контейнери sandbox
|
||||
- середовища виконання SSH sandbox, коли `agents.defaults.sandbox.backend = "ssh"`
|
||||
- середовища виконання OpenShell sandbox, коли `agents.defaults.sandbox.backend = "openshell"`
|
||||
|
||||
Для `ssh` і `remote` OpenShell перевідтворення важливіше, ніж для Docker:
|
||||
|
||||
- віддалений робочий простір є канонічним після початкового заповнення
|
||||
- `openclaw sandbox recreate` видаляє цей канонічний віддалений робочий простір для вибраної області
|
||||
- наступне використання знову заповнює його з поточного локального робочого простору
|
||||
|
||||
## Команди
|
||||
|
||||
### `openclaw sandbox explain`
|
||||
|
||||
Перегляньте **ефективний** режим/область/доступ до робочого простору sandbox, політику інструментів sandbox і підвищені шлюзи доступу (із шляхами до ключів конфігурації для виправлення).
|
||||
|
||||
```bash
|
||||
openclaw sandbox explain
|
||||
openclaw sandbox explain --session agent:main:main
|
||||
openclaw sandbox explain --agent work
|
||||
openclaw sandbox explain --json
|
||||
```
|
||||
|
||||
### `openclaw sandbox list`
|
||||
|
||||
Перелічіть усі середовища виконання sandbox з їхнім станом і конфігурацією.
|
||||
|
||||
```bash
|
||||
openclaw sandbox list
|
||||
openclaw sandbox list --browser # Перелічити лише контейнері браузера
|
||||
openclaw sandbox list --json # Вивід JSON
|
||||
```
|
||||
|
||||
**Вивід містить:**
|
||||
|
||||
- Назву й стан середовища виконання
|
||||
- Backend (`docker`, `openshell` тощо)
|
||||
- Мітку конфігурації та чи відповідає вона поточній конфігурації
|
||||
- Вік (час від створення)
|
||||
- Час простою (час від останнього використання)
|
||||
- Пов’язану сесію/агента
|
||||
|
||||
### `openclaw sandbox recreate`
|
||||
|
||||
Видаліть середовища виконання sandbox, щоб примусово перевідтворити їх з оновленою конфігурацією.
|
||||
|
||||
```bash
|
||||
openclaw sandbox recreate --all # Перевідтворити всі контейнери
|
||||
openclaw sandbox recreate --session main # Конкретна сесія
|
||||
openclaw sandbox recreate --agent mybot # Конкретний агент
|
||||
openclaw sandbox recreate --browser # Лише контейнері браузера
|
||||
openclaw sandbox recreate --all --force # Пропустити підтвердження
|
||||
```
|
||||
|
||||
**Параметри:**
|
||||
|
||||
- `--all`: перевідтворити всі контейнери sandbox
|
||||
- `--session <key>`: перевідтворити контейнер для конкретної сесії
|
||||
- `--agent <id>`: перевідтворити контейнери для конкретного агента
|
||||
- `--browser`: перевідтворити лише контейнері браузера
|
||||
- `--force`: пропустити запит підтвердження
|
||||
|
||||
**Важливо:** середовища виконання автоматично перевідтворюються під час наступного використання агента.
|
||||
|
||||
## Варіанти використання
|
||||
|
||||
### Після оновлення образу Docker
|
||||
|
||||
```bash
|
||||
# Pull new image
|
||||
docker pull openclaw-sandbox:latest
|
||||
docker tag openclaw-sandbox:latest openclaw-sandbox:bookworm-slim
|
||||
|
||||
# Update config to use new image
|
||||
# Edit config: agents.defaults.sandbox.docker.image (or agents.list[].sandbox.docker.image)
|
||||
|
||||
# Recreate containers
|
||||
openclaw sandbox recreate --all
|
||||
```
|
||||
|
||||
### Після зміни конфігурації sandbox
|
||||
|
||||
```bash
|
||||
# Edit config: agents.defaults.sandbox.* (or agents.list[].sandbox.*)
|
||||
|
||||
# Recreate to apply new config
|
||||
openclaw sandbox recreate --all
|
||||
```
|
||||
|
||||
### Після зміни SSH-цілі або матеріалів автентифікації SSH
|
||||
|
||||
```bash
|
||||
# Edit config:
|
||||
# - agents.defaults.sandbox.backend
|
||||
# - agents.defaults.sandbox.ssh.target
|
||||
# - agents.defaults.sandbox.ssh.workspaceRoot
|
||||
# - agents.defaults.sandbox.ssh.identityFile / certificateFile / knownHostsFile
|
||||
# - agents.defaults.sandbox.ssh.identityData / certificateData / knownHostsData
|
||||
|
||||
openclaw sandbox recreate --all
|
||||
```
|
||||
|
||||
Для базового backend `ssh` команда recreate видаляє корінь віддаленого робочого простору для кожної області
|
||||
на SSH-цілі. Наступний запуск знову заповнює його з локального робочого простору.
|
||||
|
||||
### Після зміни джерела, політики або режиму OpenShell
|
||||
|
||||
```bash
|
||||
# Edit config:
|
||||
# - agents.defaults.sandbox.backend
|
||||
# - plugins.entries.openshell.config.from
|
||||
# - plugins.entries.openshell.config.mode
|
||||
# - plugins.entries.openshell.config.policy
|
||||
|
||||
openclaw sandbox recreate --all
|
||||
```
|
||||
|
||||
Для режиму OpenShell `remote` команда recreate видаляє канонічний віддалений робочий простір
|
||||
для цієї області. Наступний запуск знову заповнює його з локального робочого простору.
|
||||
|
||||
### Після зміни setupCommand
|
||||
|
||||
```bash
|
||||
openclaw sandbox recreate --all
|
||||
# or just one agent:
|
||||
openclaw sandbox recreate --agent family
|
||||
```
|
||||
|
||||
### Лише для конкретного агента
|
||||
|
||||
```bash
|
||||
# Update only one agent's containers
|
||||
openclaw sandbox recreate --agent alfred
|
||||
```
|
||||
|
||||
## Чому це потрібно?
|
||||
|
||||
**Проблема:** коли ви оновлюєте конфігурацію sandbox:
|
||||
|
||||
- наявні середовища виконання продовжують працювати зі старими налаштуваннями
|
||||
- середовища виконання очищаються лише після 24 годин неактивності
|
||||
- агенти, які регулярно використовуються, можуть нескінченно довго зберігати старі середовища виконання
|
||||
|
||||
**Рішення:** використовуйте `openclaw sandbox recreate`, щоб примусово видалити старі середовища виконання. Вони будуть автоматично перевідтворені з поточними налаштуваннями, коли знову знадобляться.
|
||||
|
||||
Порада: віддавайте перевагу `openclaw sandbox recreate` замість ручного очищення, специфічного для backend.
|
||||
Вона використовує реєстр середовищ виконання Gateway і допомагає уникнути невідповідностей, коли змінюються ключі області/сесії.
|
||||
|
||||
## Конфігурація
|
||||
|
||||
Налаштування sandbox розташовані в `~/.openclaw/openclaw.json` у розділі `agents.defaults.sandbox` (перевизначення для окремих агентів — у `agents.list[].sandbox`):
|
||||
|
||||
```jsonc
|
||||
{
|
||||
"agents": {
|
||||
"defaults": {
|
||||
"sandbox": {
|
||||
"mode": "all", // off, non-main, all
|
||||
"backend": "docker", // docker, ssh, openshell
|
||||
"scope": "agent", // session, agent, shared
|
||||
"docker": {
|
||||
"image": "openclaw-sandbox:bookworm-slim",
|
||||
"containerPrefix": "openclaw-sbx-",
|
||||
// ... more Docker options
|
||||
},
|
||||
"prune": {
|
||||
"idleHours": 24, // Auto-prune after 24h idle
|
||||
"maxAgeDays": 7, // Auto-prune after 7 days
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
## Див. також
|
||||
|
||||
- [Документація sandbox](/uk/gateway/sandboxing)
|
||||
- [Конфігурація агента](/uk/concepts/agent-workspace)
|
||||
- [Команда doctor](/uk/gateway/doctor) - перевірка налаштування sandbox
|
||||
204
docs/uk/cli/secrets.md
Normal file
204
docs/uk/cli/secrets.md
Normal file
@ -0,0 +1,204 @@
|
||||
---
|
||||
read_when:
|
||||
- Повторне розв’язання посилань SecretRef під час виконання
|
||||
- Аудит залишків plaintext і нерозв’язаних ref
|
||||
- Налаштування SecretRef і застосування односпрямованих змін очищення
|
||||
summary: Довідка CLI для `openclaw secrets` (перезавантаження, аудит, налаштування, застосування)
|
||||
title: секрети
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:19:18Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: f436ba089d752edb766c0a3ce746ee6bca1097b22c9b30e3d9715cb0bb50bf47
|
||||
source_path: cli/secrets.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw secrets`
|
||||
|
||||
Використовуйте `openclaw secrets` для керування SecretRef і підтримання активного знімка runtime у здоровому стані.
|
||||
|
||||
Ролі команд:
|
||||
|
||||
- `reload`: gateway RPC (`secrets.reload`), який повторно розв’язує ref і замінює знімок runtime лише за повного успіху (без запису конфігурації).
|
||||
- `audit`: сканування лише для читання конфігурації/auth/згенерованих сховищ моделей і застарілих залишків на наявність plaintext, нерозв’язаних ref та дрейфу пріоритетів (exec ref пропускаються, якщо не встановлено `--allow-exec`).
|
||||
- `configure`: інтерактивний планувальник для налаштування provider, зіставлення цілей і preflight (потрібен TTY).
|
||||
- `apply`: виконати збережений план (`--dry-run` лише для валідації; сухий запуск типово пропускає перевірки exec, а режим запису відхиляє плани з exec, якщо не встановлено `--allow-exec`), а потім очистити цільові залишки plaintext.
|
||||
|
||||
Рекомендований цикл оператора:
|
||||
|
||||
```bash
|
||||
openclaw secrets audit --check
|
||||
openclaw secrets configure
|
||||
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json --dry-run
|
||||
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json
|
||||
openclaw secrets audit --check
|
||||
openclaw secrets reload
|
||||
```
|
||||
|
||||
Якщо ваш план містить `exec` SecretRef/provider, передавайте `--allow-exec` і в командах dry-run, і в командах apply із записом.
|
||||
|
||||
Примітка про коди виходу для CI/перевірок:
|
||||
|
||||
- `audit --check` повертає `1`, якщо є знахідки.
|
||||
- нерозв’язані ref повертають `2`.
|
||||
|
||||
Пов’язане:
|
||||
|
||||
- Посібник із секретів: [Керування секретами](/uk/gateway/secrets)
|
||||
- Поверхня облікових даних: [Поверхня облікових даних SecretRef](/uk/reference/secretref-credential-surface)
|
||||
- Посібник із безпеки: [Безпека](/uk/gateway/security)
|
||||
|
||||
## Перезавантажити знімок runtime
|
||||
|
||||
Повторно розв’язати посилання secret ref і атомарно замінити знімок runtime.
|
||||
|
||||
```bash
|
||||
openclaw secrets reload
|
||||
openclaw secrets reload --json
|
||||
openclaw secrets reload --url ws://127.0.0.1:18789 --token <token>
|
||||
```
|
||||
|
||||
Примітки:
|
||||
|
||||
- Використовує gateway RPC-метод `secrets.reload`.
|
||||
- Якщо розв’язання завершується помилкою, gateway зберігає знімок останнього відомого коректного стану та повертає помилку (без часткової активації).
|
||||
- Відповідь JSON містить `warningCount`.
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--url <url>`
|
||||
- `--token <token>`
|
||||
- `--timeout <ms>`
|
||||
- `--json`
|
||||
|
||||
## Аудит
|
||||
|
||||
Сканувати стан OpenClaw на наявність:
|
||||
|
||||
- зберігання секретів у plaintext
|
||||
- нерозв’язаних ref
|
||||
- дрейфу пріоритетів (облікові дані в `auth-profiles.json`, що затіняють ref у `openclaw.json`)
|
||||
- залишків у згенерованому `agents/*/agent/models.json` (значення provider `apiKey` і чутливі заголовки provider)
|
||||
- застарілих залишків (записи в застарілому сховищі auth, нагадування OAuth)
|
||||
|
||||
Примітка про залишки в заголовках:
|
||||
|
||||
- Виявлення чутливих заголовків provider базується на евристиці назв (поширені назви та фрагменти заголовків auth/облікових даних, як-от `authorization`, `x-api-key`, `token`, `secret`, `password` і `credential`).
|
||||
|
||||
```bash
|
||||
openclaw secrets audit
|
||||
openclaw secrets audit --check
|
||||
openclaw secrets audit --json
|
||||
openclaw secrets audit --allow-exec
|
||||
```
|
||||
|
||||
Поведінка виходу:
|
||||
|
||||
- `--check` завершується з ненульовим кодом, якщо є знахідки.
|
||||
- нерозв’язані ref завершуються ненульовим кодом із вищим пріоритетом.
|
||||
|
||||
Ключові елементи форми звіту:
|
||||
|
||||
- `status`: `clean | findings | unresolved`
|
||||
- `resolution`: `refsChecked`, `skippedExecRefs`, `resolvabilityComplete`
|
||||
- `summary`: `plaintextCount`, `unresolvedRefCount`, `shadowedRefCount`, `legacyResidueCount`
|
||||
- коди знахідок:
|
||||
- `PLAINTEXT_FOUND`
|
||||
- `REF_UNRESOLVED`
|
||||
- `REF_SHADOWED`
|
||||
- `LEGACY_RESIDUE`
|
||||
|
||||
## Configure (інтерактивний помічник)
|
||||
|
||||
Інтерактивно створити зміни provider і SecretRef, виконати preflight і, за бажання, застосувати:
|
||||
|
||||
```bash
|
||||
openclaw secrets configure
|
||||
openclaw secrets configure --plan-out /tmp/openclaw-secrets-plan.json
|
||||
openclaw secrets configure --apply --yes
|
||||
openclaw secrets configure --providers-only
|
||||
openclaw secrets configure --skip-provider-setup
|
||||
openclaw secrets configure --agent ops
|
||||
openclaw secrets configure --json
|
||||
```
|
||||
|
||||
Потік:
|
||||
|
||||
- Спочатку налаштування provider (`add/edit/remove` для псевдонімів `secrets.providers`).
|
||||
- Далі зіставлення облікових даних (вибір полів і призначення ref `{source, provider, id}`).
|
||||
- Наприкінці preflight і, за бажання, apply.
|
||||
|
||||
Прапорці:
|
||||
|
||||
- `--providers-only`: налаштувати лише `secrets.providers`, пропустити зіставлення облікових даних.
|
||||
- `--skip-provider-setup`: пропустити налаштування provider і зіставити облікові дані з наявними provider.
|
||||
- `--agent <id>`: обмежити виявлення цілей і записи в `auth-profiles.json` одним сховищем агента.
|
||||
- `--allow-exec`: дозволити перевірки exec SecretRef під час preflight/apply (може виконувати команди provider).
|
||||
|
||||
Примітки:
|
||||
|
||||
- Потрібен інтерактивний TTY.
|
||||
- Не можна поєднувати `--providers-only` із `--skip-provider-setup`.
|
||||
- `configure` націлюється на поля, що містять секрети, у `openclaw.json`, а також на `auth-profiles.json` для вибраної області агента.
|
||||
- `configure` підтримує створення нових зіставлень `auth-profiles.json` безпосередньо в потоці вибору.
|
||||
- Канонічна підтримувана поверхня: [Поверхня облікових даних SecretRef](/uk/reference/secretref-credential-surface).
|
||||
- Перед apply виконується preflight-розв’язання.
|
||||
- Якщо preflight/apply містить exec ref, залишайте `--allow-exec` увімкненим для обох кроків.
|
||||
- Згенеровані плани типово вмикають параметри очищення (`scrubEnv`, `scrubAuthProfilesForProviderTargets`, `scrubLegacyAuthJson` усі ввімкнені).
|
||||
- Шлях apply є односпрямованим для очищених значень plaintext.
|
||||
- Без `--apply` CLI все одно ставить запитання `Apply this plan now?` після preflight.
|
||||
- Із `--apply` (і без `--yes`) CLI запитує додаткове незворотне підтвердження.
|
||||
- `--json` виводить план + звіт preflight, але команда все одно потребує інтерактивного TTY.
|
||||
|
||||
Примітка про безпеку exec provider:
|
||||
|
||||
- Установлення через Homebrew часто відкривають доступ до символьних посилань на бінарні файли в `/opt/homebrew/bin/*`.
|
||||
- Встановлюйте `allowSymlinkCommand: true` лише за потреби для довірених шляхів менеджера пакетів і поєднуйте це з `trustedDirs` (наприклад `["/opt/homebrew"]`).
|
||||
- У Windows, якщо перевірка ACL недоступна для шляху provider, OpenClaw завершується за принципом fail closed. Лише для довірених шляхів установіть `allowInsecurePath: true` для цього provider, щоб обійти перевірки безпеки шляху.
|
||||
|
||||
## Застосувати збережений план
|
||||
|
||||
Застосувати або виконати preflight для раніше згенерованого плану:
|
||||
|
||||
```bash
|
||||
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json
|
||||
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json --allow-exec
|
||||
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json --dry-run
|
||||
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json --dry-run --allow-exec
|
||||
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json --json
|
||||
```
|
||||
|
||||
Поведінка exec:
|
||||
|
||||
- `--dry-run` валідує preflight без запису файлів.
|
||||
- Перевірки exec SecretRef типово пропускаються під час dry-run.
|
||||
- Режим запису відхиляє плани, що містять exec SecretRef/provider, якщо не встановлено `--allow-exec`.
|
||||
- Використовуйте `--allow-exec`, щоб увімкнути перевірки/виконання exec provider у будь-якому режимі.
|
||||
|
||||
Деталі контракту плану (дозволені цільові шляхи, правила валідації та семантика збоїв):
|
||||
|
||||
- [Контракт плану застосування Secrets](/uk/gateway/secrets-plan-contract)
|
||||
|
||||
Що може оновити `apply`:
|
||||
|
||||
- `openclaw.json` (цілі SecretRef + upsert/delete provider)
|
||||
- `auth-profiles.json` (очищення цілей provider)
|
||||
- залишки застарілого `auth.json`
|
||||
- відомі секретні ключі в `~/.openclaw/.env`, значення яких було мігровано
|
||||
|
||||
## Чому немає резервних копій для відкату
|
||||
|
||||
`secrets apply` навмисно не записує резервні копії для відкату, що містять старі значення plaintext.
|
||||
|
||||
Безпека забезпечується суворим preflight + майже атомарним apply із best-effort відновленням у пам’яті в разі збою.
|
||||
|
||||
## Приклад
|
||||
|
||||
```bash
|
||||
openclaw secrets audit --check
|
||||
openclaw secrets configure
|
||||
openclaw secrets audit --check
|
||||
```
|
||||
|
||||
Якщо `audit --check` і далі повідомляє про знахідки plaintext, оновіть решту вказаних цільових шляхів і повторно запустіть аудит.
|
||||
93
docs/uk/cli/security.md
Normal file
93
docs/uk/cli/security.md
Normal file
@ -0,0 +1,93 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете виконати швидкий аудит безпеки для конфігурації/стану
|
||||
- Ви хочете застосувати безпечні пропозиції «fix» (права доступу, посилення типових налаштувань)
|
||||
summary: Довідка CLI для `openclaw security` (аудит і виправлення поширених помилок безпеки)
|
||||
title: безпека
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:19:16Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: e5a3e4ab8e0dfb6c10763097cb4483be2431985f16de877523eb53e2122239ae
|
||||
source_path: cli/security.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw security`
|
||||
|
||||
Інструменти безпеки (аудит + необов’язкові виправлення).
|
||||
|
||||
Пов’язано:
|
||||
|
||||
- Посібник із безпеки: [Безпека](/uk/gateway/security)
|
||||
|
||||
## Аудит
|
||||
|
||||
```bash
|
||||
openclaw security audit
|
||||
openclaw security audit --deep
|
||||
openclaw security audit --deep --password <password>
|
||||
openclaw security audit --deep --token <token>
|
||||
openclaw security audit --fix
|
||||
openclaw security audit --json
|
||||
```
|
||||
|
||||
Аудит попереджає, коли кілька відправників DM ділять основну сесію, і рекомендує **безпечний режим DM**: `session.dmScope="per-channel-peer"` (або `per-account-channel-peer` для каналів із кількома обліковими записами) для спільних вхідних.
|
||||
Це призначено для посилення безпеки кооперативних/спільних вхідних. Один Gateway, спільний для операторів, які не довіряють одне одному або діють зловмисно, не є рекомендованим налаштуванням; розділяйте межі довіри за допомогою окремих gateway (або окремих користувачів ОС/хостів).
|
||||
Він також генерує `security.trust_model.multi_user_heuristic`, коли конфігурація вказує на ймовірний спільний користувацький вхідний потік (наприклад, відкрита політика DM/груп, налаштовані групові цілі або правила відправників із шаблоном `*`), і нагадує, що за замовчуванням OpenClaw має модель довіри персонального асистента.
|
||||
Для навмисних конфігурацій зі спільними користувачами рекомендація аудиту полягає в тому, щоб ізолювати всі сесії в пісочниці, обмежити доступ до файлової системи областю workspace та не тримати особисті/приватні ідентичності або облікові дані в цьому середовищі виконання.
|
||||
Він також попереджає, коли малі моделі (`<=300B`) використовуються без пісочниці та з увімкненими інструментами web/browser.
|
||||
Для вхідних Webhook він попереджає, коли `hooks.token` повторно використовує токен Gateway, коли `hooks.token` закороткий, коли `hooks.path="/"`, коли `hooks.defaultSessionKey` не задано, коли `hooks.allowedAgentIds` не обмежено, коли дозволено перевизначення `sessionKey` у запиті, а також коли перевизначення дозволені без `hooks.allowedSessionKeyPrefixes`.
|
||||
Він також попереджає, коли параметри Docker пісочниці налаштовані, але режим пісочниці вимкнений, коли `gateway.nodes.denyCommands` використовує неефективні шаблоноподібні/невідомі записи (лише точне зіставлення імен команд node, а не фільтрація тексту shell), коли `gateway.nodes.allowCommands` явно вмикає небезпечні команди node, коли глобальний `tools.profile="minimal"` перевизначається профілями інструментів агента, коли відкриті групи надають доступ до інструментів runtime/filesystem без захисту пісочницею/workspace, а також коли інструменти встановлених extension plugins можуть бути досяжні за надто дозволяючої політики інструментів.
|
||||
Він також позначає `gateway.allowRealIpFallback=true` (ризик підміни заголовків, якщо проксі налаштовано неправильно) і `discovery.mdns.mode="full"` (витік метаданих через записи mDNS TXT).
|
||||
Він також попереджає, коли браузер пісочниці використовує мережу Docker `bridge` без `sandbox.browser.cdpSourceRange`.
|
||||
Він також позначає небезпечні режими мережі Docker для пісочниці (включно з `host` і приєднанням до простору імен `container:*`).
|
||||
Він також попереджає, коли наявні Docker-контейнери браузера пісочниці мають відсутні/застарілі хеш-мітки (наприклад, доміграційні контейнери без `openclaw.browserConfigEpoch`) і рекомендує `openclaw sandbox recreate --browser --all`.
|
||||
Він також попереджає, коли записи про встановлення plugin/hook на базі npm не закріплені, не мають метаданих цілісності або розходяться з версіями пакетів, установлених зараз.
|
||||
Він попереджає, коли allowlists каналів спираються на змінні names/emails/tags замість стабільних ID (Discord, Slack, Google Chat, Microsoft Teams, Mattermost, IRC-області, де застосовно).
|
||||
Він попереджає, коли `gateway.auth.mode="none"` залишає HTTP API Gateway доступними без спільного секрету (`/tools/invoke` плюс будь-яка увімкнена кінцева точка `/v1/*`).
|
||||
Параметри з префіксами `dangerous`/`dangerously` є явними аварійними перевизначеннями для операторів; увімкнення одного з них саме по собі не є звітом про вразливість безпеки.
|
||||
Повний перелік небезпечних параметрів див. у розділі «Insecure or dangerous flags summary» у [Безпека](/uk/gateway/security).
|
||||
|
||||
Поведінка SecretRef:
|
||||
|
||||
- `security audit` визначає підтримувані SecretRef у режимі лише для читання для цільових шляхів.
|
||||
- Якщо SecretRef недоступний у поточному шляху команди, аудит продовжується і повідомляє `secretDiagnostics` (замість аварійного завершення).
|
||||
- `--token` і `--password` лише перевизначають auth для глибокої перевірки в межах цього виклику команди; вони не переписують config або зіставлення SecretRef.
|
||||
|
||||
## Вивід JSON
|
||||
|
||||
Використовуйте `--json` для перевірок CI/політик:
|
||||
|
||||
```bash
|
||||
openclaw security audit --json | jq '.summary'
|
||||
openclaw security audit --deep --json | jq '.findings[] | select(.severity=="critical") | .checkId'
|
||||
```
|
||||
|
||||
Якщо поєднати `--fix` і `--json`, вивід міститиме і дії виправлення, і фінальний звіт:
|
||||
|
||||
```bash
|
||||
openclaw security audit --fix --json | jq '{fix: .fix.ok, summary: .report.summary}'
|
||||
```
|
||||
|
||||
## Що змінює `--fix`
|
||||
|
||||
`--fix` застосовує безпечні, детерміновані виправлення:
|
||||
|
||||
- перемикає поширене `groupPolicy="open"` на `groupPolicy="allowlist"` (включно з варіантами для облікових записів у підтримуваних каналах)
|
||||
- коли політика груп WhatsApp перемикається на `allowlist`, заповнює `groupAllowFrom` зі
|
||||
збереженого файла `allowFrom`, якщо такий список існує, а config ще не
|
||||
визначає `allowFrom`
|
||||
- встановлює `logging.redactSensitive` з `"off"` на `"tools"`
|
||||
- посилює права доступу для state/config і поширених чутливих файлів
|
||||
(`credentials/*.json`, `auth-profiles.json`, `sessions.json`, session
|
||||
`*.jsonl`)
|
||||
- також посилює права для файлів include конфігурації, на які посилається `openclaw.json`
|
||||
- використовує `chmod` на POSIX-хостах і скидання `icacls` на Windows
|
||||
|
||||
`--fix` **не** робить такого:
|
||||
|
||||
- не ротує токени/паролі/API key
|
||||
- не вимикає інструменти (`gateway`, `cron`, `exec` тощо)
|
||||
- не змінює вибір прив’язки/автентифікації/мережевої доступності gateway
|
||||
- не видаляє й не переписує plugins/Skills
|
||||
120
docs/uk/cli/sessions.md
Normal file
120
docs/uk/cli/sessions.md
Normal file
@ -0,0 +1,120 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете переглянути список збережених сесій і побачити нещодавню активність
|
||||
summary: Довідник CLI для `openclaw sessions` (список збережених сесій + використання)
|
||||
title: сесії
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:19:16Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 47eb55d90bd0681676283310cfa50dcacc95dff7d9a39bf2bb188788c6e5e5ba
|
||||
source_path: cli/sessions.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw sessions`
|
||||
|
||||
Перегляд списку збережених сесій розмов.
|
||||
|
||||
```bash
|
||||
openclaw sessions
|
||||
openclaw sessions --agent work
|
||||
openclaw sessions --all-agents
|
||||
openclaw sessions --active 120
|
||||
openclaw sessions --verbose
|
||||
openclaw sessions --json
|
||||
```
|
||||
|
||||
Вибір області:
|
||||
|
||||
- типово: сховище типового агента, налаштоване в конфігурації
|
||||
- `--verbose`: докладне журналювання
|
||||
- `--agent <id>`: одне сховище налаштованого агента
|
||||
- `--all-agents`: агрегувати всі сховища налаштованих агентів
|
||||
- `--store <path>`: явний шлях до сховища (не можна поєднувати з `--agent` або `--all-agents`)
|
||||
|
||||
`openclaw sessions --all-agents` читає сховища налаштованих агентів. Виявлення сесій Gateway і ACP
|
||||
має ширшу область: воно також включає сховища лише на диску, знайдені під
|
||||
типовим коренем `agents/` або шаблонізованим коренем `session.store`. Ці
|
||||
виявлені сховища мають визначатися як звичайні файли `sessions.json` усередині
|
||||
кореня агента; symlink і шляхи поза коренем пропускаються.
|
||||
|
||||
Приклади JSON:
|
||||
|
||||
`openclaw sessions --all-agents --json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"path": null,
|
||||
"stores": [
|
||||
{ "agentId": "main", "path": "/home/user/.openclaw/agents/main/sessions/sessions.json" },
|
||||
{ "agentId": "work", "path": "/home/user/.openclaw/agents/work/sessions/sessions.json" }
|
||||
],
|
||||
"allAgents": true,
|
||||
"count": 2,
|
||||
"activeMinutes": null,
|
||||
"sessions": [
|
||||
{ "agentId": "main", "key": "agent:main:main", "model": "gpt-5" },
|
||||
{ "agentId": "work", "key": "agent:work:main", "model": "claude-opus-4-6" }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Обслуговування очищення
|
||||
|
||||
Запустіть обслуговування зараз (замість очікування наступного циклу запису):
|
||||
|
||||
```bash
|
||||
openclaw sessions cleanup --dry-run
|
||||
openclaw sessions cleanup --agent work --dry-run
|
||||
openclaw sessions cleanup --all-agents --dry-run
|
||||
openclaw sessions cleanup --enforce
|
||||
openclaw sessions cleanup --enforce --active-key "agent:main:telegram:direct:123"
|
||||
openclaw sessions cleanup --json
|
||||
```
|
||||
|
||||
`openclaw sessions cleanup` використовує параметри `session.maintenance` з конфігурації:
|
||||
|
||||
- Примітка щодо області: `openclaw sessions cleanup` обслуговує лише сховища сесій/transcript. Воно не очищує журнали запусків cron (`cron/runs/<jobId>.jsonl`), якими керують `cron.runLog.maxBytes` і `cron.runLog.keepLines` у [Cron configuration](/uk/automation/cron-jobs#configuration) і які пояснюються в [Cron maintenance](/uk/automation/cron-jobs#maintenance).
|
||||
|
||||
- `--dry-run`: попередньо показати, скільки записів буде очищено/обмежено без запису.
|
||||
- У текстовому режимі dry-run виводить таблицю дій для кожної сесії (`Action`, `Key`, `Age`, `Model`, `Flags`), щоб ви могли побачити, що буде збережено, а що видалено.
|
||||
- `--enforce`: застосувати обслуговування, навіть коли `session.maintenance.mode` має значення `warn`.
|
||||
- `--fix-missing`: видалити записи, файли transcript яких відсутні, навіть якщо зазвичай вони ще не підлягали б очищенню через вік/кількість.
|
||||
- `--active-key <key>`: захистити конкретний активний ключ від витіснення через бюджет диска.
|
||||
- `--agent <id>`: запустити очищення для одного сховища налаштованого агента.
|
||||
- `--all-agents`: запустити очищення для всіх сховищ налаштованих агентів.
|
||||
- `--store <path>`: запустити для конкретного файла `sessions.json`.
|
||||
- `--json`: вивести зведення JSON. Із `--all-agents` вивід містить одне зведення для кожного сховища.
|
||||
|
||||
`openclaw sessions cleanup --all-agents --dry-run --json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"allAgents": true,
|
||||
"mode": "warn",
|
||||
"dryRun": true,
|
||||
"stores": [
|
||||
{
|
||||
"agentId": "main",
|
||||
"storePath": "/home/user/.openclaw/agents/main/sessions/sessions.json",
|
||||
"beforeCount": 120,
|
||||
"afterCount": 80,
|
||||
"pruned": 40,
|
||||
"capped": 0
|
||||
},
|
||||
{
|
||||
"agentId": "work",
|
||||
"storePath": "/home/user/.openclaw/agents/work/sessions/sessions.json",
|
||||
"beforeCount": 18,
|
||||
"afterCount": 18,
|
||||
"pruned": 0,
|
||||
"capped": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Пов’язане:
|
||||
|
||||
- Конфігурація сесій: [Configuration reference](/uk/gateway/configuration-reference#session)
|
||||
52
docs/uk/cli/setup.md
Normal file
52
docs/uk/cli/setup.md
Normal file
@ -0,0 +1,52 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви виконуєте початкове налаштування без повного онбордингу CLI
|
||||
- Ви хочете встановити типовий шлях до workspace
|
||||
summary: Довідник CLI для `openclaw setup` (ініціалізація конфігурації та workspace)
|
||||
title: setup
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:19:18Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: f538aac341c749043ad959e35f2ed99c844ab8c3500ff59aa159d940bd301792
|
||||
source_path: cli/setup.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw setup`
|
||||
|
||||
Ініціалізуйте `~/.openclaw/openclaw.json` і workspace агента.
|
||||
|
||||
Пов’язане:
|
||||
|
||||
- Початок роботи: [Початок роботи](/uk/start/getting-started)
|
||||
- Онбординг CLI: [Онбординг (CLI)](/uk/start/wizard)
|
||||
|
||||
## Приклади
|
||||
|
||||
```bash
|
||||
openclaw setup
|
||||
openclaw setup --workspace ~/.openclaw/workspace
|
||||
openclaw setup --wizard
|
||||
openclaw setup --non-interactive --mode remote --remote-url wss://gateway-host:18789 --remote-token <token>
|
||||
```
|
||||
|
||||
## Параметри
|
||||
|
||||
- `--workspace <dir>`: каталог workspace агента (зберігається як `agents.defaults.workspace`)
|
||||
- `--wizard`: запустити онбординг
|
||||
- `--non-interactive`: запустити онбординг без запитів
|
||||
- `--mode <local|remote>`: режим онбордингу
|
||||
- `--remote-url <url>`: URL WebSocket віддаленого Gateway
|
||||
- `--remote-token <token>`: токен віддаленого Gateway
|
||||
|
||||
Щоб запустити онбординг через setup:
|
||||
|
||||
```bash
|
||||
openclaw setup --wizard
|
||||
```
|
||||
|
||||
Примітки:
|
||||
|
||||
- Звичайна команда `openclaw setup` ініціалізує конфігурацію + workspace без повного потоку онбордингу.
|
||||
- Онбординг запускається автоматично, якщо присутні будь-які прапорці онбордингу (`--wizard`, `--non-interactive`, `--mode`, `--remote-url`, `--remote-token`).
|
||||
66
docs/uk/cli/skills.md
Normal file
66
docs/uk/cli/skills.md
Normal file
@ -0,0 +1,66 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете побачити, які Skills доступні та готові до запуску
|
||||
- Ви хочете шукати, встановлювати або оновлювати Skills із ClawHub
|
||||
- Ви хочете налагодити відсутні бінарні файли/змінні середовища/конфігурацію для Skills
|
||||
summary: Довідка CLI для `openclaw skills` (пошук/встановлення/оновлення/список/інформація/перевірка)
|
||||
title: Skills
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:19:25Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 11af59b1b6bff19cc043acd8d67bdd4303201d3f75f23c948b83bf14882c7bb1
|
||||
source_path: cli/skills.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw skills`
|
||||
|
||||
Перевіряйте локальні Skills і встановлюйте/оновлюйте Skills із ClawHub.
|
||||
|
||||
Пов’язане:
|
||||
|
||||
- Система Skills: [Skills](/uk/tools/skills)
|
||||
- Конфігурація Skills: [Конфігурація Skills](/uk/tools/skills-config)
|
||||
- Встановлення з ClawHub: [ClawHub](/uk/tools/clawhub)
|
||||
|
||||
## Команди
|
||||
|
||||
```bash
|
||||
openclaw skills search "calendar"
|
||||
openclaw skills search --limit 20 --json
|
||||
openclaw skills install <slug>
|
||||
openclaw skills install <slug> --version <version>
|
||||
openclaw skills install <slug> --force
|
||||
openclaw skills update <slug>
|
||||
openclaw skills update --all
|
||||
openclaw skills list
|
||||
openclaw skills list --eligible
|
||||
openclaw skills list --json
|
||||
openclaw skills list --verbose
|
||||
openclaw skills info <name>
|
||||
openclaw skills info <name> --json
|
||||
openclaw skills check
|
||||
openclaw skills check --json
|
||||
```
|
||||
|
||||
`search`/`install`/`update` використовують ClawHub безпосередньо й установлюють у активний
|
||||
каталог робочого простору `skills/`. `list`/`info`/`check` і далі перевіряють локальні
|
||||
Skills, видимі для поточного робочого простору та конфігурації.
|
||||
|
||||
Ця команда CLI `install` завантажує теки Skills із ClawHub. Установлення залежностей skill через gateway,
|
||||
які запускаються з onboarding або налаштувань Skills, натомість використовують окремий
|
||||
шлях запиту `skills.install`.
|
||||
|
||||
Примітки:
|
||||
|
||||
- `search [query...]` приймає необов’язковий пошуковий запит; не вказуйте його, щоб переглянути стандартну
|
||||
стрічку пошуку ClawHub.
|
||||
- `search --limit <n>` обмежує кількість повернених результатів.
|
||||
- `install --force` перезаписує наявну теку workspace skill для того самого
|
||||
slug.
|
||||
- `update --all` оновлює лише відстежувані встановлення з ClawHub в активному workspace.
|
||||
- `list` є дією за замовчуванням, якщо підкоманду не вказано.
|
||||
- `list`, `info` і `check` записують свій відрендерений вивід у stdout. З
|
||||
`--json` це означає, що машинозчитуване корисне навантаження лишається в stdout для конвеєрів
|
||||
і скриптів.
|
||||
42
docs/uk/cli/status.md
Normal file
42
docs/uk/cli/status.md
Normal file
@ -0,0 +1,42 @@
|
||||
---
|
||||
read_when:
|
||||
- Вам потрібна швидка діагностика стану каналу + нещодавніх одержувачів сеансу
|
||||
- Вам потрібен придатний для вставлення статус “all” для налагодження
|
||||
summary: Довідник CLI для `openclaw status` (діагностика, проби, знімки використання)
|
||||
title: status
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:19:26Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: fbe9d94fbe9938cd946ee6f293b5bd3b464b75e1ade2eacdd851788c3bffe94e
|
||||
source_path: cli/status.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw status`
|
||||
|
||||
Діагностика для каналів і сеансів.
|
||||
|
||||
```bash
|
||||
openclaw status
|
||||
openclaw status --all
|
||||
openclaw status --deep
|
||||
openclaw status --usage
|
||||
```
|
||||
|
||||
Примітки:
|
||||
|
||||
- `--deep` запускає живі проби (WhatsApp Web + Telegram + Discord + Slack + Signal).
|
||||
- `--usage` виводить нормалізовані вікна використання провайдера як `X% left`.
|
||||
- Необроблені поля `usage_percent` / `usagePercent` у MiniMax означають залишок квоти, тому OpenClaw інвертує їх перед відображенням; за наявності пріоритет мають поля на основі лічильників. Відповіді `model_remains` віддають перевагу запису chat-model, за потреби виводять мітку вікна з часових позначок і включають назву моделі в мітку плану.
|
||||
- Коли поточний знімок сеансу містить мало даних, `/status` може добирати лічильники токенів і кешу з найновішого журналу використання transcript. Наявні ненульові live-значення все одно мають пріоритет над резервними значеннями з transcript.
|
||||
- Резервні дані з transcript також можуть відновити мітку активної runtime-моделі, якщо її немає в live-записі сеансу. Якщо ця модель із transcript відрізняється від вибраної моделі, status визначає context window за відновленою runtime-моделлю, а не за вибраною.
|
||||
- Для обліку розміру prompt резервні дані з transcript віддають перевагу більшому загальному значенню, орієнтованому на prompt, коли метадані сеансу відсутні або менші, щоб сеанси custom-provider не зводилися до відображення `0` токенів.
|
||||
- Вивід включає сховища сеансів для кожного агента, якщо налаштовано кілька агентів.
|
||||
- Огляд включає стан встановлення/виконання Gateway і служби вузла хоста, якщо доступно.
|
||||
- Огляд включає канал оновлення та git SHA (для source checkout).
|
||||
- Інформація про оновлення відображається в огляді; якщо оновлення доступне, status показує підказку виконати `openclaw update` (див. [Оновлення](/uk/install/updating)).
|
||||
- Поверхні status лише для читання (`status`, `status --json`, `status --all`) за можливості визначають підтримувані SecretRef для цільових шляхів конфігурації.
|
||||
- Якщо підтримуваний SecretRef каналу налаштований, але недоступний у поточному шляху команди, status залишається лише для читання і повідомляє про деградований вивід замість аварійного завершення. Людинозрозумілий вивід показує попередження на кшталт “configured token unavailable in this command path”, а JSON-вивід включає `secretDiagnostics`.
|
||||
- Коли локальне для команди визначення SecretRef успішне, status віддає перевагу визначеному знімку і прибирає тимчасові маркери каналу “secret unavailable” з фінального виводу.
|
||||
- `status --all` включає рядок огляду Secrets і розділ діагностики, який підсумовує діагностику секретів (усічено для зручності читання) без зупинки генерації звіту.
|
||||
78
docs/uk/cli/system.md
Normal file
78
docs/uk/cli/system.md
Normal file
@ -0,0 +1,78 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете поставити системну подію в чергу без створення завдання Cron
|
||||
- Вам потрібно ввімкнути або вимкнути Heartbeat
|
||||
- Ви хочете переглянути записи системної присутності
|
||||
summary: Довідник CLI для `openclaw system` (системні події, Heartbeat, присутність)
|
||||
title: система
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:19:35Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: a7d19afde9d9cde8a79b0bb8cec6e5673466f4cb9b575fb40111fc32f4eee5d7
|
||||
source_path: cli/system.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw system`
|
||||
|
||||
Допоміжні засоби рівня системи для Gateway: постановка системних подій у чергу, керування Heartbeat
|
||||
і перегляд присутності.
|
||||
|
||||
Усі підкоманди `system` використовують Gateway RPC і приймають спільні прапорці клієнта:
|
||||
|
||||
- `--url <url>`
|
||||
- `--token <token>`
|
||||
- `--timeout <ms>`
|
||||
- `--expect-final`
|
||||
|
||||
## Поширені команди
|
||||
|
||||
```bash
|
||||
openclaw system event --text "Check for urgent follow-ups" --mode now
|
||||
openclaw system event --text "Check for urgent follow-ups" --url ws://127.0.0.1:18789 --token "$OPENCLAW_GATEWAY_TOKEN"
|
||||
openclaw system heartbeat enable
|
||||
openclaw system heartbeat last
|
||||
openclaw system presence
|
||||
```
|
||||
|
||||
## `system event`
|
||||
|
||||
Поставити системну подію в чергу в **main**-сесії. Наступний Heartbeat вставить
|
||||
її як рядок `System:` у prompt. Використовуйте `--mode now`, щоб негайно запустити Heartbeat;
|
||||
`next-heartbeat` чекає наступного запланованого тіку.
|
||||
|
||||
Прапорці:
|
||||
|
||||
- `--text <text>`: обов’язковий текст системної події.
|
||||
- `--mode <mode>`: `now` або `next-heartbeat` (типово).
|
||||
- `--json`: машиночитаний вивід.
|
||||
- `--url`, `--token`, `--timeout`, `--expect-final`: спільні прапорці Gateway RPC.
|
||||
|
||||
## `system heartbeat last|enable|disable`
|
||||
|
||||
Керування Heartbeat:
|
||||
|
||||
- `last`: показати останню подію Heartbeat.
|
||||
- `enable`: знову ввімкнути Heartbeat (використовуйте це, якщо його було вимкнено).
|
||||
- `disable`: призупинити Heartbeat.
|
||||
|
||||
Прапорці:
|
||||
|
||||
- `--json`: машиночитаний вивід.
|
||||
- `--url`, `--token`, `--timeout`, `--expect-final`: спільні прапорці Gateway RPC.
|
||||
|
||||
## `system presence`
|
||||
|
||||
Показати список поточних записів системної присутності, про які знає Gateway (nodes,
|
||||
instances та подібні рядки стану).
|
||||
|
||||
Прапорці:
|
||||
|
||||
- `--json`: машиночитаний вивід.
|
||||
- `--url`, `--token`, `--timeout`, `--expect-final`: спільні прапорці Gateway RPC.
|
||||
|
||||
## Примітки
|
||||
|
||||
- Потребує запущеного Gateway, доступного через вашу поточну конфігурацію (локальну або віддалену).
|
||||
- Системні події є ефемерними й не зберігаються між перезапусками.
|
||||
105
docs/uk/cli/tasks.md
Normal file
105
docs/uk/cli/tasks.md
Normal file
@ -0,0 +1,105 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете переглянути, перевірити або скасувати записи фонових завдань
|
||||
- Ви документуєте команди TaskFlow у розділі `openclaw tasks flow`
|
||||
summary: Довідка CLI для `openclaw tasks` (реєстр фонових завдань і стан TaskFlow)
|
||||
title: '`openclaw tasks`'
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:19:42Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 549e07c8a576cb4c5bd48874f16b0daa4a34facb53b102e12d358bdad2191628
|
||||
source_path: cli/tasks.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw tasks`
|
||||
|
||||
Переглядайте довготривалі фонові завдання й стан TaskFlow. Без підкоманди
|
||||
`openclaw tasks` еквівалентна `openclaw tasks list`.
|
||||
|
||||
Див. [Фонові завдання](/uk/automation/tasks) для життєвого циклу та моделі доставки.
|
||||
|
||||
## Використання
|
||||
|
||||
```bash
|
||||
openclaw tasks
|
||||
openclaw tasks list
|
||||
openclaw tasks list --runtime acp
|
||||
openclaw tasks list --status running
|
||||
openclaw tasks show <lookup>
|
||||
openclaw tasks notify <lookup> state_changes
|
||||
openclaw tasks cancel <lookup>
|
||||
openclaw tasks audit
|
||||
openclaw tasks maintenance
|
||||
openclaw tasks maintenance --apply
|
||||
openclaw tasks flow list
|
||||
openclaw tasks flow show <lookup>
|
||||
openclaw tasks flow cancel <lookup>
|
||||
```
|
||||
|
||||
## Кореневі параметри
|
||||
|
||||
- `--json`: виводити JSON.
|
||||
- `--runtime <name>`: фільтрувати за типом: `subagent`, `acp`, `cron` або `cli`.
|
||||
- `--status <name>`: фільтрувати за статусом: `queued`, `running`, `succeeded`, `failed`, `timed_out`, `cancelled` або `lost`.
|
||||
|
||||
## Підкоманди
|
||||
|
||||
### `list`
|
||||
|
||||
```bash
|
||||
openclaw tasks list [--runtime <name>] [--status <name>] [--json]
|
||||
```
|
||||
|
||||
Показує відстежувані фонові завдання, починаючи з найновіших.
|
||||
|
||||
### `show`
|
||||
|
||||
```bash
|
||||
openclaw tasks show <lookup> [--json]
|
||||
```
|
||||
|
||||
Показує одне завдання за ID завдання, ID запуску або ключем сеансу.
|
||||
|
||||
### `notify`
|
||||
|
||||
```bash
|
||||
openclaw tasks notify <lookup> <done_only|state_changes|silent>
|
||||
```
|
||||
|
||||
Змінює політику сповіщень для фонового завдання, що виконується.
|
||||
|
||||
### `cancel`
|
||||
|
||||
```bash
|
||||
openclaw tasks cancel <lookup>
|
||||
```
|
||||
|
||||
Скасовує фонове завдання, що виконується.
|
||||
|
||||
### `audit`
|
||||
|
||||
```bash
|
||||
openclaw tasks audit [--severity <warn|error>] [--code <name>] [--limit <n>] [--json]
|
||||
```
|
||||
|
||||
Виявляє застарілі, втрачені, з невдалою доставкою або іншим чином неузгоджені записи завдань і TaskFlow.
|
||||
|
||||
### `maintenance`
|
||||
|
||||
```bash
|
||||
openclaw tasks maintenance [--apply] [--json]
|
||||
```
|
||||
|
||||
Попередньо переглядає або застосовує звіряння завдань і TaskFlow, позначення очищення та обрізання.
|
||||
|
||||
### `flow`
|
||||
|
||||
```bash
|
||||
openclaw tasks flow list [--status <name>] [--json]
|
||||
openclaw tasks flow show <lookup> [--json]
|
||||
openclaw tasks flow cancel <lookup>
|
||||
```
|
||||
|
||||
Переглядає або скасовує довготривалий стан TaskFlow у реєстрі завдань.
|
||||
73
docs/uk/cli/tui.md
Normal file
73
docs/uk/cli/tui.md
Normal file
@ -0,0 +1,73 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете TUI для Gateway (зручно для віддаленої роботи)
|
||||
- Ви хочете передавати url/token/session зі скриптів
|
||||
- Ви хочете запускати TUI у локальному вбудованому режимі без Gateway
|
||||
- Ви хочете використовувати openclaw chat або openclaw tui --local
|
||||
summary: Довідка CLI для `openclaw tui` (TUI на основі Gateway або локально вбудований)
|
||||
title: TUI
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:19:44Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 5f4b7cf2468779e0711f38a2cc304d783bb115fd5c5e573c9d1bc982da6e2905
|
||||
source_path: cli/tui.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw tui`
|
||||
|
||||
Відкрийте TUI термінала, підключений до Gateway, або запустіть його в локальному вбудованому
|
||||
режимі.
|
||||
|
||||
Пов’язано:
|
||||
|
||||
- Посібник з TUI: [TUI](/uk/web/tui)
|
||||
|
||||
Примітки:
|
||||
|
||||
- `chat` і `terminal` — це псевдоніми для `openclaw tui --local`.
|
||||
- `--local` не можна поєднувати з `--url`, `--token` або `--password`.
|
||||
- `tui` визначає налаштовані auth SecretRef Gateway для автентифікації токеном/паролем, коли це можливо (`env`/`file`/`exec` providers).
|
||||
- Якщо запуск відбувається зсередини каталогу налаштованого робочого простору агента, TUI автоматично вибирає цього агента як типове значення ключа сесії (якщо тільки `--session` не задано явно як `agent:<id>:...`).
|
||||
- Локальний режим використовує вбудоване середовище виконання агента безпосередньо. Більшість локальних інструментів працює, але функції лише Gateway недоступні.
|
||||
- У локальному режимі до поверхні команд TUI додається `/auth [provider]`.
|
||||
|
||||
## Приклади
|
||||
|
||||
```bash
|
||||
openclaw chat
|
||||
openclaw tui --local
|
||||
openclaw tui
|
||||
openclaw tui --url ws://127.0.0.1:18789 --token <token>
|
||||
openclaw tui --session main --deliver
|
||||
openclaw chat --message "Compare my config to the docs and tell me what to fix"
|
||||
# when run inside an agent workspace, infers that agent automatically
|
||||
openclaw tui --session bugfix
|
||||
```
|
||||
|
||||
## Цикл виправлення конфігурації
|
||||
|
||||
Використовуйте локальний режим, коли поточна конфігурація вже проходить
|
||||
перевірку і ви хочете, щоб вбудований агент проаналізував її, порівняв із документацією та допоміг виправити
|
||||
з того самого термінала:
|
||||
|
||||
Якщо `openclaw config validate` уже завершується помилкою, спочатку використайте `openclaw configure` або
|
||||
`openclaw doctor --fix`. `openclaw chat` не обходить захист від недійсної
|
||||
конфігурації.
|
||||
|
||||
```bash
|
||||
openclaw chat
|
||||
```
|
||||
|
||||
Потім усередині TUI:
|
||||
|
||||
```text
|
||||
!openclaw config file
|
||||
!openclaw docs gateway auth token secretref
|
||||
!openclaw config validate
|
||||
!openclaw doctor
|
||||
```
|
||||
|
||||
Застосовуйте точкові виправлення за допомогою `openclaw config set` або `openclaw configure`, а потім
|
||||
повторно запускайте `openclaw config validate`. Див. [TUI](/uk/web/tui) і [Config](/uk/cli/config).
|
||||
46
docs/uk/cli/uninstall.md
Normal file
46
docs/uk/cli/uninstall.md
Normal file
@ -0,0 +1,46 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете видалити службу Gateway та/або локальний стан
|
||||
- Ви спочатку хочете dry-run
|
||||
summary: Довідник CLI для `openclaw uninstall` (видалення служби Gateway і локальних даних)
|
||||
title: uninstall
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:19:41Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 2123a4f9c7a070ef7e13c60dafc189053ef61ce189fa4f29449dd50987c1894c
|
||||
source_path: cli/uninstall.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw uninstall`
|
||||
|
||||
Видалення служби Gateway + локальних даних (CLI залишається).
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--service`: видалити службу Gateway
|
||||
- `--state`: видалити стан і конфігурацію
|
||||
- `--workspace`: видалити каталоги workspace
|
||||
- `--app`: видалити застосунок macOS
|
||||
- `--all`: видалити службу, стан, workspace і застосунок
|
||||
- `--yes`: пропустити запити на підтвердження
|
||||
- `--non-interactive`: вимкнути запити; потребує `--yes`
|
||||
- `--dry-run`: показати дії без видалення файлів
|
||||
|
||||
Приклади:
|
||||
|
||||
```bash
|
||||
openclaw backup create
|
||||
openclaw uninstall
|
||||
openclaw uninstall --service --yes --non-interactive
|
||||
openclaw uninstall --state --workspace --yes --non-interactive
|
||||
openclaw uninstall --all --yes
|
||||
openclaw uninstall --dry-run
|
||||
```
|
||||
|
||||
Примітки:
|
||||
|
||||
- Спочатку виконайте `openclaw backup create`, якщо хочете мати відновлюваний знімок перед видаленням стану або workspace.
|
||||
- `--all` — це скорочення для одночасного видалення служби, стану, workspace і застосунку.
|
||||
- `--non-interactive` потребує `--yes`.
|
||||
135
docs/uk/cli/update.md
Normal file
135
docs/uk/cli/update.md
Normal file
@ -0,0 +1,135 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете безпечно оновити checkout із вихідним кодом
|
||||
- Вам потрібно зрозуміти скорочену поведінку `--update`
|
||||
summary: Довідка CLI для `openclaw update` (відносно безпечне оновлення вихідного коду + автоматичний перезапуск gateway)
|
||||
title: оновлення
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:19:50Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: dc049ecf3d35fe276a1e5962bb8e5316dbbc3219ef0b91ee64d41cbbea20f9ae
|
||||
source_path: cli/update.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `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 після успішного оновлення.
|
||||
- `--channel <stable|beta|dev>`: установити канал оновлення (git + npm; зберігається в config).
|
||||
- `--tag <dist-tag|version|spec>`: перевизначити ціль пакета лише для цього оновлення. Для встановлень через пакети `main` зіставляється з `github:openclaw/openclaw#main`.
|
||||
- `--dry-run`: попередньо показати заплановані дії оновлення (канал/tag/ціль/потік перезапуску) без запису config, встановлення, синхронізації plugins або перезапуску.
|
||||
- `--json`: вивести машинозчитуваний JSON `UpdateRunResult`, включно з
|
||||
`postUpdate.plugins.integrityDrifts`, коли під час післяоновлювальної синхронізації plugins виявлено
|
||||
розходження артефактів npm plugin.
|
||||
- `--timeout <seconds>`: тайм-аут для кожного кроку (типово 1200 с).
|
||||
- `--yes`: пропустити запити на підтвердження (наприклад підтвердження зниження версії)
|
||||
|
||||
Примітка: зниження версії вимагає підтвердження, оскільки старіші версії можуть зламати конфігурацію.
|
||||
|
||||
## `update status`
|
||||
|
||||
Показати активний канал оновлення + git tag/branch/SHA (для checkout із вихідним кодом), а також доступність оновлень.
|
||||
|
||||
```bash
|
||||
openclaw update status
|
||||
openclaw update status --json
|
||||
openclaw update status --timeout 10
|
||||
```
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--json`: вивести машинозчитуваний JSON стану.
|
||||
- `--timeout <seconds>`: тайм-аут для перевірок (типово 3 с).
|
||||
|
||||
## `update wizard`
|
||||
|
||||
Інтерактивний потік для вибору каналу оновлення та підтвердження, чи слід перезапустити Gateway
|
||||
після оновлення (типово — перезапуск). Якщо ви виберете `dev` без checkout git, він
|
||||
запропонує створити його.
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--timeout <seconds>`: тайм-аут для кожного кроку оновлення (типово `1200`)
|
||||
|
||||
## Що це робить
|
||||
|
||||
Коли ви явно перемикаєте канали (`--channel ...`), OpenClaw також підтримує
|
||||
узгодженість зі способом встановлення:
|
||||
|
||||
- `dev` → забезпечує наявність checkout git (типово: `~/openclaw`, можна перевизначити через `OPENCLAW_GIT_DIR`),
|
||||
оновлює його та встановлює глобальний CLI з цього checkout.
|
||||
- `stable` → встановлює з npm, використовуючи `latest`.
|
||||
- `beta` → надає перевагу npm dist-tag `beta`, але повертається до `latest`, якщо beta
|
||||
відсутня або старіша за поточний стабільний випуск.
|
||||
|
||||
Автооновлювач ядра Gateway (коли його ввімкнено через config) повторно використовує цей самий шлях оновлення.
|
||||
|
||||
Для встановлень через менеджер пакетів `openclaw update` визначає цільову версію пакета
|
||||
перед викликом менеджера пакетів. Якщо встановлена версія точно
|
||||
збігається з цільовою і не потрібно зберігати жодну зміну каналу оновлення, команда
|
||||
завершується як пропущена ще до встановлення пакета, синхронізації plugins, оновлення completion
|
||||
або перезапуску gateway.
|
||||
|
||||
## Потік checkout git
|
||||
|
||||
Канали:
|
||||
|
||||
- `stable`: checkout останнього non-beta tag, потім build + doctor.
|
||||
- `beta`: надає перевагу останньому tag `-beta`, але повертається до останнього stable tag,
|
||||
якщо beta відсутній або старіший.
|
||||
- `dev`: checkout `main`, потім fetch + rebase.
|
||||
|
||||
На високому рівні:
|
||||
|
||||
1. Потрібен чистий worktree (без незакомічених змін).
|
||||
2. Перемикається на вибраний канал (tag або branch).
|
||||
3. Отримує зміни з upstream (лише dev).
|
||||
4. Лише для dev: виконує попередню перевірку lint + збірку TypeScript у тимчасовому worktree; якщо вершина не проходить перевірку, відступає до 10 комітів назад, щоб знайти найновішу чисту збірку.
|
||||
5. Виконує rebase на вибраний коміт (лише dev).
|
||||
6. Встановлює залежності за допомогою менеджера пакетів репозиторію. Для checkout із pnpm засіб оновлення за потреби ініціалізує `pnpm` (спочатку через `corepack`, потім через тимчасовий резервний `npm install pnpm@10`) замість виконання `npm run build` усередині workspace pnpm.
|
||||
7. Виконує build + build Control UI.
|
||||
8. Запускає `openclaw doctor` як фінальну перевірку «безпечного оновлення».
|
||||
9. Синхронізує plugins з активним каналом (dev використовує bundled extensions; stable/beta використовують npm) і оновлює plugins, установлені через npm.
|
||||
|
||||
Якщо оновлення точно закріпленого npm plugin визначається до артефакту, чия цілісність
|
||||
відрізняється від збереженого запису встановлення, `openclaw update` перериває це оновлення
|
||||
артефакту plugin замість його встановлення. Перевстановлюйте або оновлюйте plugin
|
||||
явно лише після перевірки, що ви довіряєте новому артефакту.
|
||||
|
||||
Якщо ініціалізація pnpm усе ще завершується невдачею, засіб оновлення тепер рано зупиняється з помилкою, специфічною для менеджера пакетів, замість спроби виконати `npm run build` усередині checkout.
|
||||
|
||||
## Скорочення `--update`
|
||||
|
||||
`openclaw --update` переписується в `openclaw update` (корисно для shell і launcher-скриптів).
|
||||
|
||||
## Див. також
|
||||
|
||||
- `openclaw doctor` (пропонує спочатку запустити оновлення для checkout git)
|
||||
- [Канали розробки](/uk/install/development-channels)
|
||||
- [Оновлення](/uk/install/updating)
|
||||
- [Довідка CLI](/uk/cli)
|
||||
41
docs/uk/cli/voicecall.md
Normal file
41
docs/uk/cli/voicecall.md
Normal file
@ -0,0 +1,41 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви використовуєте voice-call plugin і хочете отримати точки входу CLI
|
||||
- Ви хочете отримати швидкі приклади для `voicecall call|continue|status|tail|expose`
|
||||
summary: Довідник CLI для `openclaw voicecall` (поверхня команд voice-call plugin)
|
||||
title: голосовий виклик
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:19:47Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 2c99e7a3d256e1c74a0f07faba9675cc5a88b1eb2fc6e22993caf3874d4f340a
|
||||
source_path: cli/voicecall.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw voicecall`
|
||||
|
||||
`voicecall` — це команда, яку надає plugin. Вона з’являється лише тоді, коли plugin voice-call установлено та ввімкнено.
|
||||
|
||||
Основна документація:
|
||||
|
||||
- Plugin voice-call: [Voice Call](/uk/plugins/voice-call)
|
||||
|
||||
## Поширені команди
|
||||
|
||||
```bash
|
||||
openclaw voicecall status --call-id <id>
|
||||
openclaw voicecall call --to "+15555550123" --message "Hello" --mode notify
|
||||
openclaw voicecall continue --call-id <id> --message "Any questions?"
|
||||
openclaw voicecall end --call-id <id>
|
||||
```
|
||||
|
||||
## Відкриття Webhook назовні (Tailscale)
|
||||
|
||||
```bash
|
||||
openclaw voicecall expose --mode serve
|
||||
openclaw voicecall expose --mode funnel
|
||||
openclaw voicecall expose --mode off
|
||||
```
|
||||
|
||||
Примітка щодо безпеки: відкривайте endpoint Webhook лише для мереж, яким ви довіряєте. Якщо можливо, надавайте перевагу Tailscale Serve замість Funnel.
|
||||
98
docs/uk/cli/webhooks.md
Normal file
98
docs/uk/cli/webhooks.md
Normal file
@ -0,0 +1,98 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете підключити події Gmail Pub/Sub до OpenClaw
|
||||
- Вам потрібні допоміжні команди Webhook
|
||||
summary: Довідник CLI для `openclaw webhooks` (допоміжні засоби Webhook + Gmail Pub/Sub)
|
||||
title: webhooks
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:19:50Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 2b22ce879c3a94557be57919b4d2b3e92ff4d41fbae7bc88d2ab07cd4bbeac83
|
||||
source_path: cli/webhooks.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw webhooks`
|
||||
|
||||
Допоміжні засоби Webhook та інтеграції (Gmail Pub/Sub, допоміжні засоби webhook).
|
||||
|
||||
Пов’язане:
|
||||
|
||||
- Webhooks: [Webhooks](/uk/automation/cron-jobs#webhooks)
|
||||
- Gmail Pub/Sub: [Gmail Pub/Sub](/uk/automation/cron-jobs#gmail-pubsub-integration)
|
||||
|
||||
## Gmail
|
||||
|
||||
```bash
|
||||
openclaw webhooks gmail setup --account you@example.com
|
||||
openclaw webhooks gmail run
|
||||
```
|
||||
|
||||
### `webhooks gmail setup`
|
||||
|
||||
Налаштування Gmail watch, Pub/Sub і доставки Webhook OpenClaw.
|
||||
|
||||
Обов’язково:
|
||||
|
||||
- `--account <email>`
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--project <id>`
|
||||
- `--topic <name>`
|
||||
- `--subscription <name>`
|
||||
- `--label <label>`
|
||||
- `--hook-url <url>`
|
||||
- `--hook-token <token>`
|
||||
- `--push-token <token>`
|
||||
- `--bind <host>`
|
||||
- `--port <port>`
|
||||
- `--path <path>`
|
||||
- `--include-body`
|
||||
- `--max-bytes <n>`
|
||||
- `--renew-minutes <n>`
|
||||
- `--tailscale <funnel|serve|off>`
|
||||
- `--tailscale-path <path>`
|
||||
- `--tailscale-target <target>`
|
||||
- `--push-endpoint <url>`
|
||||
- `--json`
|
||||
|
||||
Приклади:
|
||||
|
||||
```bash
|
||||
openclaw webhooks gmail setup --account you@example.com
|
||||
openclaw webhooks gmail setup --account you@example.com --project my-gcp-project --json
|
||||
openclaw webhooks gmail setup --account you@example.com --hook-url https://gateway.example.com/hooks/gmail
|
||||
```
|
||||
|
||||
### `webhooks gmail run`
|
||||
|
||||
Запуск `gog watch serve` разом із циклом автоматичного поновлення watch.
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--account <email>`
|
||||
- `--topic <topic>`
|
||||
- `--subscription <name>`
|
||||
- `--label <label>`
|
||||
- `--hook-url <url>`
|
||||
- `--hook-token <token>`
|
||||
- `--push-token <token>`
|
||||
- `--bind <host>`
|
||||
- `--port <port>`
|
||||
- `--path <path>`
|
||||
- `--include-body`
|
||||
- `--max-bytes <n>`
|
||||
- `--renew-minutes <n>`
|
||||
- `--tailscale <funnel|serve|off>`
|
||||
- `--tailscale-path <path>`
|
||||
- `--tailscale-target <target>`
|
||||
|
||||
Приклад:
|
||||
|
||||
```bash
|
||||
openclaw webhooks gmail run --account you@example.com
|
||||
```
|
||||
|
||||
Див. [документацію Gmail Pub/Sub](/uk/automation/cron-jobs#gmail-pubsub-integration) для наскрізного процесу налаштування та операційних деталей.
|
||||
220
docs/uk/cli/wiki.md
Normal file
220
docs/uk/cli/wiki.md
Normal file
@ -0,0 +1,220 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете використовувати CLI memory-wiki
|
||||
- Ви документуєте або змінюєте `openclaw wiki`
|
||||
summary: Довідка CLI для `openclaw wiki` (стан сховища memory-wiki, пошук, компіляція, lint, застосування, міст і допоміжні засоби Obsidian)
|
||||
title: вікі
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:19:51Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: e94908532c35da4edf488266ddc6eee06e8f7833eeba5f2b5c0c7d5d45b65eef
|
||||
source_path: cli/wiki.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# `openclaw wiki`
|
||||
|
||||
Перегляд і підтримка сховища `memory-wiki`.
|
||||
|
||||
Надається вбудованим Plugin `memory-wiki`.
|
||||
|
||||
Пов’язане:
|
||||
|
||||
- [Plugin Memory Wiki](/uk/plugins/memory-wiki)
|
||||
- [Огляд пам’яті](/uk/concepts/memory)
|
||||
- [CLI: memory](/uk/cli/memory)
|
||||
|
||||
## Для чого це потрібно
|
||||
|
||||
Використовуйте `openclaw wiki`, коли вам потрібне скомпільоване сховище знань із:
|
||||
|
||||
- пошуком і читанням сторінок, нативними для вікі
|
||||
- синтезами з багатим походженням даних
|
||||
- звітами про суперечності та актуальність
|
||||
- імпортом через міст з активного Plugin пам’яті
|
||||
- необов’язковими допоміжними засобами CLI для Obsidian
|
||||
|
||||
## Поширені команди
|
||||
|
||||
```bash
|
||||
openclaw wiki status
|
||||
openclaw wiki doctor
|
||||
openclaw wiki init
|
||||
openclaw wiki ingest ./notes/alpha.md
|
||||
openclaw wiki compile
|
||||
openclaw wiki lint
|
||||
openclaw wiki search "alpha"
|
||||
openclaw wiki get entity.alpha --from 1 --lines 80
|
||||
|
||||
openclaw wiki apply synthesis "Alpha Summary" \
|
||||
--body "Short synthesis body" \
|
||||
--source-id source.alpha
|
||||
|
||||
openclaw wiki apply metadata entity.alpha \
|
||||
--source-id source.alpha \
|
||||
--status review \
|
||||
--question "Still active?"
|
||||
|
||||
openclaw wiki bridge import
|
||||
openclaw wiki unsafe-local import
|
||||
|
||||
openclaw wiki obsidian status
|
||||
openclaw wiki obsidian search "alpha"
|
||||
openclaw wiki obsidian open syntheses/alpha-summary.md
|
||||
openclaw wiki obsidian command workspace:quick-switcher
|
||||
openclaw wiki obsidian daily
|
||||
```
|
||||
|
||||
## Команди
|
||||
|
||||
### `wiki status`
|
||||
|
||||
Переглянути поточний режим сховища, його стан і доступність CLI Obsidian.
|
||||
|
||||
Спочатку використовуйте це, якщо ви не впевнені, чи сховище ініціалізовано, чи режим bridge
|
||||
працює коректно, або чи доступна інтеграція з Obsidian.
|
||||
|
||||
### `wiki doctor`
|
||||
|
||||
Запустити перевірки стану вікі й показати проблеми конфігурації або сховища.
|
||||
|
||||
Типові проблеми включають:
|
||||
|
||||
- увімкнений режим bridge без публічних артефактів пам’яті
|
||||
- невалідний або відсутній макет сховища
|
||||
- відсутній зовнішній CLI Obsidian, коли очікується режим Obsidian
|
||||
|
||||
### `wiki init`
|
||||
|
||||
Створити макет сховища вікі та стартові сторінки.
|
||||
|
||||
Це ініціалізує кореневу структуру, включно з індексами верхнього рівня та каталогами
|
||||
кешу.
|
||||
|
||||
### `wiki ingest <path-or-url>`
|
||||
|
||||
Імпортувати вміст до шару джерел вікі.
|
||||
|
||||
Примітки:
|
||||
|
||||
- імпорт URL контролюється `ingest.allowUrlIngest`
|
||||
- імпортовані сторінки джерел зберігають походження даних у frontmatter
|
||||
- за наявності відповідного налаштування після імпорту може запускатися автокомпіляція
|
||||
|
||||
### `wiki compile`
|
||||
|
||||
Перебудувати індекси, пов’язані блоки, dashboard і скомпільовані дайджести.
|
||||
|
||||
Це записує стабільні машинно-орієнтовані артефакти до:
|
||||
|
||||
- `.openclaw-wiki/cache/agent-digest.json`
|
||||
- `.openclaw-wiki/cache/claims.jsonl`
|
||||
|
||||
Якщо ввімкнено `render.createDashboards`, compile також оновлює сторінки звітів.
|
||||
|
||||
### `wiki lint`
|
||||
|
||||
Перевірити сховище та повідомити про:
|
||||
|
||||
- структурні проблеми
|
||||
- прогалини в походженні даних
|
||||
- суперечності
|
||||
- відкриті питання
|
||||
- сторінки/твердження з низькою впевненістю
|
||||
- застарілі сторінки/твердження
|
||||
|
||||
Запускайте це після суттєвих оновлень вікі.
|
||||
|
||||
### `wiki search <query>`
|
||||
|
||||
Шукати вміст вікі.
|
||||
|
||||
Поведінка залежить від конфігурації:
|
||||
|
||||
- `search.backend`: `shared` або `local`
|
||||
- `search.corpus`: `wiki`, `memory` або `all`
|
||||
|
||||
Використовуйте `wiki search`, коли вам потрібні ранжування, специфічне для вікі, або деталі походження даних.
|
||||
Для одного широкого проходу спільного пошуку віддавайте перевагу `openclaw memory search`, коли
|
||||
активний Plugin пам’яті надає спільний пошук.
|
||||
|
||||
### `wiki get <lookup>`
|
||||
|
||||
Прочитати сторінку вікі за id або відносним шляхом.
|
||||
|
||||
Приклади:
|
||||
|
||||
```bash
|
||||
openclaw wiki get entity.alpha
|
||||
openclaw wiki get syntheses/alpha-summary.md --from 1 --lines 80
|
||||
```
|
||||
|
||||
### `wiki apply`
|
||||
|
||||
Застосувати вузькі зміни без довільного редагування сторінок.
|
||||
|
||||
Підтримувані сценарії включають:
|
||||
|
||||
- створення/оновлення сторінки синтезу
|
||||
- оновлення метаданих сторінки
|
||||
- приєднання id джерел
|
||||
- додавання питань
|
||||
- додавання суперечностей
|
||||
- оновлення впевненості/статусу
|
||||
- запис структурованих тверджень
|
||||
|
||||
Ця команда існує для того, щоб вікі могла безпечно розвиватися без ручного редагування
|
||||
керованих блоків.
|
||||
|
||||
### `wiki bridge import`
|
||||
|
||||
Імпортувати публічні артефакти пам’яті з активного Plugin пам’яті до сторінок джерел,
|
||||
що підтримуються bridge.
|
||||
|
||||
Використовуйте це в режимі `bridge`, коли хочете, щоб до сховища вікі було підтягнуто
|
||||
останні експортовані артефакти пам’яті.
|
||||
|
||||
### `wiki unsafe-local import`
|
||||
|
||||
Імпортувати з явно налаштованих локальних шляхів у режимі `unsafe-local`.
|
||||
|
||||
Це навмисно експериментальна функція й працює лише в межах тієї самої машини.
|
||||
|
||||
### `wiki obsidian ...`
|
||||
|
||||
Допоміжні команди Obsidian для сховищ, що працюють у режимі, дружньому до Obsidian.
|
||||
|
||||
Підкоманди:
|
||||
|
||||
- `status`
|
||||
- `search`
|
||||
- `open`
|
||||
- `command`
|
||||
- `daily`
|
||||
|
||||
Для них потрібен офіційний CLI `obsidian` у `PATH`, коли
|
||||
увімкнено `obsidian.useOfficialCli`.
|
||||
|
||||
## Практичні поради щодо використання
|
||||
|
||||
- Використовуйте `wiki search` + `wiki get`, коли важливі походження даних і ідентичність сторінки.
|
||||
- Використовуйте `wiki apply` замість ручного редагування керованих згенерованих розділів.
|
||||
- Використовуйте `wiki lint`, перш ніж довіряти суперечливому вмісту або вмісту з низькою впевненістю.
|
||||
- Використовуйте `wiki compile` після масових імпортів або змін у джерелах, коли вам одразу потрібні свіжі
|
||||
dashboard і скомпільовані дайджести.
|
||||
- Використовуйте `wiki bridge import`, коли режим bridge залежить від нових експортованих артефактів пам’яті.
|
||||
|
||||
## Пов’язані налаштування конфігурації
|
||||
|
||||
Поведінка `openclaw wiki` визначається такими параметрами:
|
||||
|
||||
- `plugins.entries.memory-wiki.config.vaultMode`
|
||||
- `plugins.entries.memory-wiki.config.search.backend`
|
||||
- `plugins.entries.memory-wiki.config.search.corpus`
|
||||
- `plugins.entries.memory-wiki.config.bridge.*`
|
||||
- `plugins.entries.memory-wiki.config.obsidian.*`
|
||||
- `plugins.entries.memory-wiki.config.render.*`
|
||||
- `plugins.entries.memory-wiki.config.context.includeCompiledDigestPrompt`
|
||||
|
||||
Повну модель конфігурації див. у [Plugin Memory Wiki](/uk/plugins/memory-wiki).
|
||||
385
docs/uk/web/control-ui.md
Normal file
385
docs/uk/web/control-ui.md
Normal file
@ -0,0 +1,385 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете керувати Gateway з браузера
|
||||
- Ви хочете доступ Tailnet без SSH-тунелів
|
||||
summary: Браузерний Control UI для Gateway (чат, вузли, конфігурація)
|
||||
title: Control UI
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:19:53Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 63e3dbba6b05a5e00499fbe75e6a66a89e0b6b3d9d66e69143068e087f517b8a
|
||||
source_path: web/control-ui.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Control UI (браузер)
|
||||
|
||||
Control UI — це невеликий односторінковий застосунок **Vite + Lit**, який обслуговується Gateway:
|
||||
|
||||
- за замовчуванням: `http://<host>:18789/`
|
||||
- необов’язковий префікс: задайте `gateway.controlUi.basePath` (наприклад, `/openclaw`)
|
||||
|
||||
Він **безпосередньо підключається до WebSocket Gateway** на тому самому порту.
|
||||
|
||||
## Швидке відкриття (локально)
|
||||
|
||||
Якщо Gateway запущено на тому самому комп’ютері, відкрийте:
|
||||
|
||||
- [http://127.0.0.1:18789/](http://127.0.0.1:18789/) (або [http://localhost:18789/](http://localhost:18789/))
|
||||
|
||||
Якщо сторінка не завантажується, спочатку запустіть Gateway: `openclaw gateway`.
|
||||
|
||||
Автентифікація передається під час handshake WebSocket через:
|
||||
|
||||
- `connect.params.auth.token`
|
||||
- `connect.params.auth.password`
|
||||
- заголовки ідентичності Tailscale Serve, коли `gateway.auth.allowTailscale: true`
|
||||
- заголовки ідентичності trusted-proxy, коли `gateway.auth.mode: "trusted-proxy"`
|
||||
|
||||
Панель налаштувань dashboard зберігає токен для поточної сесії вкладки браузера
|
||||
та вибраного URL gateway; паролі не зберігаються. Onboarding зазвичай
|
||||
генерує токен gateway для автентифікації за спільним секретом під час першого підключення, але
|
||||
автентифікація паролем теж працює, коли `gateway.auth.mode` дорівнює `"password"`.
|
||||
|
||||
## Сполучення пристрою (перше підключення)
|
||||
|
||||
Коли ви підключаєтеся до Control UI з нового браузера або пристрою, Gateway
|
||||
вимагає **одноразового схвалення сполучення** — навіть якщо ви в тому самому Tailnet
|
||||
із `gateway.auth.allowTailscale: true`. Це захід безпеки для запобігання
|
||||
несанкціонованому доступу.
|
||||
|
||||
**Що ви побачите:** "disconnected (1008): pairing required"
|
||||
|
||||
**Щоб схвалити пристрій:**
|
||||
|
||||
```bash
|
||||
# Показати очікувані запити
|
||||
openclaw devices list
|
||||
|
||||
# Схвалити за ID запиту
|
||||
openclaw devices approve <requestId>
|
||||
```
|
||||
|
||||
Якщо браузер повторює спробу сполучення зі зміненими даними автентифікації (роль/області дії/публічний
|
||||
ключ), попередній очікуваний запит замінюється, і створюється новий
|
||||
`requestId`. Перед схваленням знову виконайте `openclaw devices list`.
|
||||
|
||||
Якщо браузер уже сполучений і ви змінюєте йому доступ із читання на
|
||||
доступ запису/адміністрування, це вважається оновленням схвалення, а не тихим
|
||||
повторним підключенням. OpenClaw залишає старе схвалення активним, блокує ширше повторне підключення
|
||||
і просить вас явно схвалити новий набір областей дії.
|
||||
|
||||
Після схвалення пристрій запам’ятовується і не потребуватиме повторного схвалення, якщо
|
||||
ви не відкличете його через `openclaw devices revoke --device <id> --role <role>`. Див.
|
||||
[CLI Devices](/uk/cli/devices) для ротації й відкликання токенів.
|
||||
|
||||
**Примітки:**
|
||||
|
||||
- Прямі локальні браузерні підключення через loopback (`127.0.0.1` / `localhost`)
|
||||
схвалюються автоматично.
|
||||
- Підключення браузера через Tailnet і LAN усе одно вимагають явного схвалення, навіть якщо
|
||||
вони походять з тієї самої машини.
|
||||
- Кожен профіль браузера генерує унікальний ID пристрою, тому зміна браузера або
|
||||
очищення даних браузера вимагатиме повторного сполучення.
|
||||
|
||||
## Підтримка мов
|
||||
|
||||
Control UI може локалізувати себе під час першого завантаження на основі локалі вашого браузера.
|
||||
Щоб перевизначити це пізніше, відкрийте **Overview -> Gateway Access -> Language**. Перемикач
|
||||
локалі розташований у картці Gateway Access, а не в розділі Appearance.
|
||||
|
||||
- Підтримувані локалі: `en`, `zh-CN`, `zh-TW`, `pt-BR`, `de`, `es`, `ja-JP`, `ko`, `fr`, `tr`, `uk`, `id`, `pl`
|
||||
- Переклади, відмінні від англійської, ліниво завантажуються в браузері.
|
||||
- Вибрана локаль зберігається в сховищі браузера й повторно використовується під час наступних візитів.
|
||||
- Відсутні ключі перекладу повертаються до англійської.
|
||||
|
||||
## Що він уміє (сьогодні)
|
||||
|
||||
- Чат із моделлю через Gateway WS (`chat.history`, `chat.send`, `chat.abort`, `chat.inject`)
|
||||
- Потокове передавання викликів інструментів + картки з живим виводом інструментів у Chat (події агента)
|
||||
- Канали: вбудовані, а також bundled/external plugin channels status, QR login і конфігурація для кожного каналу (`channels.status`, `web.login.*`, `config.patch`)
|
||||
- Інстанси: список присутності + оновлення (`system-presence`)
|
||||
- Сеанси: список + перевизначення model/thinking/fast/verbose/trace/reasoning для кожного сеансу (`sessions.list`, `sessions.patch`)
|
||||
- Dreams: статус dreaming, перемикач увімкнення/вимкнення та читач Dream Diary (`doctor.memory.status`, `doctor.memory.dreamDiary`, `config.patch`)
|
||||
- Завдання Cron: список/додавання/редагування/запуск/увімкнення/вимкнення + історія запусків (`cron.*`)
|
||||
- Skills: статус, увімкнення/вимкнення, встановлення, оновлення API-ключів (`skills.*`)
|
||||
- Вузли: список + можливості (`node.list`)
|
||||
- Схвалення exec: редагування allowlist для gateway або node + політика запитів для `exec host=gateway/node` (`exec.approvals.*`)
|
||||
- Конфігурація: перегляд/редагування `~/.openclaw/openclaw.json` (`config.get`, `config.set`)
|
||||
- Конфігурація: застосування + перезапуск із валідацією (`config.apply`) і пробудження останнього активного сеансу
|
||||
- Записи конфігурації містять захист base-hash, щоб запобігти перезапису конкурентних змін
|
||||
- Записи конфігурації (`config.set`/`config.apply`/`config.patch`) також виконують попередню перевірку активного розв’язання SecretRef для посилань у надісланому корисному навантаженні конфігурації; нерозв’язані активні надіслані посилання відхиляються до запису
|
||||
- Схема конфігурації + рендеринг форми (`config.schema` / `config.schema.lookup`,
|
||||
включно з полями `title` / `description`, відповідними підказками UI, короткими описами
|
||||
безпосередніх дочірніх елементів, метаданими docs на вузлах nested object/wildcard/array/composition,
|
||||
а також схемами plugin і channel, коли вони доступні); редактор Raw JSON
|
||||
доступний лише тоді, коли знімок має безпечне raw round-trip
|
||||
- Якщо знімок не може безпечно виконати round-trip сирого тексту, Control UI примусово використовує режим Form і вимикає режим Raw для цього знімка
|
||||
- Значення структурованих об’єктів SecretRef відображаються в текстових полях форми лише для читання, щоб запобігти випадковому пошкодженню object-to-string
|
||||
- Налагодження: знімки status/health/models + журнал подій + ручні RPC-виклики (`status`, `health`, `models.list`)
|
||||
- Журнали: живе відстеження журналів файлів gateway з фільтрацією/експортом (`logs.tail`)
|
||||
- Оновлення: запуск package/git update + restart (`update.run`) зі звітом про перезапуск
|
||||
|
||||
Примітки до панелі завдань Cron:
|
||||
|
||||
- Для ізольованих завдань доставка за замовчуванням оголошує підсумок. Ви можете перемкнути на none, якщо хочете лише внутрішні запуски.
|
||||
- Поля channel/target з’являються, коли вибрано announce.
|
||||
- Режим Webhook використовує `delivery.mode = "webhook"` з `delivery.to`, встановленим у дійсний URL HTTP(S) Webhook.
|
||||
- Для завдань головного сеансу доступні режими доставки webhook і none.
|
||||
- Розширені елементи редагування включають delete-after-run, clear agent override, точні/зі зсувом параметри cron,
|
||||
перевизначення agent model/thinking і перемикачі best-effort delivery.
|
||||
- Валідація форми вбудована, з помилками на рівні полів; недійсні значення вимикають кнопку збереження, доки їх не буде виправлено.
|
||||
- Установіть `cron.webhookToken`, щоб надсилати окремий bearer token; якщо його не задано, webhook надсилається без заголовка auth.
|
||||
- Застарілий резервний варіант: збережені застарілі завдання з `notify: true` усе ще можуть використовувати `cron.webhook`, доки їх не буде мігровано.
|
||||
|
||||
## Поведінка чату
|
||||
|
||||
- `chat.send` є **неблокуючим**: він одразу підтверджує запитом `{ runId, status: "started" }`, а відповідь передається потоком через події `chat`.
|
||||
- Повторне надсилання з тим самим `idempotencyKey` повертає `{ status: "in_flight" }` під час виконання і `{ status: "ok" }` після завершення.
|
||||
- Відповіді `chat.history` обмежені за розміром для безпеки UI. Коли записи транскрипту завеликі, Gateway може обрізати довгі текстові поля, опускати великі блоки метаданих і замінювати надмірно великі повідомлення заповнювачем (`[chat.history omitted: message too large]`).
|
||||
- `chat.history` також прибирає inline directive tags лише для відображення з видимого тексту помічника (наприклад, `[[reply_to_*]]` і `[[audio_as_voice]]`), plain-text payload XML викликів інструментів (включно з `<tool_call>...</tool_call>`, `<function_call>...</function_call>`, `<tool_calls>...</tool_calls>`, `<function_calls>...</function_calls>` і обрізаними блоками викликів інструментів), а також leaked ASCII/full-width токени керування моделі, і опускає записи помічника, у яких увесь видимий текст є лише точним тихим токеном `NO_REPLY` / `no_reply`.
|
||||
- `chat.inject` додає примітку помічника до транскрипту сеансу й транслює подію `chat` для оновлень лише UI (без запуску агента, без доставки каналом).
|
||||
- Перемикачі model і thinking в заголовку чату негайно змінюють активний сеанс через `sessions.patch`; це сталі перевизначення сеансу, а не параметри надсилання лише на один хід.
|
||||
- Stop:
|
||||
- Натисніть **Stop** (викликає `chat.abort`)
|
||||
- Введіть `/stop` (або окремі фрази переривання, як-от `stop`, `stop action`, `stop run`, `stop openclaw`, `please stop`) для переривання поза смугою
|
||||
- `chat.abort` підтримує `{ sessionKey }` (без `runId`) для переривання всіх активних запусків цього сеансу
|
||||
- Збереження часткового виводу після переривання:
|
||||
- Коли запуск переривається, частковий текст помічника все одно може показуватися в UI
|
||||
- Gateway зберігає частковий текст помічника після переривання в історію транскрипту, коли існує буферизований вивід
|
||||
- Збережені записи містять метадані про переривання, щоб споживачі транскрипту могли відрізнити частковий вивід після переривання від звичайного завершеного виводу
|
||||
|
||||
## Hosted embeds
|
||||
|
||||
Повідомлення помічника можуть вбудовано відображати hosted web content за допомогою
|
||||
shortcode `[embed ...]`. Політика iframe sandbox контролюється
|
||||
`gateway.controlUi.embedSandbox`:
|
||||
|
||||
- `strict`: вимикає виконання скриптів у hosted embeds
|
||||
- `scripts`: дозволяє інтерактивні embeds, зберігаючи ізоляцію походження; це
|
||||
значення за замовчуванням, і його зазвичай достатньо для самодостатніх браузерних ігор/віджетів
|
||||
- `trusted`: додає `allow-same-origin` поверх `allow-scripts` для документів того самого сайту,
|
||||
яким навмисно потрібні розширені привілеї
|
||||
|
||||
Приклад:
|
||||
|
||||
```json5
|
||||
{
|
||||
gateway: {
|
||||
controlUi: {
|
||||
embedSandbox: "scripts",
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
Використовуйте `trusted` лише тоді, коли вбудованому документу справді потрібна
|
||||
поведінка same-origin. Для більшості згенерованих агентом ігор та інтерактивних canvas
|
||||
безпечнішим вибором є `scripts`.
|
||||
|
||||
Абсолютні зовнішні URL вбудовування `http(s)` за замовчуванням і далі блокуються. Якщо ви
|
||||
навмисно хочете, щоб `[embed url="https://..."]` завантажував сторонні сторінки, установіть
|
||||
`gateway.controlUi.allowExternalEmbedUrls: true`.
|
||||
|
||||
## Доступ Tailnet (рекомендовано)
|
||||
|
||||
### Інтегрований Tailscale Serve (рекомендовано)
|
||||
|
||||
Тримайте Gateway на loopback і дозвольте Tailscale Serve проксувати його через HTTPS:
|
||||
|
||||
```bash
|
||||
openclaw gateway --tailscale serve
|
||||
```
|
||||
|
||||
Відкрийте:
|
||||
|
||||
- `https://<magicdns>/` (або ваш налаштований `gateway.controlUi.basePath`)
|
||||
|
||||
За замовчуванням запити Control UI/WebSocket Serve можуть автентифікуватися через заголовки ідентичності Tailscale
|
||||
(`tailscale-user-login`), коли `gateway.auth.allowTailscale` має значення `true`. OpenClaw
|
||||
перевіряє ідентичність, розв’язуючи адресу `x-forwarded-for` за допомогою
|
||||
`tailscale whois` і звіряючи її із заголовком, і приймає ці заголовки лише тоді, коли
|
||||
запит потрапляє на loopback із заголовками Tailscale `x-forwarded-*`. Установіть
|
||||
`gateway.auth.allowTailscale: false`, якщо хочете вимагати явні облікові дані зі спільним секретом
|
||||
навіть для трафіку Serve. Тоді використовуйте `gateway.auth.mode: "token"` або
|
||||
`"password"`.
|
||||
Для цього асинхронного шляху ідентичності Serve невдалі спроби автентифікації для того самого IP клієнта
|
||||
та області дії auth серіалізуються перед записами rate-limit. Тому одночасні хибні повторні спроби
|
||||
з того самого браузера можуть показувати `retry later` у другому запиті замість двох звичайних невідповідностей, що змагаються паралельно.
|
||||
Автентифікація Serve без токена припускає, що хост gateway є довіреним. Якщо на цьому хості
|
||||
може виконуватися недовірений локальний код, вимагайте автентифікацію token/password.
|
||||
|
||||
### Прив’язка до tailnet + token
|
||||
|
||||
```bash
|
||||
openclaw gateway --bind tailnet --token "$(openssl rand -hex 32)"
|
||||
```
|
||||
|
||||
Потім відкрийте:
|
||||
|
||||
- `http://<tailscale-ip>:18789/` (або ваш налаштований `gateway.controlUi.basePath`)
|
||||
|
||||
Вставте відповідний спільний секрет у налаштування UI (він надсилається як
|
||||
`connect.params.auth.token` або `connect.params.auth.password`).
|
||||
|
||||
## Небезпечний HTTP
|
||||
|
||||
Якщо ви відкриваєте dashboard через звичайний HTTP (`http://<lan-ip>` або `http://<tailscale-ip>`),
|
||||
браузер працює в **незахищеному контексті** і блокує WebCrypto. За замовчуванням
|
||||
OpenClaw **блокує** підключення Control UI без ідентичності пристрою.
|
||||
|
||||
Задокументовані винятки:
|
||||
|
||||
- сумісність localhost-only insecure HTTP з `gateway.controlUi.allowInsecureAuth=true`
|
||||
- успішна операторська автентифікація Control UI через `gateway.auth.mode: "trusted-proxy"`
|
||||
- аварійний варіант `gateway.controlUi.dangerouslyDisableDeviceAuth=true`
|
||||
|
||||
**Рекомендоване виправлення:** використовуйте HTTPS (Tailscale Serve) або відкривайте UI локально:
|
||||
|
||||
- `https://<magicdns>/` (Serve)
|
||||
- `http://127.0.0.1:18789/` (на хості gateway)
|
||||
|
||||
**Поведінка перемикача insecure-auth:**
|
||||
|
||||
```json5
|
||||
{
|
||||
gateway: {
|
||||
controlUi: { allowInsecureAuth: true },
|
||||
bind: "tailnet",
|
||||
auth: { mode: "token", token: "replace-me" },
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
`allowInsecureAuth` — це лише локальний перемикач сумісності:
|
||||
|
||||
- Вона дозволяє сеансам Control UI на localhost продовжувати роботу без ідентичності пристрою в
|
||||
незахищених HTTP-контекстах.
|
||||
- Вона не обходить перевірки сполучення.
|
||||
- Вона не послаблює вимоги до ідентичності віддалених (не localhost) пристроїв.
|
||||
|
||||
**Лише для аварійного використання:**
|
||||
|
||||
```json5
|
||||
{
|
||||
gateway: {
|
||||
controlUi: { dangerouslyDisableDeviceAuth: true },
|
||||
bind: "tailnet",
|
||||
auth: { mode: "token", token: "replace-me" },
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
`dangerouslyDisableDeviceAuth` вимикає перевірки ідентичності пристрою в Control UI і є
|
||||
серйозним погіршенням безпеки. Поверніть налаштування назад якомога швидше після аварійного використання.
|
||||
|
||||
Примітка щодо trusted-proxy:
|
||||
|
||||
- успішна автентифікація trusted-proxy може допускати сеанси **operator** у Control UI без
|
||||
ідентичності пристрою
|
||||
- це **не** поширюється на сеанси Control UI з роллю node
|
||||
- reverse proxy на тому самому хості через loopback усе одно не задовольняють trusted-proxy auth; див.
|
||||
[Автентифікація Trusted Proxy](/uk/gateway/trusted-proxy-auth)
|
||||
|
||||
Див. [Tailscale](/uk/gateway/tailscale) для вказівок щодо налаштування HTTPS.
|
||||
|
||||
## Політика безпеки вмісту
|
||||
|
||||
Control UI постачається з жорсткою політикою `img-src`: дозволені лише ресурси **того самого походження** та URL `data:`. Віддалені URL з `http(s)` і відносні до протоколу URL зображень відхиляються браузером і не ініціюють мережеві запити.
|
||||
|
||||
Що це означає на практиці:
|
||||
|
||||
- Аватари та зображення, що обслуговуються за відносними шляхами (наприклад, `/avatars/<id>`), як і раніше відображаються.
|
||||
- Вбудовані URL `data:image/...` як і раніше відображаються (це корисно для корисних навантажень усередині протоколу).
|
||||
- Віддалені URL аватарів, які надходять із метаданих каналу, прибираються в допоміжних засобах аватарів Control UI і замінюються вбудованим логотипом/бейджем, тож скомпрометований або зловмисний канал не може примусити браузер оператора виконувати довільні віддалені запити за зображеннями.
|
||||
|
||||
Щоб отримати цю поведінку, вам нічого не потрібно змінювати — вона завжди ввімкнена й не налаштовується.
|
||||
|
||||
## Автентифікація маршруту аватара
|
||||
|
||||
Коли налаштовано автентифікацію gateway, endpoint аватарів Control UI вимагає той самий токен gateway, що й решта API:
|
||||
|
||||
- `GET /avatar/<agentId>` повертає зображення аватара лише автентифікованим викликачам. `GET /avatar/<agentId>?meta=1` повертає метадані аватара за тим самим правилом.
|
||||
- Неавтентифіковані запити до будь-якого з цих маршрутів відхиляються (узгоджено з сусіднім маршрутом assistant-media). Це запобігає витоку ідентичності агента через маршрут аватара на хостах, які в іншому захищені.
|
||||
- Сам Control UI пересилає токен gateway як bearer-заголовок під час отримання аватарів і використовує автентифіковані blob URL, щоб зображення все одно відображалося в dashboard.
|
||||
|
||||
Якщо ви вимикаєте автентифікацію gateway (не рекомендується на спільних хостах), маршрут аватара також стає неавтентифікованим — узгоджено з рештою gateway.
|
||||
|
||||
## Збирання UI
|
||||
|
||||
Gateway обслуговує статичні файли з `dist/control-ui`. Зберіть їх за допомогою:
|
||||
|
||||
```bash
|
||||
pnpm ui:build
|
||||
```
|
||||
|
||||
Необов’язкова абсолютна база (коли потрібні фіксовані URL ресурсів):
|
||||
|
||||
```bash
|
||||
OPENCLAW_CONTROL_UI_BASE_PATH=/openclaw/ pnpm ui:build
|
||||
```
|
||||
|
||||
Для локальної розробки (окремий dev server):
|
||||
|
||||
```bash
|
||||
pnpm ui:dev
|
||||
```
|
||||
|
||||
Потім спрямуйте UI на ваш URL Gateway WS (наприклад, `ws://127.0.0.1:18789`).
|
||||
|
||||
## Налагодження/тестування: dev server + віддалений Gateway
|
||||
|
||||
Control UI — це статичні файли; ціль WebSocket налаштовується і може
|
||||
відрізнятися від походження HTTP. Це зручно, коли ви хочете локальний Vite dev server,
|
||||
але Gateway працює в іншому місці.
|
||||
|
||||
1. Запустіть dev server UI: `pnpm ui:dev`
|
||||
2. Відкрийте URL на кшталт:
|
||||
|
||||
```text
|
||||
http://localhost:5173/?gatewayUrl=ws://<gateway-host>:18789
|
||||
```
|
||||
|
||||
Необов’язкова одноразова автентифікація (за потреби):
|
||||
|
||||
```text
|
||||
http://localhost:5173/?gatewayUrl=wss://<gateway-host>:18789#token=<gateway-token>
|
||||
```
|
||||
|
||||
Примітки:
|
||||
|
||||
- `gatewayUrl` зберігається в localStorage після завантаження й видаляється з URL.
|
||||
- `token` слід передавати через фрагмент URL (`#token=...`) щоразу, коли це можливо. Фрагменти не надсилаються на сервер, що запобігає витоку в журналах запитів і через Referer. Застарілі параметри запиту `?token=` усе ще одноразово імпортуються для сумісності, але лише як резервний варіант і відразу прибираються після bootstrap.
|
||||
- `password` зберігається лише в пам’яті.
|
||||
- Коли встановлено `gatewayUrl`, UI не повертається до облікових даних із конфігурації або змінних середовища.
|
||||
Явно передайте `token` (або `password`). Відсутність явно переданих облікових даних є помилкою.
|
||||
- Використовуйте `wss://`, коли Gateway стоїть за TLS (Tailscale Serve, HTTPS proxy тощо).
|
||||
- `gatewayUrl` приймається лише у вікні верхнього рівня (не у вбудованому режимі), щоб запобігти clickjacking.
|
||||
- Розгортання Control UI поза loopback повинні явно задавати `gateway.controlUi.allowedOrigins`
|
||||
(повні походження). Це стосується і віддалених dev-налаштувань.
|
||||
- Не використовуйте `gateway.controlUi.allowedOrigins: ["*"]`, окрім суворо контрольованого
|
||||
локального тестування. Це означає дозволити будь-яке походження браузера, а не «відповідати будь-якому хосту, який я використовую».
|
||||
- `gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback=true` вмикає
|
||||
режим резервного походження через заголовок Host, але це небезпечний режим безпеки.
|
||||
|
||||
Приклад:
|
||||
|
||||
```json5
|
||||
{
|
||||
gateway: {
|
||||
controlUi: {
|
||||
allowedOrigins: ["http://localhost:5173"],
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
Деталі налаштування віддаленого доступу: [Віддалений доступ](/uk/gateway/remote).
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Dashboard](/uk/web/dashboard) — dashboard gateway
|
||||
- [WebChat](/uk/web/webchat) — браузерний інтерфейс чату
|
||||
- [TUI](/uk/web/tui) — термінальний інтерфейс користувача
|
||||
- [Перевірки стану](/uk/gateway/health) — моніторинг стану gateway
|
||||
102
docs/uk/web/dashboard.md
Normal file
102
docs/uk/web/dashboard.md
Normal file
@ -0,0 +1,102 @@
|
||||
---
|
||||
read_when:
|
||||
- Зміна режимів автентифікації або доступності dashboard
|
||||
summary: Доступ і автентифікація Gateway dashboard (Control UI)
|
||||
title: Dashboard
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:19:53Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: d5b50d711711f70c51d65f3908b7a8c1e0e978ed46a853f0ab48c13dfe0348ff
|
||||
source_path: web/dashboard.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Dashboard (Control UI)
|
||||
|
||||
Gateway dashboard — це браузерний Control UI, який типово віддається за адресою `/`
|
||||
(перевизначається через `gateway.controlUi.basePath`).
|
||||
|
||||
Швидке відкриття (локальний Gateway):
|
||||
|
||||
- [http://127.0.0.1:18789/](http://127.0.0.1:18789/) (або [http://localhost:18789/](http://localhost:18789/))
|
||||
|
||||
Ключові посилання:
|
||||
|
||||
- [Control UI](/uk/web/control-ui) для використання та можливостей UI.
|
||||
- [Tailscale](/uk/gateway/tailscale) для автоматизації Serve/Funnel.
|
||||
- [Web surfaces](/uk/web) для режимів прив’язки та приміток щодо безпеки.
|
||||
|
||||
Автентифікація застосовується на етапі WebSocket handshake через налаштований шлях
|
||||
автентифікації gateway:
|
||||
|
||||
- `connect.params.auth.token`
|
||||
- `connect.params.auth.password`
|
||||
- заголовки ідентичності Tailscale Serve, коли `gateway.auth.allowTailscale: true`
|
||||
- заголовки ідентичності trusted-proxy, коли `gateway.auth.mode: "trusted-proxy"`
|
||||
|
||||
Див. `gateway.auth` у [Gateway configuration](/uk/gateway/configuration).
|
||||
|
||||
Примітка щодо безпеки: Control UI — це **поверхня адміністрування** (чат, конфігурація, погодження exec).
|
||||
Не відкривайте її публічно. UI зберігає URL-токени dashboard у sessionStorage
|
||||
для поточної сесії вкладки браузера та вибраної URL-адреси gateway і видаляє їх з URL після завантаження.
|
||||
Надавайте перевагу localhost, Tailscale Serve або SSH-тунелю.
|
||||
|
||||
## Швидкий шлях (рекомендовано)
|
||||
|
||||
- Після початкового налаштування CLI автоматично відкриває dashboard і виводить чисте посилання (без токена).
|
||||
- Відкрити знову будь-коли: `openclaw dashboard` (копіює посилання, відкриває браузер за можливості, показує підказку SSH, якщо середовище безголове).
|
||||
- Якщо UI запитує автентифікацію за спільним секретом, вставте налаштований токен або
|
||||
пароль у налаштуваннях Control UI.
|
||||
|
||||
## Основи автентифікації (локально чи віддалено)
|
||||
|
||||
- **Localhost**: відкрийте `http://127.0.0.1:18789/`.
|
||||
- **Джерело токена зі спільним секретом**: `gateway.auth.token` (або
|
||||
`OPENCLAW_GATEWAY_TOKEN`); `openclaw dashboard` може передати його через URL-фрагмент
|
||||
для одноразового bootstrap, а Control UI зберігає його в sessionStorage для
|
||||
поточної сесії вкладки браузера та вибраної URL-адреси gateway замість localStorage.
|
||||
- Якщо `gateway.auth.token` керується через SecretRef, `openclaw dashboard`
|
||||
навмисно виводить/копіює/відкриває URL без токена. Це дозволяє уникнути розкриття
|
||||
токенів, якими керують зовнішні системи, у shell-логах, історії буфера обміну або аргументах
|
||||
запуску браузера.
|
||||
- Якщо `gateway.auth.token` налаштовано як SecretRef і його не вдається визначити у вашій
|
||||
поточній shell, `openclaw dashboard` усе одно виводить URL без токена та
|
||||
надає дієві підказки щодо налаштування автентифікації.
|
||||
- **Пароль зі спільним секретом**: використовуйте налаштований `gateway.auth.password` (або
|
||||
`OPENCLAW_GATEWAY_PASSWORD`). Dashboard не зберігає паролі між
|
||||
перезавантаженнями.
|
||||
- **Режими з передаванням ідентичності**: Tailscale Serve може задовольняти автентифікацію
|
||||
Control UI/WebSocket через заголовки ідентичності, коли `gateway.auth.allowTailscale: true`, а
|
||||
reverse proxy з урахуванням ідентичності поза loopback може задовольняти
|
||||
`gateway.auth.mode: "trusted-proxy"`. У цих режимах dashboard не
|
||||
потребує вставленого спільного секрету для WebSocket.
|
||||
- **Не localhost**: використовуйте Tailscale Serve, прив’язку зі спільним секретом поза loopback,
|
||||
reverse proxy з урахуванням ідентичності поза loopback із
|
||||
`gateway.auth.mode: "trusted-proxy"` або SSH-тунель. HTTP API, як і раніше, використовують
|
||||
автентифікацію зі спільним секретом, якщо ви навмисно не використовуєте приватний ingress
|
||||
`gateway.auth.mode: "none"` або HTTP-автентифікацію trusted-proxy. Див.
|
||||
[Web surfaces](/uk/web).
|
||||
|
||||
<a id="if-you-see-unauthorized-1008"></a>
|
||||
|
||||
## Якщо ви бачите "unauthorized" / 1008
|
||||
|
||||
- Переконайтеся, що gateway доступний (локально: `openclaw status`; віддалено: SSH-тунель `ssh -N -L 18789:127.0.0.1:18789 user@host`, потім відкрийте `http://127.0.0.1:18789/`).
|
||||
- Для `AUTH_TOKEN_MISMATCH` клієнти можуть виконати одну довірену повторну спробу з кешованим токеном пристрою, коли gateway повертає підказки для повтору. Ця повторна спроба з кешованим токеном повторно використовує кешований набір схвалених scopes цього токена; виклики з явним `deviceToken` / явними `scopes` зберігають запитаний ними набір scopes. Якщо після цього повтору автентифікація все ще не вдається, усуньте розсинхронізацію токена вручну.
|
||||
- Поза цим шляхом повтору пріоритет автентифікації під час підключення такий: спочатку явний спільний токен/пароль, потім явний `deviceToken`, потім збережений токен пристрою, потім bootstrap-токен.
|
||||
- На асинхронному шляху Tailscale Serve Control UI невдалі спроби для тієї самої
|
||||
пари `{scope, ip}` серіалізуються до того, як обмежувач невдалої автентифікації їх зафіксує, тому
|
||||
уже друга одночасна хибна повторна спроба може показати `retry later`.
|
||||
- Для кроків відновлення при розсинхронізації токена дотримуйтеся [Token drift recovery checklist](/uk/cli/devices#token-drift-recovery-checklist).
|
||||
- Отримайте або надайте спільний секрет із хоста gateway:
|
||||
- Токен: `openclaw config get gateway.auth.token`
|
||||
- Пароль: визначте налаштований `gateway.auth.password` або
|
||||
`OPENCLAW_GATEWAY_PASSWORD`
|
||||
- Токен, керований через SecretRef: визначте його через зовнішній secret provider або експортуйте
|
||||
`OPENCLAW_GATEWAY_TOKEN` у цій shell, а потім повторно запустіть `openclaw dashboard`
|
||||
- Спільний секрет не налаштовано: `openclaw doctor --generate-gateway-token`
|
||||
- У налаштуваннях dashboard вставте токен або пароль у поле автентифікації,
|
||||
а потім підключіться.
|
||||
- Перемикач мови UI розташовано в **Overview -> Gateway Access -> Language**.
|
||||
Це частина картки доступу, а не розділу Appearance.
|
||||
133
docs/uk/web/index.md
Normal file
133
docs/uk/web/index.md
Normal file
@ -0,0 +1,133 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете отримати доступ до Gateway через Tailscale
|
||||
- Ви хочете браузерний Control UI і редагування конфігурації
|
||||
summary: 'Вебповерхні Gateway: Control UI, режими прив’язки та безпека'
|
||||
title: Веб
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:20:07Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: cf1a173143782557ecd2e79b28694308709dc945700a509148856255d5cef773
|
||||
source_path: web/index.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Веб (Gateway)
|
||||
|
||||
Gateway віддає невеликий **браузерний Control UI** (Vite + Lit) з того самого порту, що й WebSocket Gateway:
|
||||
|
||||
- типово: `http://<host>:18789/`
|
||||
- необов’язковий префікс: задайте `gateway.controlUi.basePath` (наприклад, `/openclaw`)
|
||||
|
||||
Можливості описані в [Control UI](/uk/web/control-ui).
|
||||
Ця сторінка зосереджена на режимах прив’язки, безпеці та вебповерхнях.
|
||||
|
||||
## Webhook
|
||||
|
||||
Коли `hooks.enabled=true`, Gateway також надає невеликий ендпойнт webhook на тому самому HTTP-сервері.
|
||||
Див. [Конфігурація Gateway](/uk/gateway/configuration) → `hooks` щодо автентифікації та навантажень.
|
||||
|
||||
## Конфігурація (увімкнено за замовчуванням)
|
||||
|
||||
Control UI **увімкнено за замовчуванням**, коли наявні ресурси (`dist/control-ui`).
|
||||
Ви можете керувати ним через конфігурацію:
|
||||
|
||||
```json5
|
||||
{
|
||||
gateway: {
|
||||
controlUi: { enabled: true, basePath: "/openclaw" }, // basePath optional
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
## Доступ через Tailscale
|
||||
|
||||
### Інтегрований Serve (рекомендовано)
|
||||
|
||||
Тримайте Gateway на loopback і дозвольте Tailscale Serve проксувати його:
|
||||
|
||||
```json5
|
||||
{
|
||||
gateway: {
|
||||
bind: "loopback",
|
||||
tailscale: { mode: "serve" },
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
Потім запустіть gateway:
|
||||
|
||||
```bash
|
||||
openclaw gateway
|
||||
```
|
||||
|
||||
Відкрийте:
|
||||
|
||||
- `https://<magicdns>/` (або ваш налаштований `gateway.controlUi.basePath`)
|
||||
|
||||
### Прив’язка до tailnet + токен
|
||||
|
||||
```json5
|
||||
{
|
||||
gateway: {
|
||||
bind: "tailnet",
|
||||
controlUi: { enabled: true },
|
||||
auth: { mode: "token", token: "your-token" },
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
Потім запустіть gateway (цей приклад не-loopback використовує автентифікацію
|
||||
токеном зі спільним секретом):
|
||||
|
||||
```bash
|
||||
openclaw gateway
|
||||
```
|
||||
|
||||
Відкрийте:
|
||||
|
||||
- `http://<tailscale-ip>:18789/` (або ваш налаштований `gateway.controlUi.basePath`)
|
||||
|
||||
### Публічний інтернет (Funnel)
|
||||
|
||||
```json5
|
||||
{
|
||||
gateway: {
|
||||
bind: "loopback",
|
||||
tailscale: { mode: "funnel" },
|
||||
auth: { mode: "password" }, // or OPENCLAW_GATEWAY_PASSWORD
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
## Примітки щодо безпеки
|
||||
|
||||
- Автентифікація Gateway потрібна за замовчуванням (токен, пароль, trusted-proxy або заголовки ідентичності Tailscale Serve, якщо ввімкнено).
|
||||
- Прив’язки не до loopback все одно **потребують** автентифікації gateway. На практиці це означає автентифікацію токеном/паролем або reverse proxy з awareness ідентичності з `gateway.auth.mode: "trusted-proxy"`.
|
||||
- Майстер за замовчуванням створює автентифікацію зі спільним секретом і зазвичай генерує
|
||||
токен gateway (навіть на loopback).
|
||||
- У режимі спільного секрету UI надсилає `connect.params.auth.token` або
|
||||
`connect.params.auth.password`.
|
||||
- У режимах із передаванням ідентичності, таких як Tailscale Serve або `trusted-proxy`, перевірка автентифікації
|
||||
WebSocket натомість задовольняється з заголовків запиту.
|
||||
- Для розгортань Control UI не на loopback задайте `gateway.controlUi.allowedOrigins`
|
||||
явно (повні origins). Без цього запуск gateway за замовчуванням буде відхилено.
|
||||
- `gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback=true` вмикає
|
||||
резервний режим origin через заголовок Host, але це небезпечне зниження рівня безпеки.
|
||||
- З Serve заголовки ідентичності Tailscale можуть задовольнити автентифікацію Control UI/WebSocket,
|
||||
коли `gateway.auth.allowTailscale` має значення `true` (токен/пароль не потрібні).
|
||||
Ендпойнти HTTP API не використовують ці заголовки ідентичності Tailscale; вони дотримуються
|
||||
звичайного режиму HTTP-автентифікації gateway. Установіть
|
||||
`gateway.auth.allowTailscale: false`, щоб вимагати явні облікові дані. Див.
|
||||
[Tailscale](/uk/gateway/tailscale) і [Безпека](/uk/gateway/security). Цей
|
||||
безтокенний потік передбачає, що хост gateway є довіреним.
|
||||
- `gateway.tailscale.mode: "funnel"` вимагає `gateway.auth.mode: "password"` (спільний пароль).
|
||||
|
||||
## Збирання UI
|
||||
|
||||
Gateway віддає статичні файли з `dist/control-ui`. Зберіть їх за допомогою:
|
||||
|
||||
```bash
|
||||
pnpm ui:build
|
||||
```
|
||||
252
docs/uk/web/tui.md
Normal file
252
docs/uk/web/tui.md
Normal file
@ -0,0 +1,252 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете дружнє до початківців покрокове пояснення TUI
|
||||
- Вам потрібен повний список можливостей, команд і клавіатурних скорочень TUI
|
||||
summary: 'Terminal UI (TUI): підключення до Gateway або локальний запуск у вбудованому режимі'
|
||||
title: TUI
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:20:07Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: df3ddbe41cb7d92b9cde09a4d1443d26579b4e1cfc92dce6bbc37eed4d8af8fa
|
||||
source_path: web/tui.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# TUI (Terminal UI)
|
||||
|
||||
## Швидкий старт
|
||||
|
||||
### Режим Gateway
|
||||
|
||||
1. Запустіть Gateway.
|
||||
|
||||
```bash
|
||||
openclaw gateway
|
||||
```
|
||||
|
||||
2. Відкрийте TUI.
|
||||
|
||||
```bash
|
||||
openclaw tui
|
||||
```
|
||||
|
||||
3. Введіть повідомлення й натисніть Enter.
|
||||
|
||||
Віддалений Gateway:
|
||||
|
||||
```bash
|
||||
openclaw tui --url ws://<host>:<port> --token <gateway-token>
|
||||
```
|
||||
|
||||
Використовуйте `--password`, якщо ваш Gateway використовує автентифікацію за паролем.
|
||||
|
||||
### Локальний режим
|
||||
|
||||
Запустіть TUI без Gateway:
|
||||
|
||||
```bash
|
||||
openclaw chat
|
||||
# or
|
||||
openclaw tui --local
|
||||
```
|
||||
|
||||
Примітки:
|
||||
|
||||
- `openclaw chat` і `openclaw terminal` — це псевдоніми для `openclaw tui --local`.
|
||||
- `--local` не можна поєднувати з `--url`, `--token` або `--password`.
|
||||
- Локальний режим напряму використовує вбудований runtime агента. Більшість локальних інструментів працює, але функції лише для Gateway недоступні.
|
||||
|
||||
## Що ви бачите
|
||||
|
||||
- Заголовок: URL з’єднання, поточний агент, поточна сесія.
|
||||
- Журнал чату: повідомлення користувача, відповіді асистента, системні сповіщення, картки інструментів.
|
||||
- Рядок стану: стан з’єднання/виконання (підключення, виконання, потокова передача, бездіяльність, помилка).
|
||||
- Нижній колонтитул: стан з’єднання + агент + сесія + модель + think/fast/verbose/trace/reasoning + кількість токенів + deliver.
|
||||
- Ввід: текстовий редактор з автодоповненням.
|
||||
|
||||
## Ментальна модель: агенти + сесії
|
||||
|
||||
- Агенти — це унікальні slug (наприклад, `main`, `research`). Gateway надає їхній список.
|
||||
- Сесії належать поточному агенту.
|
||||
- Ключі сесій зберігаються як `agent:<agentId>:<sessionKey>`.
|
||||
- Якщо ви введете `/session main`, TUI розгорне це в `agent:<currentAgent>:main`.
|
||||
- Якщо ви введете `/session agent:other:main`, ви явно перемкнетеся на сесію цього агента.
|
||||
- Область сесії:
|
||||
- `per-sender` (типово): кожен агент має багато сесій.
|
||||
- `global`: TUI завжди використовує сесію `global` (список вибору може бути порожнім).
|
||||
- Поточний агент + сесія завжди видимі в нижньому колонтитулі.
|
||||
|
||||
## Надсилання + доставка
|
||||
|
||||
- Повідомлення надсилаються до Gateway; доставка провайдерам типово вимкнена.
|
||||
- Увімкніть доставку:
|
||||
- `/deliver on`
|
||||
- або на панелі Settings
|
||||
- або запускайте з `openclaw tui --deliver`
|
||||
|
||||
## Засоби вибору + накладки
|
||||
|
||||
- Засіб вибору моделі: список доступних моделей і встановлення перевизначення для сесії.
|
||||
- Засіб вибору агента: вибір іншого агента.
|
||||
- Засіб вибору сесії: показує лише сесії для поточного агента.
|
||||
- Settings: перемикання deliver, розгортання виводу інструментів і видимості thinking.
|
||||
|
||||
## Клавіатурні скорочення
|
||||
|
||||
- Enter: надіслати повідомлення
|
||||
- Esc: перервати активне виконання
|
||||
- Ctrl+C: очистити ввід (натисніть двічі, щоб вийти)
|
||||
- Ctrl+D: вийти
|
||||
- Ctrl+L: засіб вибору моделі
|
||||
- Ctrl+G: засіб вибору агента
|
||||
- Ctrl+P: засіб вибору сесії
|
||||
- Ctrl+O: перемкнути розгортання виводу інструментів
|
||||
- Ctrl+T: перемкнути видимість thinking (перезавантажує історію)
|
||||
|
||||
## Slash commands
|
||||
|
||||
Основні:
|
||||
|
||||
- `/help`
|
||||
- `/status`
|
||||
- `/agent <id>` (або `/agents`)
|
||||
- `/session <key>` (або `/sessions`)
|
||||
- `/model <provider/model>` (або `/models`)
|
||||
|
||||
Керування сесією:
|
||||
|
||||
- `/think <off|minimal|low|medium|high>`
|
||||
- `/fast <status|on|off>`
|
||||
- `/verbose <on|full|off>`
|
||||
- `/trace <on|off>`
|
||||
- `/reasoning <on|off|stream>`
|
||||
- `/usage <off|tokens|full>`
|
||||
- `/elevated <on|off|ask|full>` (псевдонім: `/elev`)
|
||||
- `/activation <mention|always>`
|
||||
- `/deliver <on|off>`
|
||||
|
||||
Життєвий цикл сесії:
|
||||
|
||||
- `/new` або `/reset` (скинути сесію)
|
||||
- `/abort` (перервати активне виконання)
|
||||
- `/settings`
|
||||
- `/exit`
|
||||
|
||||
Лише для локального режиму:
|
||||
|
||||
- `/auth [provider]` відкриває потік автентифікації/входу провайдера всередині TUI.
|
||||
|
||||
Інші slash commands Gateway (наприклад, `/context`) пересилаються до Gateway і показуються як системний вивід. Див. [Slash commands](/uk/tools/slash-commands).
|
||||
|
||||
## Локальні команди оболонки
|
||||
|
||||
- Додайте на початку рядка `!`, щоб виконати локальну команду оболонки на хості TUI.
|
||||
- TUI один раз за сесію запитує дозвіл на локальне виконання; якщо відмовити, `!` залишиться вимкненим для цієї сесії.
|
||||
- Команди виконуються в новій неінтерактивній оболонці в робочому каталозі TUI (без постійного `cd`/env).
|
||||
- Локальні команди оболонки отримують `OPENCLAW_SHELL=tui-local` у своєму середовищі.
|
||||
- Окремий `!` надсилається як звичайне повідомлення; початкові пробіли не запускають локальне exec.
|
||||
|
||||
## Відновлення конфігурацій із локального TUI
|
||||
|
||||
Використовуйте локальний режим, коли поточна конфігурація вже проходить валідацію і ви хочете, щоб
|
||||
вбудований агент перевірив її на цій самій машині, порівняв із документацією
|
||||
й допоміг виправити дрейф без залежності від запущеного Gateway.
|
||||
|
||||
Якщо `openclaw config validate` уже завершується помилкою, спочатку запустіть `openclaw configure`
|
||||
або `openclaw doctor --fix`. `openclaw chat` не обходить захист від невалідної
|
||||
конфігурації.
|
||||
|
||||
Типовий цикл:
|
||||
|
||||
1. Запустіть локальний режим:
|
||||
|
||||
```bash
|
||||
openclaw chat
|
||||
```
|
||||
|
||||
2. Попросіть агента перевірити те, що вам потрібно, наприклад:
|
||||
|
||||
```text
|
||||
Compare my gateway auth config with the docs and suggest the smallest fix.
|
||||
```
|
||||
|
||||
3. Використовуйте локальні команди оболонки для точних доказів і валідації:
|
||||
|
||||
```text
|
||||
!openclaw config file
|
||||
!openclaw docs gateway auth token secretref
|
||||
!openclaw config validate
|
||||
!openclaw doctor
|
||||
```
|
||||
|
||||
4. Застосуйте точкові зміни за допомогою `openclaw config set` або `openclaw configure`, потім знову виконайте `!openclaw config validate`.
|
||||
5. Якщо Doctor рекомендує автоматичну міграцію або відновлення, перегляньте це й виконайте `!openclaw doctor --fix`.
|
||||
|
||||
Поради:
|
||||
|
||||
- Віддавайте перевагу `openclaw config set` або `openclaw configure` замість ручного редагування `openclaw.json`.
|
||||
- `openclaw docs "<query>"` шукає в живому індексі документації з цієї самої машини.
|
||||
- `openclaw config validate --json` корисний, коли вам потрібні структуровані помилки схеми та SecretRef/можливості розв’язання.
|
||||
|
||||
## Вивід інструментів
|
||||
|
||||
- Виклики інструментів показуються як картки з аргументами + результатами.
|
||||
- Ctrl+O перемикає між згорнутим/розгорнутим поданням.
|
||||
- Поки інструменти працюють, часткові оновлення потоково надходять у ту саму картку.
|
||||
|
||||
## Кольори термінала
|
||||
|
||||
- TUI зберігає текст основного вмісту асистента у типовому кольорі переднього плану вашого термінала, щоб і темні, і світлі термінали залишалися читабельними.
|
||||
- Якщо ваш термінал використовує світле тло й авто-визначення помиляється, установіть `OPENCLAW_THEME=light` перед запуском `openclaw tui`.
|
||||
- Щоб натомість примусово використати початкову темну палітру, установіть `OPENCLAW_THEME=dark`.
|
||||
|
||||
## Історія + потокова передача
|
||||
|
||||
- Під час підключення TUI завантажує останню історію (типово 200 повідомлень).
|
||||
- Відповіді у потоковому режимі оновлюються на місці до фіналізації.
|
||||
- TUI також прослуховує події інструментів агента для багатших карток інструментів.
|
||||
|
||||
## Деталі з’єднання
|
||||
|
||||
- TUI реєструється в Gateway як `mode: "tui"`.
|
||||
- Повторні підключення показуються як системне повідомлення; прогалини в подіях відображаються в журналі.
|
||||
|
||||
## Параметри
|
||||
|
||||
- `--local`: запускати з локальним вбудованим runtime агента
|
||||
- `--url <url>`: URL WebSocket Gateway (типово з конфігурації або `ws://127.0.0.1:<port>`)
|
||||
- `--token <token>`: токен Gateway (за потреби)
|
||||
- `--password <password>`: пароль Gateway (за потреби)
|
||||
- `--session <key>`: ключ сесії (типово: `main`, або `global`, якщо область глобальна)
|
||||
- `--deliver`: доставляти відповіді асистента провайдеру (типово вимкнено)
|
||||
- `--thinking <level>`: перевизначити рівень thinking для надсилань
|
||||
- `--message <text>`: надіслати початкове повідомлення після підключення
|
||||
- `--timeout-ms <ms>`: тайм-аут агента в мс (типово `agents.defaults.timeoutSeconds`)
|
||||
- `--history-limit <n>`: кількість записів історії для завантаження (типово `200`)
|
||||
|
||||
Примітка: коли ви встановлюєте `--url`, TUI не використовує резервно облікові дані з конфігурації або середовища.
|
||||
Явно передавайте `--token` або `--password`. Відсутність явно заданих облікових даних є помилкою.
|
||||
У локальному режимі не передавайте `--url`, `--token` або `--password`.
|
||||
|
||||
## Усунення несправностей
|
||||
|
||||
Немає виводу після надсилання повідомлення:
|
||||
|
||||
- Виконайте `/status` у TUI, щоб підтвердити, що Gateway підключений і перебуває у стані idle/busy.
|
||||
- Перевірте журнали Gateway: `openclaw logs --follow`.
|
||||
- Підтвердьте, що агент може виконуватися: `openclaw status` і `openclaw models status`.
|
||||
- Якщо ви очікуєте повідомлення в чат-каналі, увімкніть доставку (`/deliver on` або `--deliver`).
|
||||
|
||||
## Усунення несправностей з’єднання
|
||||
|
||||
- `disconnected`: переконайтеся, що Gateway запущений і що ваші `--url/--token/--password` правильні.
|
||||
- Немає агентів у засобі вибору: перевірте `openclaw agents list` і вашу конфігурацію маршрутизації.
|
||||
- Порожній засіб вибору сесії: можливо, ви перебуваєте в глобальній області або ще не маєте сесій.
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Control UI](/uk/web/control-ui) — вебінтерфейс керування
|
||||
- [Config](/uk/cli/config) — перегляд, валідація та редагування `openclaw.json`
|
||||
- [Doctor](/uk/cli/doctor) — перевірки відновлення й міграції з підказками
|
||||
- [Довідка CLI](/uk/cli) — повна довідка за командами CLI
|
||||
84
docs/uk/web/webchat.md
Normal file
84
docs/uk/web/webchat.md
Normal file
@ -0,0 +1,84 @@
|
||||
---
|
||||
read_when:
|
||||
- Налагодження або налаштування доступу до WebChat
|
||||
summary: Статичний хост WebChat для loopback і використання Gateway WS для інтерфейсу чату
|
||||
title: WebChat
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:20:01Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 2588be04e9ae38149bdf284bf4d75b6784d63899026d2351c4e0e7efdf05ff39
|
||||
source_path: web/webchat.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# WebChat (інтерфейс Gateway WebSocket)
|
||||
|
||||
Статус: чат-інтерфейс SwiftUI для macOS/iOS напряму взаємодіє з Gateway WebSocket.
|
||||
|
||||
## Що це таке
|
||||
|
||||
- Нативний чат-інтерфейс для gateway (без вбудованого браузера і без локального статичного сервера).
|
||||
- Використовує ті самі сеанси та правила маршрутизації, що й інші канали.
|
||||
- Детермінована маршрутизація: відповіді завжди повертаються до WebChat.
|
||||
|
||||
## Швидкий старт
|
||||
|
||||
1. Запустіть gateway.
|
||||
2. Відкрийте інтерфейс WebChat (застосунок macOS/iOS) або вкладку чату в Control UI.
|
||||
3. Переконайтеся, що налаштовано дійсний шлях автентифікації gateway (типово shared-secret,
|
||||
навіть для loopback).
|
||||
|
||||
## Як це працює (поведінка)
|
||||
|
||||
- Інтерфейс підключається до Gateway WebSocket і використовує `chat.history`, `chat.send` та `chat.inject`.
|
||||
- `chat.history` обмежений для стабільності: Gateway може обрізати довгі текстові поля, пропускати важкі метадані та замінювати надто великі записи на `[chat.history omitted: message too large]`.
|
||||
- `chat.history` також нормалізується для відображення: вбудовані теги директив доставки,
|
||||
такі як `[[reply_to_*]]` і `[[audio_as_voice]]`, текстові XML-payload викликів інструментів
|
||||
(включно з `<tool_call>...</tool_call>`,
|
||||
`<function_call>...</function_call>`, `<tool_calls>...</tool_calls>`,
|
||||
`<function_calls>...</function_calls>` і обрізаними блоками викликів інструментів), а також
|
||||
витоки ASCII/повноширинних керівних токенів моделі прибираються з видимого тексту,
|
||||
а записи асистента, у яких увесь видимий текст складається лише з точного
|
||||
тихого токена `NO_REPLY` / `no_reply`, пропускаються.
|
||||
- `chat.inject` безпосередньо додає примітку асистента до transcript і транслює її в UI (без запуску агента).
|
||||
- Перервані запуски можуть залишати частковий вивід асистента видимим в UI.
|
||||
- Gateway зберігає частковий текст асистента від перерваних запусків в історії transcript, коли існує буферизований вивід, і позначає такі записи метаданими переривання.
|
||||
- Історія завжди отримується з gateway (без локального відстеження файлів).
|
||||
- Якщо gateway недоступний, WebChat доступний лише для читання.
|
||||
|
||||
## Панель інструментів агентів у Control UI
|
||||
|
||||
- Панель Tools у `/agents` в Control UI має два окремі подання:
|
||||
- **Доступно зараз** використовує `tools.effective(sessionKey=...)` і показує, що поточний
|
||||
сеанс реально може використовувати під час виконання, включно з інструментами core, Plugin і каналів.
|
||||
- **Конфігурація інструментів** використовує `tools.catalog` і залишається зосередженою на профілях, перевизначеннях і
|
||||
семантиці каталогу.
|
||||
- Доступність під час виконання прив’язана до сеансу. Перемикання сеансів того самого агента може змінити
|
||||
список **Доступно зараз**.
|
||||
- Редактор конфігурації не означає доступність під час виконання; фактичний доступ і далі підпорядковується
|
||||
пріоритету політик (`allow`/`deny`, перевизначення для окремого агента та провайдера/каналу).
|
||||
|
||||
## Віддалене використання
|
||||
|
||||
- Віддалений режим тунелює Gateway WebSocket через SSH/Tailscale.
|
||||
- Вам не потрібно запускати окремий сервер WebChat.
|
||||
|
||||
## Довідник із конфігурації (WebChat)
|
||||
|
||||
Повна конфігурація: [Конфігурація](/uk/gateway/configuration)
|
||||
|
||||
Параметри WebChat:
|
||||
|
||||
- `gateway.webchat.chatHistoryMaxChars`: максимальна кількість символів для текстових полів у відповідях `chat.history`. Коли запис transcript перевищує це обмеження, Gateway обрізає довгі текстові поля й може замінювати надто великі повідомлення заповнювачем. Клієнт також може надсилати `maxChars` на рівні запиту, щоб перевизначити це типове значення для одного виклику `chat.history`.
|
||||
|
||||
Пов’язані глобальні параметри:
|
||||
|
||||
- `gateway.port`, `gateway.bind`: хост/порт WebSocket.
|
||||
- `gateway.auth.mode`, `gateway.auth.token`, `gateway.auth.password`:
|
||||
автентифікація WebSocket через shared-secret.
|
||||
- `gateway.auth.allowTailscale`: вкладка чату browser Control UI може використовувати заголовки ідентичності Tailscale
|
||||
Serve, якщо це ввімкнено.
|
||||
- `gateway.auth.mode: "trusted-proxy"`: автентифікація через reverse proxy для browser-клієнтів за identity-aware **non-loopback** проксі-джерелом (див. [Trusted Proxy Auth](/uk/gateway/trusted-proxy-auth)).
|
||||
- `gateway.remote.url`, `gateway.remote.token`, `gateway.remote.password`: ціль віддаленого gateway.
|
||||
- `session.*`: сховище сеансів і типові значення основного ключа.
|
||||
Loading…
Reference in New Issue
Block a user