chore(i18n): refresh uk translations
This commit is contained in:
parent
139468583b
commit
92d14440a8
File diff suppressed because it is too large
Load Diff
@ -1,29 +1,26 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете використовувати комплектний каркас app-server Codex
|
||||
- Ви хочете використовувати вбудований app-server harness Codex
|
||||
- Вам потрібні посилання на моделі Codex і приклади конфігурації
|
||||
- Ви хочете вимкнути резервний перехід до Pi для розгортань лише з Codex
|
||||
summary: Запускайте вбудовані ходи агента OpenClaw через комплектний каркас app-server Codex
|
||||
title: Каркас Codex
|
||||
- Ви хочете вимкнути резервний перехід до PI для розгортань лише з Codex
|
||||
summary: Запускайте вбудовані ходи агента OpenClaw через вбудований app-server harness Codex
|
||||
title: Codex Harness
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T15:25:02Z"
|
||||
generated_at: "2026-04-23T16:05:47Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 4537cdc043768f19cd097b4542dfb3447bf3342c7c300832e160b795263c2a52
|
||||
source_hash: 07e7fb033cd4025e53d65a719bab7bd704335933bf19bfb10648cede42cdee46
|
||||
source_path: plugins/codex-harness.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Каркас Codex
|
||||
# Codex Harness
|
||||
|
||||
Комплектний Plugin `codex` дає змогу OpenClaw запускати вбудовані ходи агента через app-server Codex замість вбудованого каркаса PI.
|
||||
Вбудований plugin `codex` дає змогу OpenClaw запускати вбудовані ходи агента через app-server Codex замість вбудованого harness PI.
|
||||
|
||||
Використовуйте це, коли хочете, щоб Codex керував низькорівневою сесією агента: виявленням моделей, нативним відновленням потоку, нативним Compaction і виконанням app-server.
|
||||
OpenClaw і далі керує каналами чату, файлами сесій, вибором моделі, інструментами,
|
||||
погодженнями, доставкою медіа й видимим дзеркалом транскрипту.
|
||||
Використовуйте це, коли хочете, щоб Codex керував низькорівневою сесією агента: виявленням моделей, нативним відновленням потоку, нативним Compaction і виконанням app-server. OpenClaw, як і раніше, керує каналами чату, файлами сесій, вибором моделей, інструментами, погодженнями, доставкою медіа та видимим дзеркалом транскрипту.
|
||||
|
||||
Нативні ходи Codex також враховують спільні хуки Plugin, тому шими промптів,
|
||||
автоматизація з урахуванням Compaction, middleware інструментів і спостерігачі життєвого циклу залишаються узгодженими з каркасом PI:
|
||||
Нативні ходи Codex також дотримуються спільних хуків plugin, тому shim-и промптів, автоматизація з урахуванням Compaction, middleware інструментів і спостерігачі життєвого циклу залишаються узгодженими з harness PI:
|
||||
|
||||
- `before_prompt_build`
|
||||
- `before_compaction`, `after_compaction`
|
||||
@ -32,42 +29,42 @@ OpenClaw і далі керує каналами чату, файлами сес
|
||||
- `before_message_write`
|
||||
- `agent_end`
|
||||
|
||||
Комплектні plugins також можуть реєструвати фабрику розширення app-server Codex, щоб додавати асинхронне middleware `tool_result`.
|
||||
Вбудовані plugins також можуть реєструвати фабрику розширення app-server Codex, щоб додавати асинхронне middleware `tool_result`.
|
||||
|
||||
Каркас вимкнений за замовчуванням. Він вибирається лише тоді, коли Plugin `codex`
|
||||
увімкнено й визначена модель є моделлю `codex/*`, або коли ви явно примусово задаєте `embeddedHarness.runtime: "codex"` чи `OPENCLAW_AGENT_RUNTIME=codex`.
|
||||
Якщо ви ніколи не налаштовуєте `codex/*`, наявні запуски PI, OpenAI, Anthropic, Gemini, local
|
||||
і custom-provider зберігають свою поточну поведінку.
|
||||
Harness вимкнений за замовчуванням. Він вибирається лише тоді, коли plugin `codex` увімкнений і для розв’язаної моделі використовується модель `codex/*`, або коли ви явно примусово задаєте `embeddedHarness.runtime: "codex"` чи `OPENCLAW_AGENT_RUNTIME=codex`.
|
||||
Якщо ви ніколи не налаштовуєте `codex/*`, наявні запуски PI, OpenAI, Anthropic, Gemini, local і custom-provider зберігають свою поточну поведінку.
|
||||
|
||||
## Виберіть правильний префікс моделі
|
||||
|
||||
OpenClaw має окремі маршрути для доступу у формі OpenAI і Codex:
|
||||
OpenClaw має окремі маршрути для доступу у стилі OpenAI і Codex:
|
||||
|
||||
| Посилання на модель | Шлях runtime | Використовуйте, коли |
|
||||
| --------------------- | ------------------------------------------- | ------------------------------------------------------------------------ |
|
||||
| `openai/gpt-5.4` | Провайдер OpenAI через інфраструктуру OpenClaw/PI | Вам потрібен прямий доступ до API платформи OpenAI з `OPENAI_API_KEY`. |
|
||||
| `openai-codex/gpt-5.4` | Провайдер OAuth OpenAI Codex через PI | Вам потрібен OAuth ChatGPT/Codex без каркаса app-server Codex. |
|
||||
| `codex/gpt-5.4` | Комплектний провайдер Codex плюс каркас Codex | Вам потрібне нативне виконання app-server Codex для вбудованого ходу агента. |
|
||||
| Посилання на модель | Шлях runtime | Використовуйте, коли |
|
||||
| ---------------------- | -------------------------------------------- | ------------------------------------------------------------------------ |
|
||||
| `openai/gpt-5.4` | Провайдер OpenAI через plumbing OpenClaw/PI | Вам потрібен прямий доступ до API платформи OpenAI через `OPENAI_API_KEY`. |
|
||||
| `openai-codex/gpt-5.4` | Провайдер OpenAI Codex OAuth через PI | Вам потрібен ChatGPT/Codex OAuth без harness app-server Codex. |
|
||||
| `codex/gpt-5.4` | Вбудований провайдер Codex плюс harness Codex | Вам потрібне нативне виконання через app-server Codex для вбудованого ходу агента. |
|
||||
|
||||
Каркас Codex обробляє лише посилання на моделі `codex/*`. Наявні посилання `openai/*`,
|
||||
`openai-codex/*`, Anthropic, Gemini, xAI, local і custom provider зберігають
|
||||
свої звичайні шляхи.
|
||||
Harness Codex обробляє лише посилання на моделі `codex/*`. Наявні посилання на провайдерів `openai/*`, `openai-codex/*`, Anthropic, Gemini, xAI, local і custom provider зберігають свої звичайні шляхи.
|
||||
|
||||
Вибір harness не є механізмом керування живою сесією. Коли виконується вбудований хід, OpenClaw записує ідентифікатор вибраного harness у цю сесію і продовжує використовувати його для наступних ходів у межах того самого ідентифікатора сесії. Змінюйте конфігурацію `embeddedHarness` або `OPENCLAW_AGENT_RUNTIME`, якщо хочете, щоб майбутні сесії використовували інший harness; використовуйте `/new` або `/reset`, щоб почати нову сесію перед перемиканням наявної розмови між PI і Codex. Це дає змогу уникнути повторного програвання одного транскрипту через дві несумісні нативні системи сесій.
|
||||
|
||||
Застарілі сесії, створені до появи прив’язок harness, вважаються прив’язаними до PI, щойно в них з’являється історія транскрипту. Використовуйте `/new` або `/reset`, щоб перевести таку розмову на Codex після зміни конфігурації.
|
||||
|
||||
`/status` показує ефективний не-PI harness поруч із `Fast`, наприклад `Fast · codex`. Стандартний harness PI не показується.
|
||||
|
||||
## Вимоги
|
||||
|
||||
- OpenClaw із доступним комплектним Plugin `codex`.
|
||||
- app-server Codex версії `0.118.0` або новішої.
|
||||
- Автентифікація Codex, доступна для процесу app-server.
|
||||
- OpenClaw із доступним вбудованим plugin `codex`.
|
||||
- Codex app-server версії `0.118.0` або новішої.
|
||||
- Доступна автентифікація Codex для процесу app-server.
|
||||
|
||||
Plugin блокує старіші або неверсіоновані handshake app-server. Це утримує
|
||||
OpenClaw у межах поверхні протоколу, з якою його було протестовано.
|
||||
Plugin блокує старіші або безверсійні handshake app-server. Це гарантує, що OpenClaw працює лише з тією поверхнею протоколу, з якою його було протестовано.
|
||||
|
||||
Для live і Docker smoke-тестів автентифікація зазвичай надходить із `OPENAI_API_KEY`, а також, за потреби, з файлів CLI Codex, таких як `~/.codex/auth.json` і
|
||||
`~/.codex/config.toml`. Використовуйте ті самі автентифікаційні дані, які використовує ваш локальний app-server Codex.
|
||||
Для live- і Docker smoke-тестів автентифікація зазвичай надходить із `OPENAI_API_KEY`, а також за потреби з файлів Codex CLI, таких як `~/.codex/auth.json` і `~/.codex/config.toml`. Використовуйте ті самі автентифікаційні матеріали, які використовує ваш локальний app-server Codex.
|
||||
|
||||
## Мінімальна конфігурація
|
||||
|
||||
Використовуйте `codex/gpt-5.4`, увімкніть комплектний Plugin і примусово задайте каркас `codex`:
|
||||
Використовуйте `codex/gpt-5.4`, увімкніть вбудований plugin і примусово задайте harness `codex`:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -105,9 +102,7 @@ OpenClaw у межах поверхні протоколу, з якою його
|
||||
}
|
||||
```
|
||||
|
||||
Установлення `agents.defaults.model` або моделі агента в `codex/<model>` також
|
||||
автоматично вмикає комплектний Plugin `codex`. Явний запис Plugin усе ще
|
||||
корисний у спільних конфігураціях, бо він чітко показує намір розгортання.
|
||||
Встановлення `agents.defaults.model` або моделі агента в `codex/<model>` також автоматично вмикає вбудований plugin `codex`. Явний запис plugin усе одно корисний у спільних конфігураціях, оскільки він робить намір розгортання очевидним.
|
||||
|
||||
## Додайте Codex без заміни інших моделей
|
||||
|
||||
@ -143,16 +138,16 @@ OpenClaw у межах поверхні протоколу, з якою його
|
||||
}
|
||||
```
|
||||
|
||||
У такій конфігурації:
|
||||
За такої конфігурації:
|
||||
|
||||
- `/model codex` або `/model codex/gpt-5.4` використовує каркас app-server Codex.
|
||||
- `/model codex` або `/model codex/gpt-5.4` використовує harness app-server Codex.
|
||||
- `/model gpt` або `/model openai/gpt-5.4` використовує шлях провайдера OpenAI.
|
||||
- `/model opus` використовує шлях провайдера Anthropic.
|
||||
- Якщо вибрано не-Codex модель, PI залишається каркасом сумісності.
|
||||
- Якщо вибрано не-Codex модель, PI залишається harness сумісності.
|
||||
|
||||
## Розгортання лише з Codex
|
||||
|
||||
Вимкніть резервний перехід до PI, якщо вам потрібно довести, що кожен вбудований хід агента використовує каркас Codex:
|
||||
Вимкніть резервний перехід до PI, якщо вам потрібно довести, що кожен вбудований хід агента використовує harness Codex:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -176,14 +171,11 @@ OPENCLAW_AGENT_HARNESS_FALLBACK=none \
|
||||
openclaw gateway run
|
||||
```
|
||||
|
||||
Коли fallback вимкнено, OpenClaw завершується з помилкою на ранньому етапі, якщо Plugin Codex вимкнений,
|
||||
запитана модель не є посиланням `codex/*`, app-server надто старий або
|
||||
app-server не може запуститися.
|
||||
Якщо резервний перехід вимкнено, OpenClaw завершується з помилкою на ранньому етапі, якщо plugin Codex вимкнений, запитувана модель не є посиланням `codex/*`, app-server надто старий або app-server не вдається запустити.
|
||||
|
||||
## Codex для окремого агента
|
||||
|
||||
Ви можете зробити одного агента лише Codex, тоді як агент за замовчуванням зберігатиме звичайний
|
||||
автовибір:
|
||||
Ви можете зробити один агент таким, що працює лише з Codex, тоді як агент за замовчуванням зберігатиме звичайний автоматичний вибір:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -214,14 +206,11 @@ app-server не може запуститися.
|
||||
}
|
||||
```
|
||||
|
||||
Використовуйте звичайні команди сесії, щоб перемикати агентів і моделі. `/new` створює нову
|
||||
сесію OpenClaw, а каркас Codex створює або відновлює свій sidecar-потік app-server
|
||||
за потреби. `/reset` очищає прив’язку сесії OpenClaw для цього потоку.
|
||||
Використовуйте звичайні команди сесій, щоб перемикати агентів і моделі. `/new` створює нову сесію OpenClaw, а harness Codex створює або відновлює свій sidecar app-server thread за потреби. `/reset` очищує прив’язку сесії OpenClaw для цього потоку й дозволяє наступному ходу знову визначити harness із поточної конфігурації.
|
||||
|
||||
## Виявлення моделей
|
||||
|
||||
За замовчуванням Plugin Codex запитує в app-server список доступних моделей. Якщо
|
||||
виявлення завершується помилкою або перевищує час очікування, він використовує комплектний резервний каталог:
|
||||
За замовчуванням plugin Codex запитує app-server про доступні моделі. Якщо виявлення не вдається або завершується за тайм-аутом, використовується вбудований резервний каталог:
|
||||
|
||||
- `codex/gpt-5.4`
|
||||
- `codex/gpt-5.4-mini`
|
||||
@ -247,8 +236,7 @@ app-server не може запуститися.
|
||||
}
|
||||
```
|
||||
|
||||
Вимкніть виявлення, якщо хочете, щоб під час запуску не виконувалася перевірка Codex і використовувався лише
|
||||
резервний каталог:
|
||||
Вимкніть виявлення, якщо хочете, щоб під час запуску не виконувалось опитування Codex і використовувався лише резервний каталог:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -267,21 +255,19 @@ app-server не може запуститися.
|
||||
}
|
||||
```
|
||||
|
||||
## Підключення app-server і політика
|
||||
## Підключення до app-server і політика
|
||||
|
||||
За замовчуванням Plugin запускає Codex локально так:
|
||||
За замовчуванням plugin запускає Codex локально так:
|
||||
|
||||
```bash
|
||||
codex app-server --listen stdio://
|
||||
```
|
||||
|
||||
За замовчуванням OpenClaw запускає локальні сесії каркаса Codex у режимі YOLO:
|
||||
За замовчуванням OpenClaw запускає локальні сесії harness Codex у режимі YOLO:
|
||||
`approvalPolicy: "never"`, `approvalsReviewer: "user"` і
|
||||
`sandbox: "danger-full-access"`. Це поза довіри для локального оператора, який використовується
|
||||
для автономних Heartbeat: Codex може використовувати shell і мережеві інструменти без
|
||||
зупинки на нативних запитах на погодження, коли поруч немає нікого, хто міг би відповісти.
|
||||
`sandbox: "danger-full-access"`. Це позиція довіреного локального оператора, яка використовується для автономних Heartbeat: Codex може використовувати shell і мережеві інструменти без зупинки на нативних запитах на погодження, коли нікому на них відповідати.
|
||||
|
||||
Щоб увімкнути погодження Codex, перевірювані Guardian, задайте `appServer.mode:
|
||||
Щоб увімкнути погодження Codex із перевіркою Guardian, задайте `appServer.mode:
|
||||
"guardian"`:
|
||||
|
||||
```json5
|
||||
@ -302,11 +288,11 @@ codex app-server --listen stdio://
|
||||
}
|
||||
```
|
||||
|
||||
Guardian — це нативний рецензент погоджень Codex. Коли Codex просить вийти із sandbox, записати поза межами workspace або додати дозволи, як-от доступ до мережі, Codex спрямовує цей запит на погодження до субагента-рецензента замість запиту людині. Рецензент застосовує модель ризиків Codex і схвалює або відхиляє конкретний запит. Використовуйте Guardian, якщо вам потрібно більше захисних обмежень, ніж у режимі YOLO, але водночас потрібно, щоб агенти без нагляду могли просуватися далі.
|
||||
Guardian — це нативний рецензент погоджень Codex. Коли Codex просить вийти із sandbox, записати дані поза межами workspace або додати дозволи, наприклад доступ до мережі, Codex спрямовує цей запит на погодження до субагента-рецензента замість запиту людині. Рецензент застосовує рамку оцінки ризиків Codex і схвалює або відхиляє конкретний запит. Використовуйте Guardian, якщо вам потрібні суворіші обмеження, ніж у режимі YOLO, але при цьому агенти мають продовжувати роботу без нагляду.
|
||||
|
||||
Пресет `guardian` розгортається до `approvalPolicy: "on-request"`, `approvalsReviewer: "guardian_subagent"` і `sandbox: "workspace-write"`. Окремі поля політики все одно мають пріоритет над `mode`, тож у складніших розгортаннях можна поєднувати пресет із явними виборами.
|
||||
Пресет `guardian` розгортається у `approvalPolicy: "on-request"`, `approvalsReviewer: "guardian_subagent"` і `sandbox: "workspace-write"`. Окремі поля політики, як і раніше, мають пріоритет над `mode`, тому в розширених розгортаннях можна поєднувати цей пресет з явними налаштуваннями.
|
||||
|
||||
Для app-server, який уже запущено, використовуйте транспорт WebSocket:
|
||||
Для вже запущеного app-server використовуйте транспорт WebSocket:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -330,23 +316,22 @@ Guardian — це нативний рецензент погоджень Codex.
|
||||
|
||||
Підтримувані поля `appServer`:
|
||||
|
||||
| Поле | Значення за замовчуванням | Значення |
|
||||
| ------------------- | ----------------------------------------- | --------------------------------------------------------------------------------------------------------- |
|
||||
| `transport` | `"stdio"` | `"stdio"` запускає Codex; `"websocket"` підключається до `url`. |
|
||||
| `command` | `"codex"` | Виконуваний файл для транспорту stdio. |
|
||||
| `args` | `["app-server", "--listen", "stdio://"]` | Аргументи для транспорту stdio. |
|
||||
| `url` | не задано | URL app-server WebSocket. |
|
||||
| `authToken` | не задано | Bearer-токен для транспорту WebSocket. |
|
||||
| `headers` | `{}` | Додаткові заголовки WebSocket. |
|
||||
| `requestTimeoutMs` | `60000` | Тайм-аут для викликів control plane app-server. |
|
||||
| `mode` | `"yolo"` | Пресет для виконання в режимі YOLO або з погодженнями Guardian. |
|
||||
| `approvalPolicy` | `"never"` | Нативна політика погодження Codex, що передається під час старту/відновлення потоку/ходу. |
|
||||
| `sandbox` | `"danger-full-access"` | Нативний режим sandbox Codex, що передається під час старту/відновлення потоку. |
|
||||
| `approvalsReviewer` | `"user"` | Використовуйте `"guardian_subagent"`, щоб дозволити Guardian Codex перевіряти запити. |
|
||||
| `serviceTier` | не задано | Необов’язковий рівень сервісу app-server Codex: `"fast"`, `"flex"` або `null`. Некоректні застарілі значення ігноруються. |
|
||||
| Поле | Типове значення | Значення |
|
||||
| ------------------- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------- |
|
||||
| `transport` | `"stdio"` | `"stdio"` запускає Codex; `"websocket"` підключається до `url`. |
|
||||
| `command` | `"codex"` | Виконуваний файл для транспорту stdio. |
|
||||
| `args` | `["app-server", "--listen", "stdio://"]` | Аргументи для транспорту stdio. |
|
||||
| `url` | не задано | URL app-server WebSocket. |
|
||||
| `authToken` | не задано | Bearer-токен для транспорту WebSocket. |
|
||||
| `headers` | `{}` | Додаткові заголовки WebSocket. |
|
||||
| `requestTimeoutMs` | `60000` | Тайм-аут для викликів control-plane app-server. |
|
||||
| `mode` | `"yolo"` | Пресет для виконання YOLO або виконання з перевіркою Guardian. |
|
||||
| `approvalPolicy` | `"never"` | Нативна політика погоджень Codex, що надсилається під час запуску/відновлення потоку та ходу. |
|
||||
| `sandbox` | `"danger-full-access"` | Нативний режим sandbox Codex, що надсилається під час запуску/відновлення потоку. |
|
||||
| `approvalsReviewer` | `"user"` | Використовуйте `"guardian_subagent"`, щоб перевірку запитів виконував Codex Guardian. |
|
||||
| `serviceTier` | не задано | Необов’язковий рівень сервісу app-server Codex: `"fast"`, `"flex"` або `null`. Некоректні застарілі значення ігноруються. |
|
||||
|
||||
Старіші змінні середовища все ще працюють як fallback для локального тестування, коли
|
||||
відповідне поле конфігурації не задано:
|
||||
Старіші змінні середовища, як і раніше, працюють як резервні варіанти для локального тестування, якщо відповідне поле конфігурації не задано:
|
||||
|
||||
- `OPENCLAW_CODEX_APP_SERVER_BIN`
|
||||
- `OPENCLAW_CODEX_APP_SERVER_ARGS`
|
||||
@ -354,14 +339,13 @@ Guardian — це нативний рецензент погоджень Codex.
|
||||
- `OPENCLAW_CODEX_APP_SERVER_APPROVAL_POLICY`
|
||||
- `OPENCLAW_CODEX_APP_SERVER_SANDBOX`
|
||||
|
||||
`OPENCLAW_CODEX_APP_SERVER_GUARDIAN=1` вилучено. Натомість використовуйте
|
||||
`OPENCLAW_CODEX_APP_SERVER_GUARDIAN=1` було вилучено. Натомість використовуйте
|
||||
`plugins.entries.codex.config.appServer.mode: "guardian"` або
|
||||
`OPENCLAW_CODEX_APP_SERVER_MODE=guardian` для разового локального тестування. Для
|
||||
відтворюваних розгортань бажано використовувати конфігурацію, оскільки вона зберігає поведінку Plugin в тому самому перевіреному файлі, що й решта налаштування каркаса Codex.
|
||||
`OPENCLAW_CODEX_APP_SERVER_MODE=guardian` для одноразового локального тестування. Конфігурація є кращим варіантом для відтворюваних розгортань, оскільки вона зберігає поведінку plugin у тому самому перевіреному файлі, що й решта налаштувань harness Codex.
|
||||
|
||||
## Поширені рецепти
|
||||
|
||||
Локальний Codex із транспортом stdio за замовчуванням:
|
||||
Локальний Codex із типовим транспортом stdio:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -375,7 +359,7 @@ Guardian — це нативний рецензент погоджень Codex.
|
||||
}
|
||||
```
|
||||
|
||||
Перевірка каркаса лише з Codex, з вимкненим fallback до PI:
|
||||
Перевірка harness лише з Codex із вимкненим резервним переходом до PI:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -392,7 +376,7 @@ Guardian — це нативний рецензент погоджень Codex.
|
||||
}
|
||||
```
|
||||
|
||||
Погодження Codex, перевірювані Guardian:
|
||||
Погодження Codex із перевіркою Guardian:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -414,7 +398,7 @@ Guardian — це нативний рецензент погоджень Codex.
|
||||
}
|
||||
```
|
||||
|
||||
Віддалений app-server з явними заголовками:
|
||||
Віддалений app-server із явними заголовками:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -437,61 +421,61 @@ Guardian — це нативний рецензент погоджень Codex.
|
||||
}
|
||||
```
|
||||
|
||||
Перемикання моделей і далі контролюється OpenClaw. Коли сесію OpenClaw прив’язано
|
||||
до наявного потоку Codex, наступний хід знову надсилає до
|
||||
app-server поточну вибрану модель `codex/*`, провайдера, політику погодження, sandbox і рівень сервісу.
|
||||
Перемикання з `codex/gpt-5.4` на `codex/gpt-5.2` зберігає
|
||||
прив’язку до потоку, але просить Codex продовжити з нововибраною моделлю.
|
||||
Перемикання моделей і надалі контролюється OpenClaw. Коли сесію OpenClaw приєднано
|
||||
до наявного потоку Codex, під час наступного ходу до app-server знову надсилаються
|
||||
поточна вибрана модель `codex/*`, провайдер, політика погоджень, sandbox і service tier.
|
||||
Перемикання з `codex/gpt-5.4` на `codex/gpt-5.2` зберігає прив’язку до потоку, але
|
||||
просить Codex продовжити роботу з новою вибраною моделлю.
|
||||
|
||||
## Команда Codex
|
||||
|
||||
Комплектний Plugin реєструє `/codex` як авторизовану slash-команду. Вона є
|
||||
загальною і працює в будь-якому каналі, що підтримує текстові команди OpenClaw.
|
||||
Вбудований plugin реєструє `/codex` як авторизовану slash-команду. Вона є
|
||||
універсальною і працює в будь-якому каналі, що підтримує текстові команди OpenClaw.
|
||||
|
||||
Поширені форми:
|
||||
|
||||
- `/codex status` показує стан підключення до live app-server, моделі, обліковий запис, ліміти швидкості, сервери MCP і skills.
|
||||
- `/codex models` показує список моделей live app-server Codex.
|
||||
- `/codex threads [filter]` показує список нещодавніх потоків Codex.
|
||||
- `/codex resume <thread-id>` прив’язує поточну сесію OpenClaw до наявного потоку Codex.
|
||||
- `/codex compact` просить app-server Codex виконати Compaction для прив’язаного потоку.
|
||||
- `/codex review` запускає нативну перевірку Codex для прив’язаного потоку.
|
||||
- `/codex status` показує актуальне підключення до app-server, моделі, обліковий запис, ліміти швидкості, сервери MCP і Skills.
|
||||
- `/codex models` виводить список актуальних моделей app-server Codex.
|
||||
- `/codex threads [filter]` виводить список недавніх потоків Codex.
|
||||
- `/codex resume <thread-id>` приєднує поточну сесію OpenClaw до наявного потоку Codex.
|
||||
- `/codex compact` просить app-server Codex виконати Compaction для приєднаного потоку.
|
||||
- `/codex review` запускає нативну перевірку Codex для приєднаного потоку.
|
||||
- `/codex account` показує стан облікового запису та лімітів швидкості.
|
||||
- `/codex mcp` показує стан серверів MCP app-server Codex.
|
||||
- `/codex skills` показує skills app-server Codex.
|
||||
- `/codex mcp` виводить стан серверів MCP app-server Codex.
|
||||
- `/codex skills` виводить список Skills app-server Codex.
|
||||
|
||||
`/codex resume` записує той самий sidecar-файл прив’язки, який каркас використовує для
|
||||
звичайних ходів. У наступному повідомленні OpenClaw відновлює цей потік Codex, передає
|
||||
поточну вибрану в OpenClaw модель `codex/*` до app-server і зберігає
|
||||
увімкнену розширену історію.
|
||||
`/codex resume` записує той самий sidecar-файл прив’язки, який harness використовує для
|
||||
звичайних ходів. Під час наступного повідомлення OpenClaw відновлює цей потік Codex, передає
|
||||
до app-server поточну вибрану модель OpenClaw `codex/*` і зберігає увімкнену розширену
|
||||
історію.
|
||||
|
||||
Поверхня команд потребує app-server Codex версії `0.118.0` або новішої. Окремі
|
||||
Поверхня команд вимагає Codex app-server `0.118.0` або новішої версії. Окремі
|
||||
методи керування позначаються як `unsupported by this Codex app-server`, якщо
|
||||
майбутній або кастомний app-server не надає цей метод JSON-RPC.
|
||||
майбутній або кастомний app-server не надає такого JSON-RPC-методу.
|
||||
|
||||
## Інструменти, медіа та Compaction
|
||||
|
||||
Каркас Codex змінює лише низькорівневий виконавець вбудованого агента.
|
||||
Harness Codex змінює лише низькорівневий виконавець вбудованого агента.
|
||||
|
||||
OpenClaw і далі формує список інструментів і отримує динамічні результати інструментів від
|
||||
каркаса. Текст, зображення, відео, музика, TTS, погодження та вихід інструментів обміну повідомленнями
|
||||
OpenClaw, як і раніше, формує список інструментів і отримує динамічні результати інструментів від
|
||||
harness. Текст, зображення, відео, музика, TTS, погодження та вивід інструментів обміну повідомленнями
|
||||
і далі проходять через звичайний шлях доставки OpenClaw.
|
||||
|
||||
Запити на погодження інструментів MCP Codex спрямовуються через потік погоджень Plugin OpenClaw,
|
||||
Запити на погодження інструментів Codex MCP маршрутизуються через потік погоджень plugin OpenClaw,
|
||||
коли Codex позначає `_meta.codex_approval_kind` як
|
||||
`"mcp_tool_call"`; інші запити на elicitation і вільне введення все ще завершуються
|
||||
із закритою відмовою.
|
||||
`"mcp_tool_call"`; інші запити на уточнення та запити довільного введення, як і раніше, жорстко відхиляються.
|
||||
|
||||
Коли вибрана модель використовує каркас Codex, нативний Compaction потоку
|
||||
Коли вибрана модель використовує harness Codex, нативний Compaction потоку
|
||||
делегується app-server Codex. OpenClaw зберігає дзеркало транскрипту для історії каналу,
|
||||
пошуку, `/new`, `/reset` і майбутнього перемикання моделі або каркаса. Це
|
||||
дзеркало містить запит користувача, фінальний текст асистента та спрощені записи міркувань або плану Codex, коли app-server їх надсилає. Наразі OpenClaw лише
|
||||
записує нативні сигнали початку й завершення Compaction. Він поки що не показує
|
||||
людинозрозумілий підсумок Compaction або аудитний список того, які записи Codex
|
||||
зберіг після Compaction.
|
||||
пошуку, `/new`, `/reset` і майбутнього перемикання моделей або harness. Це
|
||||
дзеркало містить запит користувача, фінальний текст асистента та полегшені записи
|
||||
міркувань або плану Codex, коли app-server їх надсилає. Наразі OpenClaw лише
|
||||
записує сигнали початку та завершення нативного Compaction. Він поки що не
|
||||
показує придатний для читання людиною підсумок Compaction або аудитний список того,
|
||||
які саме записи Codex зберіг після Compaction.
|
||||
|
||||
Генерація медіа не потребує PI. Генерація зображень, відео, музики, PDF, TTS і
|
||||
розуміння медіа й далі використовують відповідні налаштування провайдера/моделі, як-от
|
||||
розуміння медіа, як і раніше, використовує відповідні налаштування провайдера/моделі, такі як
|
||||
`agents.defaults.imageGenerationModel`, `videoGenerationModel`, `pdfModel` і
|
||||
`messages.tts`.
|
||||
|
||||
@ -500,26 +484,28 @@ OpenClaw і далі формує список інструментів і от
|
||||
**Codex не з’являється в `/model`:** увімкніть `plugins.entries.codex.enabled`,
|
||||
задайте посилання на модель `codex/*` або перевірте, чи `plugins.allow` не виключає `codex`.
|
||||
|
||||
**OpenClaw використовує PI замість Codex:** якщо жоден каркас Codex не обробляє цей запуск,
|
||||
**OpenClaw використовує PI замість Codex:** якщо жоден harness Codex не обробляє цей запуск,
|
||||
OpenClaw може використовувати PI як backend сумісності. Задайте
|
||||
`embeddedHarness.runtime: "codex"`, щоб примусово вибрати Codex під час тестування, або
|
||||
`embeddedHarness.fallback: "none"`, щоб завершуватися з помилкою, коли жоден каркас Plugin не підходить. Щойно буде вибрано app-server Codex, його збої відображатимуться безпосередньо без додаткової конфігурації fallback.
|
||||
`embeddedHarness.fallback: "none"`, щоб отримувати помилку, коли жоден harness plugin не підходить.
|
||||
Щойно app-server Codex буде вибрано, його помилки передаватимуться безпосередньо без додаткової
|
||||
конфігурації резервного переходу.
|
||||
|
||||
**app-server відхиляється:** оновіть Codex, щоб handshake app-server
|
||||
повідомляв версію `0.118.0` або новішу.
|
||||
|
||||
**Виявлення моделей повільне:** зменште `plugins.entries.codex.config.discovery.timeoutMs`
|
||||
**Виявлення моделей працює повільно:** зменште `plugins.entries.codex.config.discovery.timeoutMs`
|
||||
або вимкніть виявлення.
|
||||
|
||||
**Транспорт WebSocket одразу завершується помилкою:** перевірте `appServer.url`, `authToken`
|
||||
і те, що віддалений app-server використовує ту саму версію протоколу app-server Codex.
|
||||
**Транспорт WebSocket одразу завершується з помилкою:** перевірте `appServer.url`, `authToken`
|
||||
і те, що віддалений app-server підтримує ту саму версію протоколу app-server Codex.
|
||||
|
||||
**Модель не-Codex використовує PI:** це очікувано. Каркас Codex обробляє лише
|
||||
**Не-Codex модель використовує PI:** це очікувана поведінка. Harness Codex обробляє лише
|
||||
посилання на моделі `codex/*`.
|
||||
|
||||
## Пов’язані матеріали
|
||||
## Пов’язане
|
||||
|
||||
- [Plugins каркаса агента](/uk/plugins/sdk-agent-harness)
|
||||
- [Plugins harness агента](/uk/plugins/sdk-agent-harness)
|
||||
- [Провайдери моделей](/uk/concepts/model-providers)
|
||||
- [Довідник конфігурації](/uk/gateway/configuration-reference)
|
||||
- [Довідник із конфігурації](/uk/gateway/configuration-reference)
|
||||
- [Тестування](/uk/help/testing#live-codex-app-server-harness-smoke)
|
||||
|
||||
@ -1,53 +1,53 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви змінюєте вбудоване середовище виконання агента або реєстр обв’язок агента
|
||||
- Ви реєструєте обв’язку агента з bundled або trusted plugin
|
||||
- Ви змінюєте вбудоване середовище виконання агента або реєстр harness агента
|
||||
- Ви реєструєте harness агента з bundled або trusted plugin
|
||||
- Вам потрібно зрозуміти, як plugin Codex пов’язаний із постачальниками моделей
|
||||
sidebarTitle: Agent Harness
|
||||
summary: Експериментальна поверхня SDK для plugins, які замінюють низькорівневий вбудований виконавець агента
|
||||
title: Plugins обв’язки агента
|
||||
summary: Експериментальна поверхня SDK для plugin, що замінюють низькорівневий вбудований виконавець агента
|
||||
title: Plugin Harness агента
|
||||
x-i18n:
|
||||
generated_at: "2026-04-22T23:30:48Z"
|
||||
generated_at: "2026-04-23T16:05:48Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: efaecca18210af0e9e641bd888c1edb55e08e96299158ff021d6c2dd0218ec25
|
||||
source_hash: ec858acedaae8670c730022f8cc700499ac3b95d3d4144584e01051b224fee64
|
||||
source_path: plugins/sdk-agent-harness.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Plugins обв’язки агента
|
||||
# Plugin Harness агента
|
||||
|
||||
**Обв’язка агента** — це низькорівневий виконавець одного підготовленого ходу агента OpenClaw. Це не постачальник моделей, не канал і не реєстр інструментів.
|
||||
**Harness агента** — це низькорівневий виконавець для одного підготовленого ходу агента OpenClaw. Це не постачальник моделей, не канал і не реєстр інструментів.
|
||||
|
||||
Використовуйте цю поверхню лише для bundled або trusted native plugins. Контракт усе ще експериментальний, тому що типи параметрів навмисно віддзеркалюють поточний вбудований виконавець.
|
||||
Використовуйте цю поверхню лише для bundled або trusted native plugin. Контракт усе ще експериментальний, оскільки типи параметрів навмисно віддзеркалюють поточний вбудований runner.
|
||||
|
||||
## Коли використовувати обв’язку
|
||||
## Коли використовувати harness
|
||||
|
||||
Реєструйте обв’язку агента, коли сімейство моделей має власне native session runtime і звичайний транспорт постачальника OpenClaw є хибною абстракцією.
|
||||
Реєструйте harness агента, коли сімейство моделей має власне native session runtime і звичайний транспорт постачальника OpenClaw є хибною абстракцією.
|
||||
|
||||
Приклади:
|
||||
|
||||
- native server кодувального агента, який керує потоками та Compaction
|
||||
- локальний CLI або демон, який має потоково передавати native plan/reasoning/tool events
|
||||
- середовище виконання моделі, якому потрібен власний resume id на додачу до транскрипту сесії OpenClaw
|
||||
- native coding-agent server, який керує threads і Compaction
|
||||
- локальний CLI або daemon, який має транслювати native plan/reasoning/tool events
|
||||
- runtime моделі, якому потрібен власний resume id на додачу до транскрипту сесії OpenClaw
|
||||
|
||||
**Не** реєструйте обв’язку лише для додавання нового API LLM. Для звичайних HTTP або WebSocket API моделей створіть [provider plugin](/uk/plugins/sdk-provider-plugins).
|
||||
**Не** реєструйте harness лише для додавання нового API LLM. Для звичайних HTTP- або WebSocket- API моделей створіть [plugin постачальника](/uk/plugins/sdk-provider-plugins).
|
||||
|
||||
## Чим усе ще керує ядро
|
||||
|
||||
До того, як обв’язка буде вибрана, OpenClaw уже визначив:
|
||||
Перш ніж буде вибрано harness, OpenClaw уже визначив:
|
||||
|
||||
- постачальника й модель
|
||||
- стан автентифікації середовища виконання
|
||||
- рівень мислення та бюджет контексту
|
||||
- стан auth runtime
|
||||
- рівень thinking і бюджет контексту
|
||||
- файл транскрипту/сесії OpenClaw
|
||||
- робочий простір, sandbox і політику інструментів
|
||||
- зворотні виклики відповіді каналу та потокові зворотні виклики
|
||||
- політику резервної моделі та live-перемикання моделей
|
||||
- callback-и відповіді каналу й callback-и streaming
|
||||
- політику fallback моделі та live-перемикання моделей
|
||||
|
||||
Такий поділ є навмисним. Обв’язка виконує підготовлену спробу; вона не вибирає постачальників, не замінює доставку через канал і не перемикає моделі непомітно.
|
||||
Цей поділ навмисний. Harness виконує підготовлену спробу; він не вибирає постачальників, не замінює доставку каналу й не перемикає моделі непомітно.
|
||||
|
||||
## Зареєструвати обв’язку
|
||||
## Зареєструвати harness
|
||||
|
||||
**Імпорт:** `openclaw/plugin-sdk/agent-harness`
|
||||
|
||||
@ -85,54 +85,57 @@ export default definePluginEntry({
|
||||
|
||||
## Політика вибору
|
||||
|
||||
OpenClaw вибирає обв’язку після визначення постачальника/моделі:
|
||||
OpenClaw вибирає harness після визначення постачальника/моделі:
|
||||
|
||||
1. `OPENCLAW_AGENT_RUNTIME=<id>` примусово вибирає зареєстровану обв’язку з цим id.
|
||||
2. `OPENCLAW_AGENT_RUNTIME=pi` примусово вибирає вбудовану обв’язку PI.
|
||||
3. `OPENCLAW_AGENT_RUNTIME=auto` запитує в зареєстрованих обв’язок, чи підтримують вони визначеного постачальника/модель.
|
||||
4. Якщо жодна зареєстрована обв’язка не підходить, OpenClaw використовує PI, якщо резервний перехід на PI не вимкнено.
|
||||
1. Перемагає записаний id harness наявної сесії, щоб зміни config/env не перемикали цей транскрипт на інше runtime на льоту.
|
||||
2. `OPENCLAW_AGENT_RUNTIME=<id>` примусово вибирає зареєстрований harness із цим id для сесій, які ще не закріплено.
|
||||
3. `OPENCLAW_AGENT_RUNTIME=pi` примусово вибирає вбудований harness PI.
|
||||
4. `OPENCLAW_AGENT_RUNTIME=auto` запитує в зареєстрованих harness, чи підтримують вони визначеного постачальника/модель.
|
||||
5. Якщо жоден зареєстрований harness не підходить, OpenClaw використовує PI, якщо fallback PI не вимкнено.
|
||||
|
||||
Збої plugin-обв’язки відображаються як збої виконання. У режимі `auto` резервний перехід на PI використовується лише тоді, коли жодна зареєстрована plugin-обв’язка не підтримує визначеного постачальника/модель. Щойно plugin-обв’язка взяла виконання на себе, OpenClaw не повторює той самий хід через PI, тому що це може змінити семантику автентифікації/середовища виконання або продублювати побічні ефекти.
|
||||
Збої plugin harness відображаються як збої запуску. У режимі `auto` fallback до PI використовується лише тоді, коли жоден зареєстрований plugin harness не підтримує визначеного постачальника/модель. Щойно plugin harness уже взяв запуск на себе, OpenClaw не повторює той самий хід через PI, оскільки це може змінити семантику auth/runtime або дублювати побічні ефекти.
|
||||
|
||||
Bundled plugin Codex реєструє `codex` як id своєї обв’язки. Ядро розглядає це як звичайний id plugin-обв’язки; специфічні для Codex псевдоніми мають належати plugin або конфігурації оператора, а не спільному селектору середовища виконання.
|
||||
Вибраний id harness зберігається разом з id сесії після вбудованого запуску. Legacy-сесії, створені до закріплення harness, вважаються закріпленими за PI, щойно в них з’являється історія транскрипту. Використовуйте нову/скинуту сесію під час перемикання між PI і native plugin harness. `/status` показує id нетипових harness, наприклад `codex`, поруч із `Fast`; PI залишається прихованим, оскільки це типовий шлях сумісності.
|
||||
|
||||
## Поєднання постачальника й обв’язки
|
||||
Bundled plugin Codex реєструє `codex` як свій id harness. Ядро розглядає це як звичайний id plugin harness; специфічні для Codex псевдоніми мають належати plugin або config оператора, а не спільному селектору runtime.
|
||||
|
||||
Більшість обв’язок також мають реєструвати постачальника. Постачальник робить посилання на моделі, стан автентифікації, метадані моделей і вибір `/model` видимими для решти OpenClaw. Потім обв’язка заявляє про підтримку цього постачальника в `supports(...)`.
|
||||
## Поєднання постачальника і harness
|
||||
|
||||
Більшість harness також мають реєструвати постачальника. Постачальник робить refs моделей, статус auth, метадані моделей і вибір `/model` видимими для решти OpenClaw. Потім harness заявляє підтримку цього постачальника в `supports(...)`.
|
||||
|
||||
Bundled plugin Codex дотримується цього шаблону:
|
||||
|
||||
- id постачальника: `codex`
|
||||
- посилання користувача на моделі: `codex/gpt-5.4`, `codex/gpt-5.2` або інша модель, повернена Codex app server
|
||||
- id обв’язки: `codex`
|
||||
- автентифікація: синтетична доступність постачальника, тому що обв’язка Codex керує native login/session Codex
|
||||
- запит до app-server: OpenClaw надсилає в Codex bare model id і дозволяє обв’язці працювати з native app-server protocol
|
||||
- refs моделей для користувача: `codex/gpt-5.4`, `codex/gpt-5.2` або інша модель, повернута app server Codex
|
||||
- id harness: `codex`
|
||||
- auth: synthetic availability постачальника, оскільки harness Codex керує native login/session Codex
|
||||
- запит до app-server: OpenClaw надсилає Codex базовий id моделі й дозволяє harness взаємодіяти з native протоколом app-server
|
||||
|
||||
Plugin Codex є адитивним. Звичайні посилання `openai/gpt-*` лишаються посиланнями постачальника OpenAI й далі використовують звичайний шлях постачальника OpenClaw. Вибирайте `codex/gpt-*`, коли вам потрібні керована Codex автентифікація, виявлення моделей Codex, native threads і виконання через Codex app-server. `/model` може перемикатися між моделями Codex, які повертає Codex app server, без потреби в облікових даних постачальника OpenAI.
|
||||
Plugin Codex є додатковим. Звичайні refs `openai/gpt-*` залишаються refs постачальника OpenAI і далі використовують звичайний шлях постачальника OpenClaw. Вибирайте `codex/gpt-*`, якщо вам потрібні auth під керуванням Codex, виявлення моделей Codex, native threads і виконання через app-server Codex. `/model` може перемикатися між моделями Codex, які повертає app server Codex, без потреби в облікових даних постачальника OpenAI.
|
||||
|
||||
Щоб дізнатися про налаштування для операторів, приклади префіксів моделей і конфігурації лише для Codex, див. [Codex Harness](/uk/plugins/codex-harness).
|
||||
Налаштування для операторів, приклади префіксів моделей і конфігурації лише для Codex дивіться в [Codex Harness](/uk/plugins/codex-harness).
|
||||
|
||||
OpenClaw вимагає Codex app-server `0.118.0` або новішої версії. Plugin Codex перевіряє initialize handshake app-server і блокує старіші сервери або сервери без версії, щоб OpenClaw працював лише з тією поверхнею протоколу, з якою його було протестовано.
|
||||
OpenClaw вимагає Codex app-server `0.118.0` або новішої версії. Plugin Codex перевіряє initialize handshake app-server і блокує старіші або неверсіоновані server, щоб OpenClaw працював лише з тією поверхнею протоколу, з якою його було протестовано.
|
||||
|
||||
### Middleware tool-result Codex app-server
|
||||
### Middleware результатів інструментів Codex app-server
|
||||
|
||||
Bundled plugins також можуть підключати middleware `tool_result`, специфічний для Codex app-server, через `api.registerCodexAppServerExtensionFactory(...)`, коли їхній manifest оголошує `contracts.embeddedExtensionFactories: ["codex-app-server"]`.
|
||||
Це seam trusted-plugin для асинхронних перетворень tool-result, які мають виконуватися всередині native обв’язки Codex до того, як вивід інструмента буде спроєктовано назад у транскрипт OpenClaw.
|
||||
Bundled plugin також можуть підключати middleware `tool_result`, специфічний для Codex app-server, через `api.registerCodexAppServerExtensionFactory(...)`, коли їхній manifest оголошує `contracts.embeddedExtensionFactories: ["codex-app-server"]`.
|
||||
Це seam trusted-plugin для асинхронних перетворень результатів інструментів, які мають виконуватися всередині native harness Codex до того, як вивід інструмента буде спроєктовано назад у транскрипт OpenClaw.
|
||||
|
||||
### Режим native обв’язки Codex
|
||||
### Режим native harness Codex
|
||||
|
||||
Bundled обв’язка `codex` — це native режим Codex для вбудованих ходів агента OpenClaw. Спочатку ввімкніть bundled plugin `codex` і додайте `codex` до `plugins.allow`, якщо у вашій конфігурації використовується обмежувальний allowlist. Це відрізняється від `openai-codex/*`:
|
||||
Bundled harness `codex` — це native-режим Codex для вбудованих ходів агента OpenClaw. Спочатку увімкніть bundled plugin `codex` і додайте `codex` до `plugins.allow`, якщо у вашій config використовується обмежувальний allowlist. Це відрізняється від `openai-codex/*`:
|
||||
|
||||
- `openai-codex/*` використовує OAuth ChatGPT/Codex через звичайний шлях постачальника OpenClaw.
|
||||
- `codex/*` використовує bundled постачальника Codex і маршрутизує хід через Codex app-server.
|
||||
- `codex/*` використовує bundled-постачальника Codex і маршрутизує хід через app-server Codex.
|
||||
|
||||
Коли цей режим виконується, Codex керує native thread id, поведінкою resume, Compaction і виконанням app-server. OpenClaw усе ще керує каналом чату, видимим дзеркалом транскрипту, політикою інструментів, підтвердженнями, доставкою медіа та вибором сесії. Використовуйте `embeddedHarness.runtime: "codex"` разом із `embeddedHarness.fallback: "none"`, коли вам потрібно довести, що лише шлях Codex app-server може взяти виконання на себе. Ця конфігурація є лише захистом вибору: збої Codex app-server уже напряму завершуються помилкою замість повторної спроби через PI.
|
||||
Коли цей режим працює, Codex керує native thread id, поведінкою resume, Compaction і виконанням app-server. OpenClaw усе ще керує chat-каналом, видимим дзеркалом транскрипту, політикою інструментів, погодженнями, доставкою медіа та вибором сесії. Використовуйте `embeddedHarness.runtime: "codex"` разом із `embeddedHarness.fallback: "none"`, коли потрібно довести, що запуск може взяти на себе лише шлях app-server Codex. Ця config є лише запобіжником вибору: збої app-server Codex і так одразу завершуються помилкою без повторної спроби через PI.
|
||||
|
||||
## Вимкнути резервний перехід на PI
|
||||
## Вимкнення fallback до PI
|
||||
|
||||
За замовчуванням OpenClaw запускає вбудованих агентів із `agents.defaults.embeddedHarness`, встановленим у `{ runtime: "auto", fallback: "pi" }`. У режимі `auto` зареєстровані plugin-обв’язки можуть взяти на себе пару постачальник/модель. Якщо жодна не підходить, OpenClaw переходить на PI.
|
||||
Типово OpenClaw запускає вбудованих агентів із `agents.defaults.embeddedHarness`, установленим у `{ runtime: "auto", fallback: "pi" }`. У режимі `auto` зареєстровані plugin harness можуть взяти на себе пару постачальник/модель. Якщо жоден не підходить, OpenClaw повертається до PI.
|
||||
|
||||
Установіть `fallback: "none"`, коли вам потрібно, щоб відсутність вибору plugin-обв’язки завершувалася помилкою замість використання PI. Збої вже вибраних plugin-обв’язок і так завершуються жорсткою помилкою. Це не блокує явний `runtime: "pi"` або `OPENCLAW_AGENT_RUNTIME=pi`.
|
||||
Установіть `fallback: "none"`, коли потрібно, щоб за відсутності вибору plugin harness виконання завершувалося помилкою замість використання PI. Збої вже вибраного plugin harness і так завершуються жорсткою помилкою. Це не блокує явний `runtime: "pi"` або `OPENCLAW_AGENT_RUNTIME=pi`.
|
||||
|
||||
Для вбудованих запусків лише з Codex:
|
||||
|
||||
@ -150,7 +153,7 @@ Bundled обв’язка `codex` — це native режим Codex для вбу
|
||||
}
|
||||
```
|
||||
|
||||
Якщо ви хочете, щоб будь-яка зареєстрована plugin-обв’язка брала на себе відповідні моделі, але ніколи не хочете, щоб OpenClaw непомітно переходив на PI, залиште `runtime: "auto"` і вимкніть резервний перехід:
|
||||
Якщо ви хочете, щоб будь-який зареєстрований plugin harness міг узяти на себе відповідні моделі, але ніколи не хочете, щоб OpenClaw непомітно повертався до PI, залиште `runtime: "auto"` і вимкніть fallback:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -165,7 +168,7 @@ Bundled обв’язка `codex` — це native режим Codex для вбу
|
||||
}
|
||||
```
|
||||
|
||||
Перевизначення для окремого агента використовують ту саму форму:
|
||||
Перевизначення на рівні агента використовують ту саму форму:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -190,7 +193,7 @@ Bundled обв’язка `codex` — це native режим Codex для вбу
|
||||
}
|
||||
```
|
||||
|
||||
`OPENCLAW_AGENT_RUNTIME` усе ще перевизначає налаштоване середовище виконання. Використовуйте `OPENCLAW_AGENT_HARNESS_FALLBACK=none`, щоб вимкнути резервний перехід на PI через середовище.
|
||||
`OPENCLAW_AGENT_RUNTIME` усе ще перевизначає налаштоване runtime. Використовуйте `OPENCLAW_AGENT_HARNESS_FALLBACK=none`, щоб вимкнути fallback до PI через середовище.
|
||||
|
||||
```bash
|
||||
OPENCLAW_AGENT_RUNTIME=codex \
|
||||
@ -198,41 +201,41 @@ OPENCLAW_AGENT_HARNESS_FALLBACK=none \
|
||||
openclaw gateway run
|
||||
```
|
||||
|
||||
Якщо резервний перехід вимкнено, сесія завершується помилкою рано, коли запитана обв’язка не зареєстрована, не підтримує визначеного постачальника/модель або завершується помилкою до створення побічних ефектів ходу. Це навмисно для розгортань лише з Codex і для live-тестів, які мають довести, що шлях Codex app-server справді використовується.
|
||||
Якщо fallback вимкнено, сесія завершується помилкою рано, коли запитаний harness не зареєстровано, не підтримує визначеного постачальника/модель або завершується помилкою до появи побічних ефектів ходу. Це навмисно для розгортань лише з Codex і для live-тестів, які мають доводити, що шлях app-server Codex справді використовується.
|
||||
|
||||
Цей параметр керує лише вбудованою обв’язкою агента. Він не вимикає маршрутизацію image, video, music, TTS, PDF або іншої модельної маршрутизації, специфічної для постачальника.
|
||||
Цей параметр керує лише вбудованим harness агента. Він не вимикає маршрутизацію моделей, специфічну для постачальників, для зображень, відео, музики, TTS, PDF чи інших типів.
|
||||
|
||||
## Native sessions і дзеркало транскрипту
|
||||
## Native-сесії та дзеркало транскрипту
|
||||
|
||||
Обв’язка може зберігати native session id, thread id або daemon-side resume token.
|
||||
Явно зберігайте цю прив’язку пов’язаною із сесією OpenClaw і продовжуйте дзеркалити видимий користувачеві вивід assistant/tool у транскрипт OpenClaw.
|
||||
Harness може зберігати native session id, thread id або daemon-side resume token.
|
||||
Явно пов’язуйте цю прив’язку із сесією OpenClaw і продовжуйте дзеркалити видимий користувачеві вивід assistant/tool у транскрипт OpenClaw.
|
||||
|
||||
Транскрипт OpenClaw залишається шаром сумісності для:
|
||||
|
||||
- видимої в каналі історії сесії
|
||||
- пошуку та індексації транскриптів
|
||||
- перемикання назад на вбудовану обв’язку PI на наступному ході
|
||||
- загальної поведінки `/new`, `/reset` і видалення сесії
|
||||
- повернення до вбудованого harness PI на пізнішому ході
|
||||
- узагальненої поведінки `/new`, `/reset` і видалення сесій
|
||||
|
||||
Якщо ваша обв’язка зберігає sidecar-прив’язку, реалізуйте `reset(...)`, щоб OpenClaw міг очистити її, коли пов’язану сесію OpenClaw буде скинуто.
|
||||
Якщо ваш harness зберігає sidecar-прив’язку, реалізуйте `reset(...)`, щоб OpenClaw міг очистити її, коли відповідну сесію OpenClaw скидають.
|
||||
|
||||
## Результати інструментів і медіа
|
||||
|
||||
Ядро створює список інструментів OpenClaw і передає його в підготовлену спробу.
|
||||
Коли обв’язка виконує dynamic tool call, поверніть результат інструмента назад через форму результату обв’язки замість самостійного надсилання канального медіа.
|
||||
Ядро формує список інструментів OpenClaw і передає його в підготовлену спробу.
|
||||
Коли harness виконує динамічний виклик інструмента, повертайте результат інструмента назад через форму результату harness замість того, щоб самостійно надсилати медіа в канал.
|
||||
|
||||
Це зберігає text, image, video, music, TTS, approval і виводи messaging-tool на тому самому шляху доставки, що й у запусків на базі PI.
|
||||
Це зберігає текст, зображення, відео, музику, TTS, погодження та вивід інструментів обміну повідомленнями на тому самому шляху доставки, що й для запусків на базі PI.
|
||||
|
||||
## Поточні обмеження
|
||||
|
||||
- Публічний шлях імпорту є загальним, але деякі псевдоніми типів attempt/result усе ще містять назви `Pi` для сумісності.
|
||||
- Встановлення сторонніх обв’язок є експериментальним. Віддавайте перевагу provider plugins, доки вам не знадобиться native session runtime.
|
||||
- Перемикання обв’язок між ходами підтримується. Не перемикайте обв’язки посеред ходу після того, як уже почалися native tools, approvals, текст assistant або надсилання повідомлень.
|
||||
- Публічний шлях імпорту є узагальненим, але деякі псевдоніми типів спроб/результатів і далі містять назви `Pi` для сумісності.
|
||||
- Установлення сторонніх harness є експериментальним. Віддавайте перевагу plugin постачальників, доки вам не знадобиться native session runtime.
|
||||
- Перемикання harness між ходами підтримується. Не перемикайте harness посеред ходу після того, як уже почалися native tools, погодження, текст assistant або надсилання повідомлень.
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Огляд SDK](/uk/plugins/sdk-overview)
|
||||
- [Допоміжні засоби середовища виконання](/uk/plugins/sdk-runtime)
|
||||
- [Provider Plugins](/uk/plugins/sdk-provider-plugins)
|
||||
- [Допоміжні засоби runtime](/uk/plugins/sdk-runtime)
|
||||
- [Plugin постачальників](/uk/plugins/sdk-provider-plugins)
|
||||
- [Codex Harness](/uk/plugins/codex-harness)
|
||||
- [Постачальники моделей](/uk/concepts/model-providers)
|
||||
|
||||
@ -1,145 +1,73 @@
|
||||
---
|
||||
description: Real-world OpenClaw projects from the community
|
||||
read_when:
|
||||
- Пошук реальних прикладів використання OpenClaw
|
||||
- Шукаєте реальні приклади використання OpenClaw
|
||||
- Оновлення добірки проєктів спільноти
|
||||
summary: Проєкти та інтеграції, створені спільнотою на базі OpenClaw
|
||||
summary: Створені спільнотою проєкти та інтеграції на базі OpenClaw
|
||||
title: Вітрина
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:47:53Z"
|
||||
generated_at: "2026-04-23T16:05:46Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 5bf4bd2548709a01ad18331537f804b32c3213139c2234915aa17f7a2638f19f
|
||||
source_hash: b95dc12399a1a263c268671ffccfc86b069ec908a5bf40adc00663153c281d7d
|
||||
source_path: start/showcase.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Вітрина
|
||||
|
||||
<div className="showcase-hero">
|
||||
<p className="showcase-kicker">Створено в чатах, терміналах, браузерах і вітальнях</p>
|
||||
<p className="showcase-lead">
|
||||
Проєкти OpenClaw — не іграшкові демо. Люди запускають цикли рев’ю PR, мобільні застосунки, домашню автоматизацію,
|
||||
голосові системи, devtools і робочі процеси з великим обсягом пам’яті з каналів, якими вони вже користуються.
|
||||
</p>
|
||||
<div className="showcase-actions">
|
||||
<a href="#videos">Дивитися демо</a>
|
||||
<a href="#fresh-from-discord">Переглянути проєкти</a>
|
||||
<a href="https://discord.gg/clawd">Поділитися своїм</a>
|
||||
</div>
|
||||
<div className="showcase-highlights">
|
||||
<div className="showcase-highlight">
|
||||
<strong>Розробка, природна для чатів</strong>
|
||||
<span>Telegram, WhatsApp, Discord, Beeper, вебчат і робочі процеси з акцентом на термінал.</span>
|
||||
</div>
|
||||
<div className="showcase-highlight">
|
||||
<strong>Справжня автоматизація</strong>
|
||||
<span>Бронювання, покупки, підтримка, звітність і керування браузером без очікування на API.</span>
|
||||
</div>
|
||||
<div className="showcase-highlight">
|
||||
<strong>Локальний + фізичний світ</strong>
|
||||
<span>Принтери, пилососи, камери, дані про здоров’я, домашні системи та особисті бази знань.</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
Проєкти OpenClaw — це не іграшкові демо. Люди запускають цикли перевірки PR, мобільні застосунки, домашню автоматизацію, голосові системи, devtools і робочі процеси з великим обсягом пам’яті з тих каналів, якими вони вже користуються — нативні для чату збірки в Telegram, WhatsApp, Discord і терміналах; реальна автоматизація для бронювання, покупок і підтримки без очікування на API; а також інтеграції з фізичним світом — із принтерами, пилососами, камерами та домашніми системами.
|
||||
|
||||
<Info>
|
||||
**Хочете потрапити у добірку?** Поділіться своїм проєктом у [#self-promotion на Discord](https://discord.gg/clawd) або [позначте @openclaw на X](https://x.com/openclaw).
|
||||
**Хочете потрапити у добірку?** Поділіться своїм проєктом у [#self-promotion на Discord](https://discord.gg/clawd) або [позначте @openclaw у X](https://x.com/openclaw).
|
||||
</Info>
|
||||
|
||||
<div className="showcase-jump-links">
|
||||
<a href="#videos">Відео</a>
|
||||
<a href="#fresh-from-discord">Свіже з Discord</a>
|
||||
<a href="#automation-workflows">Автоматизація</a>
|
||||
<a href="#knowledge-memory">Пам’ять</a>
|
||||
<a href="#voice-phone">Голос і телефонія</a>
|
||||
<a href="#infrastructure-deployment">Інфраструктура</a>
|
||||
<a href="#home-hardware">Дім і обладнання</a>
|
||||
<a href="#community-projects">Спільнота</a>
|
||||
<a href="#submit-your-project">Надіслати проєкт</a>
|
||||
</div>
|
||||
|
||||
## Відео
|
||||
|
||||
<p className="showcase-section-intro">
|
||||
Почніть тут, якщо хочете найкоротший шлях від «що це таке?» до «гаразд, я зрозумів».
|
||||
</p>
|
||||
Почніть тут, якщо хочете найкоротший шлях від «що це таке?» до «гаразд, я зрозумів».
|
||||
|
||||
<div className="showcase-video-grid">
|
||||
<div className="showcase-video-card">
|
||||
<div className="showcase-video-shell">
|
||||
<iframe
|
||||
src="https://www.youtube-nocookie.com/embed/SaWSPZoPX34"
|
||||
title="OpenClaw: The self-hosted AI that Siri should have been (Full setup)"
|
||||
loading="lazy"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||
allowFullScreen
|
||||
/>
|
||||
</div>
|
||||
<h3>Повний покроковий процес налаштування</h3>
|
||||
<p>VelvetShark, 28 хвилин. Встановлення, onboarding і перший робочий асистент від початку до кінця.</p>
|
||||
<a href="https://www.youtube.com/watch?v=SaWSPZoPX34">Дивитися на YouTube</a>
|
||||
</div>
|
||||
<CardGroup cols={3}>
|
||||
|
||||
<div className="showcase-video-card">
|
||||
<div className="showcase-video-shell">
|
||||
<iframe
|
||||
src="https://www.youtube-nocookie.com/embed/mMSKQvlmFuQ"
|
||||
title="OpenClaw showcase video"
|
||||
loading="lazy"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||
allowFullScreen
|
||||
/>
|
||||
</div>
|
||||
<h3>Добірка проєктів спільноти</h3>
|
||||
<p>Швидший огляд реальних проєктів, поверхонь і робочих процесів, побудованих навколо OpenClaw.</p>
|
||||
<a href="https://www.youtube.com/watch?v=mMSKQvlmFuQ">Дивитися на YouTube</a>
|
||||
</div>
|
||||
<Card title="Повний покроковий посібник із налаштування" href="https://www.youtube.com/watch?v=SaWSPZoPX34">
|
||||
VelvetShark, 28 хвилин. Встановлення, онбординг і шлях до першого працездатного асистента від початку до кінця.
|
||||
</Card>
|
||||
|
||||
<div className="showcase-video-card">
|
||||
<div className="showcase-video-shell">
|
||||
<iframe
|
||||
src="https://www.youtube-nocookie.com/embed/5kkIJNUGFho"
|
||||
title="OpenClaw community showcase"
|
||||
loading="lazy"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||
allowFullScreen
|
||||
/>
|
||||
</div>
|
||||
<h3>Проєкти з реального світу</h3>
|
||||
<p>Приклади від спільноти: від циклів програмування, природних для чатів, до обладнання та особистої автоматизації.</p>
|
||||
<a href="https://www.youtube.com/watch?v=5kkIJNUGFho">Дивитися на YouTube</a>
|
||||
</div>
|
||||
</div>
|
||||
<Card title="Відеодобірка проєктів спільноти" href="https://www.youtube.com/watch?v=mMSKQvlmFuQ">
|
||||
Швидший огляд реальних проєктів, поверхонь і робочих процесів, побудованих навколо OpenClaw.
|
||||
</Card>
|
||||
|
||||
<Card title="Проєкти в реальному використанні" href="https://www.youtube.com/watch?v=5kkIJNUGFho">
|
||||
Приклади від спільноти — від нативних для чату циклів програмування до обладнання та персональної автоматизації.
|
||||
</Card>
|
||||
|
||||
</CardGroup>
|
||||
|
||||
## Свіже з Discord
|
||||
|
||||
<p className="showcase-section-intro">
|
||||
Нещодавні яскраві приклади в програмуванні, devtools, мобільних застосунках і розробці продуктів, природній для чатів.
|
||||
</p>
|
||||
Нещодавні помітні приклади в програмуванні, devtools, мобільних застосунках і створенні продуктів, нативних для чату.
|
||||
|
||||
<CardGroup cols={2}>
|
||||
|
||||
<Card title="Рев’ю PR → Відгук у Telegram" icon="code-pull-request" href="https://x.com/i/status/2010878524543131691">
|
||||
<Card title="Від перевірки PR до відгуку в Telegram" icon="code-pull-request" href="https://x.com/i/status/2010878524543131691">
|
||||
**@bangnokia** • `review` `github` `telegram`
|
||||
|
||||
OpenCode завершує зміну → відкриває PR → OpenClaw перевіряє diff і відповідає в Telegram «незначними зауваженнями» плюс чітким вердиктом щодо злиття (включно з критичними виправленнями, які треба застосувати спочатку).
|
||||
OpenCode завершує зміну, відкриває PR, OpenClaw перевіряє diff і відповідає в Telegram рекомендаціями та чітким вердиктом щодо злиття.
|
||||
|
||||
<img src="/assets/showcase/pr-review-telegram.jpg" alt="Відгук OpenClaw про PR, доставлений у Telegram" />
|
||||
<img src="/assets/showcase/pr-review-telegram.jpg" alt="Відгук OpenClaw щодо перевірки PR, доставлений у Telegram" />
|
||||
</Card>
|
||||
|
||||
<Card title="Skill для винного льоху за кілька хвилин" icon="wine-glass" href="https://x.com/i/status/2010916352454791216">
|
||||
<Card title="Skill для винного погреба за лічені хвилини" icon="wine-glass" href="https://x.com/i/status/2010916352454791216">
|
||||
**@prades_maxime** • `skills` `local` `csv`
|
||||
|
||||
Попросили «Robby» (@openclaw) створити local skill для винного льоху. Він запитує зразок експорту CSV + де його зберігати, а потім швидко створює/тестує skill (у прикладі 962 пляшки).
|
||||
Попросили «Robby» (@openclaw) створити локальний Skill для винного погреба. Він запитує зразок експорту CSV і шлях збереження, а потім створює та тестує Skill (962 пляшки в прикладі).
|
||||
|
||||
<img src="/assets/showcase/wine-cellar-skill.jpg" alt="OpenClaw створює local skill для винного льоху з CSV" />
|
||||
<img src="/assets/showcase/wine-cellar-skill.jpg" alt="OpenClaw створює локальний Skill для винного погреба з CSV" />
|
||||
</Card>
|
||||
|
||||
<Card title="Автопілот для покупок у Tesco" icon="cart-shopping" href="https://x.com/i/status/2009724862470689131">
|
||||
**@marchattonhere** • `automation` `browser` `shopping`
|
||||
|
||||
Тижневий план харчування → звичні товари → бронювання слота доставки → підтвердження замовлення. Жодних API, лише керування браузером.
|
||||
Щотижневий план харчування, звичні товари, бронювання слота доставки, підтвердження замовлення. Жодних API — лише керування браузером.
|
||||
|
||||
<img src="/assets/showcase/tesco-shop.jpg" alt="Автоматизація покупок у Tesco через чат" />
|
||||
</Card>
|
||||
@ -147,15 +75,15 @@ OpenCode завершує зміну → відкриває PR → OpenClaw пе
|
||||
<Card title="SNAG: зі скриншота в Markdown" icon="scissors" href="https://github.com/am-will/snag">
|
||||
**@am-will** • `devtools` `screenshots` `markdown`
|
||||
|
||||
Гаряча клавіша для області екрана → бачення Gemini → миттєвий Markdown у буфері обміну.
|
||||
Вибір області екрана гарячою клавішею, Gemini vision, миттєвий Markdown у буфері обміну.
|
||||
|
||||
<img src="/assets/showcase/snag.png" alt="Інструмент SNAG для перетворення скриншотів у Markdown" />
|
||||
<img src="/assets/showcase/snag.png" alt="Інструмент SNAG для перетворення скриншотів у markdown" />
|
||||
</Card>
|
||||
|
||||
<Card title="Agents UI" icon="window-maximize" href="https://releaseflow.net/kitze/agents-ui">
|
||||
**@kitze** • `ui` `skills` `sync`
|
||||
|
||||
Десктопний застосунок для керування Skills/командами в Agents, Claude, Codex і OpenClaw.
|
||||
Десктопний застосунок для керування Skills і командами в Agents, Claude, Codex і OpenClaw.
|
||||
|
||||
<img src="/assets/showcase/agents-ui.jpg" alt="Застосунок Agents UI" />
|
||||
</Card>
|
||||
@ -163,287 +91,268 @@ OpenCode завершує зміну → відкриває PR → OpenClaw пе
|
||||
<Card title="Голосові повідомлення Telegram (papla.media)" icon="microphone" href="https://papla.media/docs">
|
||||
**Спільнота** • `voice` `tts` `telegram`
|
||||
|
||||
Обгортає papla.media TTS і надсилає результати як голосові повідомлення Telegram (без надокучливого автовідтворення).
|
||||
Обгортає papla.media TTS і надсилає результати як голосові повідомлення Telegram (без набридливого автовідтворення).
|
||||
|
||||
<img src="/assets/showcase/papla-tts.jpg" alt="Вихід TTS як голосове повідомлення Telegram" />
|
||||
<img src="/assets/showcase/papla-tts.jpg" alt="Вивід TTS як голосове повідомлення Telegram" />
|
||||
</Card>
|
||||
|
||||
<Card title="CodexMonitor" icon="eye" href="https://clawhub.ai/odrobnik/codexmonitor">
|
||||
**@odrobnik** • `devtools` `codex` `brew`
|
||||
|
||||
Допоміжний інструмент, що встановлюється через Homebrew, для перегляду/аналізу/моніторингу локальних сесій OpenAI Codex (CLI + VS Code).
|
||||
Помічник, що встановлюється через Homebrew, для перегляду, інспекції та відстеження локальних сесій OpenAI Codex (CLI + VS Code).
|
||||
|
||||
<img src="/assets/showcase/codexmonitor.png" alt="CodexMonitor на ClawHub" />
|
||||
<img src="/assets/showcase/codexmonitor.png" alt="CodexMonitor у ClawHub" />
|
||||
</Card>
|
||||
|
||||
<Card title="Керування 3D-принтером Bambu" icon="print" href="https://clawhub.ai/tobiasbischoff/bambu-cli">
|
||||
**@tobiasbischoff** • `hardware` `3d-printing` `skill`
|
||||
|
||||
Керування й усунення несправностей принтерів BambuLab: стан, завдання, камера, AMS, калібрування тощо.
|
||||
Керування й діагностика принтерів BambuLab: стан, завдання, камера, AMS, калібрування тощо.
|
||||
|
||||
<img src="/assets/showcase/bambu-cli.png" alt="Skill Bambu CLI на ClawHub" />
|
||||
<img src="/assets/showcase/bambu-cli.png" alt="Skill Bambu CLI у ClawHub" />
|
||||
</Card>
|
||||
|
||||
<Card title="Транспорт Відня (Wiener Linien)" icon="train" href="https://clawhub.ai/hjanuschka/wienerlinien">
|
||||
**@hjanuschka** • `travel` `transport` `skill`
|
||||
|
||||
Відправлення в реальному часі, збої, стан ліфтів і маршрутизація для громадського транспорту Відня.
|
||||
Відправлення в реальному часі, збої, стан ліфтів і маршрути для громадського транспорту Відня.
|
||||
|
||||
<img src="/assets/showcase/wienerlinien.png" alt="Skill Wiener Linien на ClawHub" />
|
||||
<img src="/assets/showcase/wienerlinien.png" alt="Skill Wiener Linien у ClawHub" />
|
||||
</Card>
|
||||
|
||||
<Card title="Шкільні обіди ParentPay" icon="utensils">
|
||||
<Card title="Шкільне харчування через ParentPay" icon="utensils">
|
||||
**@George5562** • `automation` `browser` `parenting`
|
||||
|
||||
Автоматизоване бронювання шкільних обідів у Великій Британії через ParentPay. Використовує координати миші для надійного натискання клітинок таблиці.
|
||||
Автоматизоване бронювання шкільного харчування у Великій Британії через ParentPay. Використовує координати миші для надійного натискання на клітинки таблиці.
|
||||
</Card>
|
||||
|
||||
<Card title="R2 Upload (Send Me My Files)" icon="cloud-arrow-up" href="https://clawhub.ai/skills/r2-upload">
|
||||
<Card title="Завантаження в R2 (Send Me My Files)" icon="cloud-arrow-up" href="https://clawhub.ai/skills/r2-upload">
|
||||
**@julianengel** • `files` `r2` `presigned-urls`
|
||||
|
||||
Завантаження в Cloudflare R2/S3 і генерація захищених presigned-посилань для завантаження. Ідеально для віддалених інстансів OpenClaw.
|
||||
Завантаження в Cloudflare R2/S3 і генерація безпечних presigned-посилань для завантаження. Корисно для віддалених інстансів OpenClaw.
|
||||
</Card>
|
||||
|
||||
<Card title="iOS-застосунок через Telegram" icon="mobile">
|
||||
**@coard** • `ios` `xcode` `testflight`
|
||||
|
||||
Повністю створений iOS-застосунок із мапами й записом голосу, розгорнутий у TestFlight повністю через чат у Telegram.
|
||||
Повністю створений iOS-застосунок із картами та записом голосу, розгорнутий у TestFlight цілком через чат у Telegram.
|
||||
|
||||
<img src="/assets/showcase/ios-testflight.jpg" alt="iOS-застосунок у TestFlight" />
|
||||
</Card>
|
||||
|
||||
<Card title="Асистент здоров’я для Oura Ring" icon="heart-pulse">
|
||||
<Card title="Помічник для здоров’я з Oura Ring" icon="heart-pulse">
|
||||
**@AS** • `health` `oura` `calendar`
|
||||
|
||||
Персональний AI-асистент здоров’я, що інтегрує дані Oura ring із календарем, зустрічами та розкладом спортзалу.
|
||||
Персональний AI-помічник для здоров’я, який інтегрує дані Oura ring із календарем, записами на прийом і графіком тренувань.
|
||||
|
||||
<img src="/assets/showcase/oura-health.png" alt="Асистент здоров’я для Oura ring" />
|
||||
<img src="/assets/showcase/oura-health.png" alt="Помічник для здоров’я з Oura ring" />
|
||||
</Card>
|
||||
<Card title="Dream Team Кева (14+ агентів)" icon="robot" href="https://github.com/adam91holt/orchestrated-ai-articles">
|
||||
**@adam91holt** • `multi-agent` `orchestration` `architecture` `manifesto`
|
||||
|
||||
14+ агентів під одним Gateway, де orchestrator на Opus 4.5 делегує завдання працівникам Codex. Детальний [технічний опис](https://github.com/adam91holt/orchestrated-ai-articles), що охоплює склад Dream Team, вибір моделей, sandboxing, Webhook, Heartbeat і потоки делегування. [Clawdspace](https://github.com/adam91holt/clawdspace) для sandboxing агентів. [Пост у блозі](https://adams-ai-journey.ghost.io/2026-the-year-of-the-orchestrator/).
|
||||
<Card title="Dream Team Кева (14+ агентів)" icon="robot" href="https://github.com/adam91holt/orchestrated-ai-articles">
|
||||
**@adam91holt** • `multi-agent` `orchestration`
|
||||
|
||||
14+ агентів під одним Gateway з оркестратором Opus 4.5, який делегує роботу воркерам Codex. Дивіться [технічний опис](https://github.com/adam91holt/orchestrated-ai-articles) і [Clawdspace](https://github.com/adam91holt/clawdspace) для ізоляції агентів у sandbox.
|
||||
</Card>
|
||||
|
||||
<Card title="Linear CLI" icon="terminal" href="https://github.com/Finesssee/linear-cli">
|
||||
**@NessZerra** • `devtools` `linear` `cli` `issues`
|
||||
**@NessZerra** • `devtools` `linear` `cli`
|
||||
|
||||
CLI для Linear, що інтегрується з агентними робочими процесами (Claude Code, OpenClaw). Керуйте issues, проєктами й робочими процесами з термінала. Перший зовнішній PR уже злито!
|
||||
CLI для Linear, який інтегрується з агентними робочими процесами (Claude Code, OpenClaw). Керуйте задачами, проєктами та робочими процесами з термінала.
|
||||
</Card>
|
||||
|
||||
<Card title="Beeper CLI" icon="message" href="https://github.com/blqke/beepcli">
|
||||
**@jules** • `messaging` `beeper` `cli` `automation`
|
||||
**@jules** • `messaging` `beeper` `cli`
|
||||
|
||||
Читання, надсилання та архівування повідомлень через Beeper Desktop. Використовує local MCP API Beeper, щоб агенти могли керувати всіма вашими чатами (iMessage, WhatsApp тощо) в одному місці.
|
||||
Читання, надсилання та архівування повідомлень через Beeper Desktop. Використовує локальний API MCP Beeper, тож агенти можуть керувати всіма вашими чатами (iMessage, WhatsApp та іншими) в одному місці.
|
||||
</Card>
|
||||
|
||||
</CardGroup>
|
||||
|
||||
<a id="automation-workflows"></a>
|
||||
## Автоматизація та робочі процеси
|
||||
|
||||
## Автоматизація й робочі процеси
|
||||
|
||||
<p className="showcase-section-intro">
|
||||
Планування, керування браузером, цикли підтримки та весь той бік продукту, де хочеться сказати: «просто зроби це за мене».
|
||||
</p>
|
||||
Планування, керування браузером, цикли підтримки та той бік продукту, де він «просто виконує завдання за мене».
|
||||
|
||||
<CardGroup cols={2}>
|
||||
|
||||
<Card title="Керування очищувачем повітря Winix" icon="wind" href="https://x.com/antonplex/status/2010518442471006253">
|
||||
**@antonplex** • `automation` `hardware` `air-quality`
|
||||
|
||||
Claude Code виявив і підтвердив керування очищувачем, а потім OpenClaw перебирає керування якістю повітря в кімнаті.
|
||||
Claude Code виявив і підтвердив елементи керування очищувачем, після чого OpenClaw перебирає керування якістю повітря в кімнаті.
|
||||
|
||||
<img src="/assets/showcase/winix-air-purifier.jpg" alt="Керування очищувачем повітря Winix через OpenClaw" />
|
||||
</Card>
|
||||
|
||||
<Card title="Гарні фото неба з камери" icon="camera" href="https://x.com/signalgaining/status/2010523120604746151">
|
||||
**@signalgaining** • `automation` `camera` `skill` `images`
|
||||
<Card title="Гарні знімки неба з камери" icon="camera" href="https://x.com/signalgaining/status/2010523120604746151">
|
||||
**@signalgaining** • `automation` `camera` `skill`
|
||||
|
||||
Тригер від дахуової камери: попросіть OpenClaw зробити фото неба, коли воно гарне — він спроєктував skill і зробив знімок.
|
||||
Запускається від камери на даху: попросіть OpenClaw зробити фото неба щоразу, коли воно має гарний вигляд. Він спроєктував Skill і зробив знімок.
|
||||
|
||||
<img src="/assets/showcase/roof-camera-sky.jpg" alt="Знімок неба з даху, зроблений OpenClaw" />
|
||||
<img src="/assets/showcase/roof-camera-sky.jpg" alt="Знімок неба з камери на даху, зроблений OpenClaw" />
|
||||
</Card>
|
||||
|
||||
<Card title="Візуальна сцена ранкового брифінгу" icon="robot" href="https://x.com/buddyhadry/status/2010005331925954739">
|
||||
**@buddyhadry** • `automation` `briefing` `images` `telegram`
|
||||
**@buddyhadry** • `automation` `briefing` `telegram`
|
||||
|
||||
Запланований prompt щоранку генерує одне зображення-«сцену» (погода, завдання, дата, улюблений пост/цитата) через persona OpenClaw.
|
||||
Запланований запит щоранку генерує одне сценічне зображення (погода, завдання, дата, улюблений допис або цитата) через персонажу OpenClaw.
|
||||
</Card>
|
||||
|
||||
<Card title="Бронювання корту для паделу" icon="calendar-check" href="https://github.com/joshp123/padel-cli">
|
||||
**@joshp123** • `automation` `booking` `cli`
|
||||
|
||||
CLI для перевірки доступності й бронювання в Playtomic. Більше ніколи не пропускайте вільний корт.
|
||||
|
||||
|
||||
CLI для перевірки доступності в Playtomic і бронювання. Більше ніколи не пропускайте вільний корт.
|
||||
|
||||
<img src="/assets/showcase/padel-screenshot.jpg" alt="Скриншот padel-cli" />
|
||||
</Card>
|
||||
|
||||
<Card title="Приймання бухгалтерських документів" icon="file-invoice-dollar">
|
||||
<Card title="Збір бухгалтерських документів" icon="file-invoice-dollar">
|
||||
**Спільнота** • `automation` `email` `pdf`
|
||||
|
||||
Збирає PDF із email, готує документи для податкового консультанта. Щомісячна бухгалтерія на автопілоті.
|
||||
|
||||
Збирає PDF з електронної пошти, готує документи для податкового консультанта. Щомісячна бухгалтерія на автопілоті.
|
||||
</Card>
|
||||
|
||||
<Card title="Режим розробки з дивана" icon="couch" href="https://davekiss.com">
|
||||
**@davekiss** • `telegram` `website` `migration` `astro`
|
||||
**@davekiss** • `telegram` `migration` `astro`
|
||||
|
||||
Відбудував увесь особистий сайт через Telegram під час перегляду Netflix — Notion → Astro, мігровано 18 дописів, DNS перенесено до Cloudflare. Жодного разу не відкривав ноутбук.
|
||||
Повністю перебудував персональний сайт через Telegram, дивлячись Netflix — міграція з Notion на Astro, перенесено 18 дописів, DNS до Cloudflare. Ноутбук навіть не відкривав.
|
||||
</Card>
|
||||
|
||||
<Card title="Агент для пошуку роботи" icon="briefcase">
|
||||
**@attol8** • `automation` `api` `skill`
|
||||
|
||||
Шукає вакансії, зіставляє їх із ключовими словами з CV і повертає релевантні можливості з посиланнями. Створено за 30 хвилин з використанням API JSearch.
|
||||
Шукає вакансії, зіставляє їх із ключовими словами в CV і повертає релевантні можливості з посиланнями. Створено за 30 хвилин із використанням API JSearch.
|
||||
</Card>
|
||||
|
||||
<Card title="Конструктор Skill для Jira" icon="diagram-project" href="https://x.com/jdrhyne/status/2008336434827002232">
|
||||
**@jdrhyne** • `automation` `jira` `skill` `devtools`
|
||||
**@jdrhyne** • `jira` `skill` `devtools`
|
||||
|
||||
OpenClaw підключився до Jira, а потім згенерував новий skill на льоту (ще до того, як він з’явився на ClawHub).
|
||||
OpenClaw підключився до Jira, а потім згенерував новий Skill на льоту (ще до того, як він з’явився в ClawHub).
|
||||
</Card>
|
||||
|
||||
<Card title="Skill Todoist через Telegram" icon="list-check" href="https://x.com/iamsubhrajyoti/status/2009949389884920153">
|
||||
**@iamsubhrajyoti** • `automation` `todoist` `skill` `telegram`
|
||||
**@iamsubhrajyoti** • `todoist` `skill` `telegram`
|
||||
|
||||
Автоматизував завдання Todoist і доручив OpenClaw згенерувати skill безпосередньо в чаті Telegram.
|
||||
Автоматизував завдання Todoist і доручив OpenClaw згенерувати Skill безпосередньо в чаті Telegram.
|
||||
</Card>
|
||||
|
||||
<Card title="Аналіз TradingView" icon="chart-line">
|
||||
<Card title="Аналіз у TradingView" icon="chart-line">
|
||||
**@bheem1798** • `finance` `browser` `automation`
|
||||
|
||||
Входить у TradingView через автоматизацію браузера, робить скриншоти графіків і виконує технічний аналіз на вимогу. Жодного API — лише керування браузером.
|
||||
Виконує вхід у TradingView через автоматизацію браузера, робить скриншоти графіків і виконує технічний аналіз за запитом. API не потрібен — лише керування браузером.
|
||||
</Card>
|
||||
|
||||
<Card title="Автопідтримка в Slack" icon="slack">
|
||||
**@henrymascot** • `slack` `automation` `support`
|
||||
|
||||
Стежить за корпоративним каналом Slack, корисно відповідає й пересилає сповіщення в Telegram. Автономно виправив production-баг у розгорнутому застосунку без жодного запиту.
|
||||
Стежить за каналом компанії в Slack, корисно відповідає та пересилає сповіщення в Telegram. Автономно виправив production-баг у розгорнутому застосунку без будь-якого запиту.
|
||||
</Card>
|
||||
|
||||
</CardGroup>
|
||||
|
||||
<a id="knowledge-memory"></a>
|
||||
## Знання та пам’ять
|
||||
|
||||
## Знання й пам’ять
|
||||
|
||||
<p className="showcase-section-intro">
|
||||
Системи, які індексують, шукають, запам’ятовують і міркують над особистими або командними знаннями.
|
||||
</p>
|
||||
Системи, які індексують, шукають, запам’ятовують і міркують на основі особистих або командних знань.
|
||||
|
||||
<CardGroup cols={2}>
|
||||
|
||||
<Card title="Вивчення китайської xuezh" icon="language" href="https://github.com/joshp123/xuezh">
|
||||
<Card title="xuezh для вивчення китайської" icon="language" href="https://github.com/joshp123/xuezh">
|
||||
**@joshp123** • `learning` `voice` `skill`
|
||||
|
||||
Рушій для вивчення китайської мови з відгуком щодо вимови й навчальними процесами через OpenClaw.
|
||||
|
||||
<img src="/assets/showcase/xuezh-pronunciation.jpeg" alt="Відгук щодо вимови xuezh" />
|
||||
|
||||
Система для вивчення китайської мови зі зворотним зв’язком щодо вимови та навчальними сценаріями через OpenClaw.
|
||||
|
||||
<img src="/assets/showcase/xuezh-pronunciation.jpeg" alt="Зворотний зв’язок щодо вимови в xuezh" />
|
||||
</Card>
|
||||
|
||||
<Card title="Сховище пам’яті WhatsApp" icon="vault">
|
||||
**Спільнота** • `memory` `transcription` `indexing`
|
||||
|
||||
Імпортує повні експорти WhatsApp, транскрибує 1k+ голосових повідомлень, звіряє з журналами git, формує пов’язані звіти Markdown.
|
||||
|
||||
Імпортує повні експорти WhatsApp, транскрибує понад 1 тис. голосових повідомлень, звіряє з git-логами та формує пов’язані markdown-звіти.
|
||||
</Card>
|
||||
|
||||
<Card title="Семантичний пошук Karakeep" icon="magnifying-glass" href="https://github.com/jamesbrooksco/karakeep-semantic-search">
|
||||
<Card title="Семантичний пошук у Karakeep" icon="magnifying-glass" href="https://github.com/jamesbrooksco/karakeep-semantic-search">
|
||||
**@jamesbrooksco** • `search` `vector` `bookmarks`
|
||||
|
||||
Додає векторний пошук до закладок Karakeep за допомогою Qdrant + embeddings OpenAI/Ollama.
|
||||
|
||||
Додає векторний пошук до закладок Karakeep за допомогою Qdrant і ембедингів OpenAI або Ollama.
|
||||
</Card>
|
||||
|
||||
<Card title="Пам’ять Inside-Out-2" icon="brain">
|
||||
**Спільнота** • `memory` `beliefs` `self-model`
|
||||
|
||||
Окремий менеджер пам’яті, який перетворює файли сесій у спогади → переконання → еволюційну модель себе.
|
||||
|
||||
Окремий менеджер пам’яті, який перетворює файли сесій на спогади, потім на переконання, а далі — на еволюційну модель себе.
|
||||
</Card>
|
||||
|
||||
</CardGroup>
|
||||
|
||||
<a id="voice-phone"></a>
|
||||
## Голос і телефон
|
||||
|
||||
## Голос і телефонія
|
||||
|
||||
<p className="showcase-section-intro">
|
||||
Точки входу, де головну роль відіграє мовлення, телефонні мости та робочі процеси з інтенсивною транскрипцією.
|
||||
</p>
|
||||
Точки входу зі ставкою на мовлення, телефонні мости та робочі процеси з інтенсивною транскрибацією.
|
||||
|
||||
<CardGroup cols={2}>
|
||||
|
||||
<Card title="Телефонний міст Clawdia" icon="phone" href="https://github.com/alejandroOPI/clawdia-bridge">
|
||||
**@alejandroOPI** • `voice` `vapi` `bridge`
|
||||
|
||||
HTTP-міст між голосовим асистентом Vapi й OpenClaw. Майже в реальному часі телефонні дзвінки з вашим агентом.
|
||||
|
||||
HTTP-міст від голосового асистента Vapi до OpenClaw. Майже в реальному часі телефонні дзвінки з вашим агентом.
|
||||
</Card>
|
||||
|
||||
<Card title="Транскрибування OpenRouter" icon="microphone" href="https://clawhub.ai/obviyus/openrouter-transcribe">
|
||||
<Card title="Транскрибування через OpenRouter" icon="microphone" href="https://clawhub.ai/obviyus/openrouter-transcribe">
|
||||
**@obviyus** • `transcription` `multilingual` `skill`
|
||||
|
||||
Багатомовне транскрибування аудіо через OpenRouter (Gemini тощо). Доступно на ClawHub.
|
||||
Багатомовне транскрибування аудіо через OpenRouter (Gemini та інші). Доступно в ClawHub.
|
||||
</Card>
|
||||
|
||||
</CardGroup>
|
||||
|
||||
<a id="infrastructure-deployment"></a>
|
||||
## Інфраструктура та розгортання
|
||||
|
||||
## Інфраструктура й розгортання
|
||||
|
||||
<p className="showcase-section-intro">
|
||||
Пакування, розгортання та інтеграції, які спрощують запуск і розширення OpenClaw.
|
||||
</p>
|
||||
Пакування, розгортання та інтеграції, які спрощують запуск і розширення OpenClaw.
|
||||
|
||||
<CardGroup cols={2}>
|
||||
|
||||
<Card title="Додаток Home Assistant" icon="home" href="https://github.com/ngutman/openclaw-ha-addon">
|
||||
<Card title="Доповнення для Home Assistant" icon="home" href="https://github.com/ngutman/openclaw-ha-addon">
|
||||
**@ngutman** • `homeassistant` `docker` `raspberry-pi`
|
||||
|
||||
Gateway OpenClaw, що працює на Home Assistant OS, із підтримкою SSH-тунелю та постійним станом.
|
||||
|
||||
Gateway OpenClaw, що працює на Home Assistant OS, із підтримкою SSH-тунелю та постійним станом.
|
||||
</Card>
|
||||
|
||||
<Card title="Skill Home Assistant" icon="toggle-on" href="https://clawhub.ai/skills/homeassistant">
|
||||
<Card title="Skill для Home Assistant" icon="toggle-on" href="https://clawhub.ai/skills/homeassistant">
|
||||
**ClawHub** • `homeassistant` `skill` `automation`
|
||||
|
||||
Керування й автоматизація пристроїв Home Assistant природною мовою.
|
||||
|
||||
Керуйте та автоматизуйте пристрої Home Assistant природною мовою.
|
||||
</Card>
|
||||
|
||||
<Card title="Пакування Nix" icon="snowflake" href="https://github.com/openclaw/nix-openclaw">
|
||||
<Card title="Пакування для Nix" icon="snowflake" href="https://github.com/openclaw/nix-openclaw">
|
||||
**@openclaw** • `nix` `packaging` `deployment`
|
||||
|
||||
OpenClaw-конфігурація на базі nix з усім необхідним для відтворюваних розгортань.
|
||||
|
||||
Готова до використання nix-конфігурація OpenClaw для відтворюваних розгортань.
|
||||
</Card>
|
||||
|
||||
<Card title="Календар CalDAV" icon="calendar" href="https://clawhub.ai/skills/caldav-calendar">
|
||||
**ClawHub** • `calendar` `caldav` `skill`
|
||||
|
||||
Skill календаря на базі khal/vdirsyncer. Самохостингова інтеграція календаря.
|
||||
|
||||
Skill календаря на основі khal і vdirsyncer. Самостійно розгорнута інтеграція календаря.
|
||||
</Card>
|
||||
|
||||
</CardGroup>
|
||||
|
||||
<a id="home-hardware"></a>
|
||||
|
||||
## Дім і обладнання
|
||||
|
||||
<p className="showcase-section-intro">
|
||||
Фізичний бік OpenClaw: домівки, сенсори, камери, пилососи та інші пристрої.
|
||||
</p>
|
||||
Сторона OpenClaw, пов’язана з фізичним світом: домівки, датчики, камери, пилососи та інші пристрої.
|
||||
|
||||
<CardGroup cols={2}>
|
||||
|
||||
<Card title="Автоматизація GoHome" icon="house-signal" href="https://github.com/joshp123/gohome">
|
||||
**@joshp123** • `home` `nix` `grafana`
|
||||
|
||||
Домашня автоматизація, природна для Nix, з OpenClaw як інтерфейсом, плюс чудові dashboard Grafana.
|
||||
|
||||
<img src="/assets/showcase/gohome-grafana.png" alt="Dashboard Grafana GoHome" />
|
||||
|
||||
Автоматизація дому з нативною підтримкою Nix, де OpenClaw виступає інтерфейсом, плюс панелі Grafana.
|
||||
|
||||
<img src="/assets/showcase/gohome-grafana.png" alt="Панель Grafana для GoHome" />
|
||||
</Card>
|
||||
|
||||
<Card title="Пилосос Roborock" icon="robot" href="https://github.com/joshp123/gohome/tree/main/plugins/roborock">
|
||||
**@joshp123** • `vacuum` `iot` `plugin`
|
||||
|
||||
Керуйте роботом-пилососом Roborock через природну розмову.
|
||||
|
||||
|
||||
Керуйте своїм роботом-пилососом Roborock за допомогою природної розмови.
|
||||
|
||||
<img src="/assets/showcase/roborock-screenshot.jpg" alt="Стан Roborock" />
|
||||
</Card>
|
||||
|
||||
@ -451,38 +360,28 @@ OpenClaw підключився до Jira, а потім згенерував н
|
||||
|
||||
## Проєкти спільноти
|
||||
|
||||
<p className="showcase-section-intro">
|
||||
Речі, які виросли за межі одного робочого процесу в ширші продукти або екосистеми.
|
||||
</p>
|
||||
Речі, що вийшли за межі одного робочого процесу й перетворилися на ширші продукти або екосистеми.
|
||||
|
||||
<CardGroup cols={2}>
|
||||
|
||||
<Card title="Маркетплейс StarSwap" icon="star" href="https://star-swap.com/">
|
||||
**Спільнота** • `marketplace` `astronomy` `webapp`
|
||||
|
||||
Повноцінний маркетплейс астрономічного обладнання. Створений за допомогою/навколо екосистеми OpenClaw.
|
||||
|
||||
Повноцінний маркетплейс астрономічного обладнання. Створений із використанням екосистеми OpenClaw і навколо неї.
|
||||
</Card>
|
||||
|
||||
</CardGroup>
|
||||
|
||||
---
|
||||
|
||||
## Надішліть свій проєкт
|
||||
|
||||
<p className="showcase-section-intro">
|
||||
Якщо ви створюєте щось цікаве з OpenClaw, надішліть це нам. Якісні скриншоти й конкретні результати дуже допомагають.
|
||||
</p>
|
||||
|
||||
Маєте чим поділитися? Ми будемо раді додати ваш проєкт!
|
||||
|
||||
<Steps>
|
||||
<Step title="Share It">
|
||||
Опублікуйте в [#self-promotion на Discord](https://discord.gg/clawd) або [згадайте @openclaw у дописі на X](https://x.com/openclaw)
|
||||
<Step title="Поділіться ним">
|
||||
Опублікуйте його в [#self-promotion на Discord](https://discord.gg/clawd) або [твітніть @openclaw](https://x.com/openclaw).
|
||||
</Step>
|
||||
<Step title="Include Details">
|
||||
Розкажіть, що це робить, дайте посилання на репозиторій/демо, додайте скриншот, якщо він у вас є
|
||||
<Step title="Додайте деталі">
|
||||
Розкажіть, що він робить, дайте посилання на репозиторій або демо та додайте скриншот, якщо він у вас є.
|
||||
</Step>
|
||||
<Step title="Get Featured">
|
||||
Ми додамо найяскравіші проєкти на цю сторінку
|
||||
<Step title="Потрапте у добірку">
|
||||
Ми додамо найкращі проєкти на цю сторінку.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user