summaryrefslogtreecommitdiffhomepage
path: root/packages/web/src/content/docs/ru
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-02-28 15:27:11 -0600
committerGitHub <[email protected]>2026-02-28 15:27:11 -0600
commite1e18c7abdb1025d7be63acee1f188b94d16eb9b (patch)
treead14a08aba4752d3ab03452209520c94bb0df59e /packages/web/src/content/docs/ru
parent971bd30516fb2b245f87bdf79e36bb64e72265bc (diff)
downloadopencode-e1e18c7abdb1025d7be63acee1f188b94d16eb9b.tar.gz
opencode-e1e18c7abdb1025d7be63acee1f188b94d16eb9b.zip
chore(docs): i18n sync (#15417)
Diffstat (limited to 'packages/web/src/content/docs/ru')
-rw-r--r--packages/web/src/content/docs/ru/cli.mdx1
-rw-r--r--packages/web/src/content/docs/ru/config.mdx50
-rw-r--r--packages/web/src/content/docs/ru/keybinds.mdx12
-rw-r--r--packages/web/src/content/docs/ru/providers.mdx67
-rw-r--r--packages/web/src/content/docs/ru/sdk.mdx114
-rw-r--r--packages/web/src/content/docs/ru/server.mdx216
-rw-r--r--packages/web/src/content/docs/ru/themes.mdx6
-rw-r--r--packages/web/src/content/docs/ru/tui.mdx32
-rw-r--r--packages/web/src/content/docs/ru/zen.mdx29
9 files changed, 340 insertions, 187 deletions
diff --git a/packages/web/src/content/docs/ru/cli.mdx b/packages/web/src/content/docs/ru/cli.mdx
index 1a1003a63..5fa85a18f 100644
--- a/packages/web/src/content/docs/ru/cli.mdx
+++ b/packages/web/src/content/docs/ru/cli.mdx
@@ -558,6 +558,7 @@ opencode можно настроить с помощью переменных с
| `OPENCODE_AUTO_SHARE` | логическое значение | Автоматически делиться сеансами |
| `OPENCODE_GIT_BASH_PATH` | строка | Путь к исполняемому файлу Git Bash в Windows |
| `OPENCODE_CONFIG` | строка | Путь к файлу конфигурации |
+| `OPENCODE_TUI_CONFIG` | строка | Путь к файлу конфигурации TUI |
| `OPENCODE_CONFIG_DIR` | строка | Путь к каталогу конфигурации |
| `OPENCODE_CONFIG_CONTENT` | строка | Встроенное содержимое конфигурации json |
| `OPENCODE_DISABLE_AUTOUPDATE` | логическое значение | Отключить автоматическую проверку обновлений |
diff --git a/packages/web/src/content/docs/ru/config.mdx b/packages/web/src/content/docs/ru/config.mdx
index 14af31cfd..5d91dc5e0 100644
--- a/packages/web/src/content/docs/ru/config.mdx
+++ b/packages/web/src/content/docs/ru/config.mdx
@@ -97,6 +97,8 @@ opencode поддерживает форматы **JSON** и **JSONC** (JSON с
Поместите глобальную конфигурацию opencode в `~/.config/opencode/opencode.json`. Используйте глобальную конфигурацию для общепользовательских настроек, таких как темы, поставщики или привязки клавиш.
+Для настроек, специфичных для TUI, используйте `~/.config/opencode/tui.json`.
+
Глобальная конфигурация переопределяет настройки по умолчанию для удаленной организации.
---
@@ -105,6 +107,8 @@ opencode поддерживает форматы **JSON** и **JSONC** (JSON с
Добавьте `opencode.json` в корень вашего проекта. Конфигурация проекта имеет наивысший приоритет среди стандартных файлов конфигурации — она переопределяет как глобальные, так и удаленные конфигурации.
+Для настроек TUI, специфичных для проекта, добавьте `tui.json` рядом с ним.
+
:::tip
Поместите конфигурацию конкретного проекта в корень вашего проекта.
:::
@@ -145,34 +149,32 @@ opencode run "Hello world"
Файл конфигурации имеет схему, определенную в [**`opencode.ai/config.json`**](https://opencode.ai/config.json).
+Конфигурация TUI использует [**`opencode.ai/tui.json`**](https://opencode.ai/tui.json).
+
Ваш редактор должен иметь возможность проверять и автозаполнять данные на основе схемы.
---
### TUI
-Вы можете настроить параметры TUI с помощью опции `tui`.
+Используйте специальный файл `tui.json` (или `tui.jsonc`) для настроек, специфичных для TUI.
-```json title="opencode.json"
+```json title="tui.json"
{
- "$schema": "https://opencode.ai/config.json",
- "tui": {
- "scroll_speed": 3,
- "scroll_acceleration": {
- "enabled": true
- },
- "diff_style": "auto"
- }
+ "$schema": "https://opencode.ai/tui.json",
+ "scroll_speed": 3,
+ "scroll_acceleration": {
+ "enabled": true
+ },
+ "diff_style": "auto"
}
```
-Доступные варианты:
+Используйте `OPENCODE_TUI_CONFIG`, чтобы указать на пользовательский файл конфигурации TUI.
-- `scroll_acceleration.enabled` — включить ускорение прокрутки в стиле MacOS. **Имеет приоритет над `scroll_speed`.**
-- `scroll_speed` — пользовательский множитель скорости прокрутки (по умолчанию: `3`, минимум: `1`). Игнорируется, если `scroll_acceleration.enabled` равен `true`.
-- `diff_style` — управление рендерингом различий. `"auto"` адаптируется к ширине terminal, `"stacked"` всегда отображает один столбец.
+Устаревшие ключи `theme`, `keybinds` и `tui` в `opencode.json` устарели и автоматически переносятся, когда это возможно.
-[Подробнее об использовании TUI можно узнать здесь](/docs/tui).
+[Подробнее об использовании TUI можно узнать здесь](/docs/tui#configure).
---
@@ -298,12 +300,12 @@ Amazon Bedrock поддерживает конфигурацию, специфи
### theme
-Вы можете настроить тему, которую хотите использовать, в конфигурации opencode с помощью опции `theme`.
+Установите тему пользовательского интерфейса в `tui.json`.
-```json title="opencode.json"
+```json title="tui.json"
{
- "$schema": "https://opencode.ai/config.json",
- "theme": ""
+ "$schema": "https://opencode.ai/tui.json",
+ "theme": "tokyonight"
}
```
@@ -403,11 +405,11 @@ Amazon Bedrock поддерживает конфигурацию, специфи
### Сочетания клавиш
-Вы можете настроить привязки клавиш с помощью опции `keybinds`.
+Настройте привязки клавиш в `tui.json`.
-```json title="opencode.json"
+```json title="tui.json"
{
- "$schema": "https://opencode.ai/config.json",
+ "$schema": "https://opencode.ai/tui.json",
"keybinds": {}
}
```
@@ -487,13 +489,15 @@ opencode автоматически загрузит все новые обно�
"$schema": "https://opencode.ai/config.json",
"compaction": {
"auto": true,
- "prune": true
+ "prune": true,
+ "reserved": 10000
}
}
```
- `auto` — автоматически сжимать сеанс при заполнении контекста (по умолчанию: `true`).
- `prune` — удалить старые выходные данные инструмента для сохранения токенов (по умолчанию: `true`).
+- `reserved` — Буфер токенов для сжатия. Оставляет достаточное окно, чтобы избежать переполнения во время сжатия.
---
diff --git a/packages/web/src/content/docs/ru/keybinds.mdx b/packages/web/src/content/docs/ru/keybinds.mdx
index 67d191ea2..8a9a14ca1 100644
--- a/packages/web/src/content/docs/ru/keybinds.mdx
+++ b/packages/web/src/content/docs/ru/keybinds.mdx
@@ -3,11 +3,11 @@ title: Сочетания клавиш
description: Настройте свои сочетания клавиш.
---
-opencode имеет список сочетаний клавиш, которые вы можете настроить через конфигурацию opencode.
+opencode имеет список сочетаний клавиш, которые вы можете настроить через `tui.json`.
-```json title="opencode.json"
+```json title="tui.json"
{
- "$schema": "https://opencode.ai/config.json",
+ "$schema": "https://opencode.ai/tui.json",
"keybinds": {
"leader": "ctrl+x",
"app_exit": "ctrl+c,ctrl+d,<leader>q",
@@ -117,11 +117,11 @@ opencode использует клавишу `leader` для большинст�
## Отключение привязки клавиш
-Вы можете отключить привязку клавиш, добавив ключ в свою конфигурацию со значением «none».
+Вы можете отключить привязку клавиш, добавив ключ в `tui.json` со значением «none».
-```json title="opencode.json"
+```json title="tui.json"
{
- "$schema": "https://opencode.ai/config.json",
+ "$schema": "https://opencode.ai/tui.json",
"keybinds": {
"session_compact": "none"
}
diff --git a/packages/web/src/content/docs/ru/providers.mdx b/packages/web/src/content/docs/ru/providers.mdx
index 5984c89f4..c36dfd9f7 100644
--- a/packages/web/src/content/docs/ru/providers.mdx
+++ b/packages/web/src/content/docs/ru/providers.mdx
@@ -57,7 +57,39 @@ OpenCode Zen — это список моделей, предоставленн�
Если вы новичок, мы рекомендуем начать с OpenCode Zen.
:::
-1. Запустите команду `/connect` в TUI, выберите opencode и перейдите по адресу [opencode.ai/auth](https://opencode.ai/auth).
+1. Запустите команду `/connect` в TUI, выберите `OpenCode Zen` и перейдите по адресу [opencode.ai/auth](https://opencode.ai/zen).
+
+ ```txt
+ /connect
+ ```
+
+2. Войдите в систему, добавьте свои платежные данные и скопируйте ключ API.
+
+3. Вставьте свой ключ API.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Запустите `/models` в TUI, чтобы просмотреть список рекомендуемых нами моделей.
+
+ ```txt
+ /models
+ ```
+
+Он работает как любой другой поставщик в opencode и его использование совершенно необязательно.
+
+---
+
+## OpenCode Go
+
+OpenCode Go — это недорогой план подписки, обеспечивающий надежный доступ к популярным открытым моделям кодирования, предоставляемым командой opencode, которые были
+протестированы и проверены на хорошую работу с opencode.
+
+1. Запустите команду `/connect` в TUI, выберите `OpenCode Go` и перейдите по адресу [opencode.ai/auth](https://opencode.ai/zen).
```txt
/connect
@@ -1479,6 +1511,39 @@ SAP AI Core предоставляет доступ к более чем 40 мо
---
+### STACKIT
+
+STACKIT AI Model Serving предоставляет полностью управляемую суверенную среду хостинга для моделей ИИ, ориентированную на LLM, таких как Llama, Mistral и Qwen, с максимальным суверенитетом данных в европейской инфраструктуре.
+
+1. Перейдите на [портал STACKIT](https://portal.stackit.cloud), перейдите в **AI Model Serving** и создайте токен аутентификации для своего проекта.
+
+ :::tip
+ Вам необходима учетная запись клиента STACKIT, учетная запись пользователя и проект перед созданием токенов аутентификации.
+ :::
+
+2. Запустите команду `/connect` и найдите **STACKIT**.
+
+ ```txt
+ /connect
+ ```
+
+3. Введите свой токен аутентификации STACKIT AI Model Serving.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Запустите команду `/models`, чтобы выбрать одну из доступных моделей, например _Qwen3-VL 235B_ или _Llama 3.3 70B_.
+
+ ```txt
+ /models
+ ```
+
+---
+
### OVHcloud AI Endpoints
1. Перейдите к [OVHcloud Panel](https://ovh.com/manager). Перейдите в раздел `Public Cloud`, `AI & Machine Learning` > `AI Endpoints` и на вкладке `API Keys` нажмите **Создать новый ключ API**.
diff --git a/packages/web/src/content/docs/ru/sdk.mdx b/packages/web/src/content/docs/ru/sdk.mdx
index 1269d9fc0..0afdea1b6 100644
--- a/packages/web/src/content/docs/ru/sdk.mdx
+++ b/packages/web/src/content/docs/ru/sdk.mdx
@@ -117,6 +117,78 @@ try {
---
+## Структурированный вывод
+
+Вы можете запросить структурированный вывод JSON от модели, указав `format` со схемой JSON. Модель будет использовать инструмент `StructuredOutput` для возврата проверенного JSON, соответствующего вашей схеме.
+
+### Основное использование
+
+```typescript
+const result = await client.session.prompt({
+ path: { id: sessionId },
+ body: {
+ parts: [{ type: "text", text: "Research Anthropic and provide company info" }],
+ format: {
+ type: "json_schema",
+ schema: {
+ type: "object",
+ properties: {
+ company: { type: "string", description: "Company name" },
+ founded: { type: "number", description: "Year founded" },
+ products: {
+ type: "array",
+ items: { type: "string" },
+ description: "Main products",
+ },
+ },
+ required: ["company", "founded"],
+ },
+ },
+ },
+})
+
+// Access the structured output
+console.log(result.data.info.structured_output)
+// { company: "Anthropic", founded: 2021, products: ["Claude", "Claude API"] }
+```
+
+### Типы форматов вывода
+
+| Тип | Описание |
+| ------------- | ------------------------------------------------------------------------- |
+| `text` | По умолчанию. Стандартный текстовый ответ (без структурированного вывода) |
+| `json_schema` | Возвращает проверенный JSON, соответствующий предоставленной схеме |
+
+### Формат схемы JSON
+
+При использовании `type: 'json_schema'`, укажите:
+
+| Поле | Тип | Описание |
+| ------------ | --------------- | ---------------------------------------------------------------------- |
+| `type` | `'json_schema'` | Обязательно. Указывает режим схемы JSON |
+| `schema` | `object` | Обязательно. Объект JSON Schema, определяющий структуру вывода |
+| `retryCount` | `number` | Необязательно. Количество повторных попыток проверки (по умолчанию: 2) |
+
+### Обработка ошибок
+
+Если модель не может выдать действительный структурированный вывод после всех повторных попыток, ответ будет включать `StructuredOutputError`:
+
+```typescript
+if (result.data.info.error?.name === "StructuredOutputError") {
+ console.error("Failed to produce structured output:", result.data.info.error.message)
+ console.error("Attempts:", result.data.info.error.retries)
+}
+```
+
+### Лучшие практики
+
+1. **Предоставляйте четкие описания** в свойствах вашей схемы, чтобы помочь модели понять, какие данные извлекать
+2. **Используйте `required`**, чтобы указать, какие поля должны присутствовать
+3. **Делайте схемы сфокусированными** — сложные вложенные схемы могут быть труднее для правильного заполнения моделью
+4. **Устанавливайте соответствующий `retryCount`** — увеличивайте для сложных схем, уменьшайте для простых
+
+---
+
## API
SDK предоставляет все серверные API через типобезопасный клиент.
@@ -226,27 +298,27 @@ const { providers, default: defaults } = await client.config.providers()
### Сессии
-| Метод | Описание | Примечания |
-| ---------------------------------------------------------- | ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
-| `session.list()` | List sessions | Returns <a href={typesUrl}><code>Session[]</code></a> |
-| `session.get({ path })` | Get session | Returns <a href={typesUrl}><code>Session</code></a> |
-| `session.children({ path })` | List child sessions | Returns <a href={typesUrl}><code>Session[]</code></a> |
-| `session.create({ body })` | Create session | Returns <a href={typesUrl}><code>Session</code></a> |
-| `session.delete({ path })` | Delete session | Returns `boolean` |
-| `session.update({ path, body })` | Update session properties | Returns <a href={typesUrl}><code>Session</code></a> |
-| `session.init({ path, body })` | Analyze app and create `AGENTS.md` | Returns `boolean` |
-| `session.abort({ path })` | Abort a running session | Returns `boolean` |
-| `session.share({ path })` | Share session | Returns <a href={typesUrl}><code>Session</code></a> |
-| `session.unshare({ path })` | Unshare session | Returns <a href={typesUrl}><code>Session</code></a> |
-| `session.summarize({ path, body })` | Summarize session | Returns `boolean` |
-| `session.messages({ path })` | List messages in a session | Returns `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}[]` |
-| `session.message({ path })` | Get message details | Returns `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` |
-| `session.prompt({ path, body })` | Send prompt message | `body.noReply: true` returns UserMessage (context only). Default returns <a href={typesUrl}><code>AssistantMessage</code></a> with AI response |
-| `session.command({ path, body })` | Send command to session | Returns `{ info: `<a href={typesUrl}><code>AssistantMessage</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` |
-| `session.shell({ path, body })` | Run a shell command | Returns <a href={typesUrl}><code>AssistantMessage</code></a> |
-| `session.revert({ path, body })` | Revert a message | Returns <a href={typesUrl}><code>Session</code></a> |
-| `session.unrevert({ path })` | Restore reverted messages | Returns <a href={typesUrl}><code>Session</code></a> |
-| `postSessionByIdPermissionsByPermissionId({ path, body })` | Respond to a permission request | Returns `boolean` |
+| Метод | Описание | Примечания |
+| ---------------------------------------------------------- | ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `session.list()` | List sessions | Returns <a href={typesUrl}><code>Session[]</code></a> |
+| `session.get({ path })` | Get session | Returns <a href={typesUrl}><code>Session</code></a> |
+| `session.children({ path })` | List child sessions | Returns <a href={typesUrl}><code>Session[]</code></a> |
+| `session.create({ body })` | Create session | Returns <a href={typesUrl}><code>Session</code></a> |
+| `session.delete({ path })` | Delete session | Returns `boolean` |
+| `session.update({ path, body })` | Update session properties | Returns <a href={typesUrl}><code>Session</code></a> |
+| `session.init({ path, body })` | Analyze app and create `AGENTS.md` | Returns `boolean` |
+| `session.abort({ path })` | Abort a running session | Returns `boolean` |
+| `session.share({ path })` | Share session | Returns <a href={typesUrl}><code>Session</code></a> |
+| `session.unshare({ path })` | Unshare session | Returns <a href={typesUrl}><code>Session</code></a> |
+| `session.summarize({ path, body })` | Summarize session | Returns `boolean` |
+| `session.messages({ path })` | List messages in a session | Returns `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}[]` |
+| `session.message({ path })` | Get message details | Returns `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` |
+| `session.prompt({ path, body })` | Send prompt message | `body.noReply: true` возвращает UserMessage (только контекст). По умолчанию возвращает <a href={typesUrl}><code>AssistantMessage</code></a> с ответом ИИ. Поддерживает `body.outputFormat` для [структурированного вывода](#структурированный-вывод) |
+| `session.command({ path, body })` | Send command to session | Returns `{ info: `<a href={typesUrl}><code>AssistantMessage</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` |
+| `session.shell({ path, body })` | Run a shell command | Returns <a href={typesUrl}><code>AssistantMessage</code></a> |
+| `session.revert({ path, body })` | Revert a message | Returns <a href={typesUrl}><code>Session</code></a> |
+| `session.unrevert({ path })` | Restore reverted messages | Returns <a href={typesUrl}><code>Session</code></a> |
+| `postSessionByIdPermissionsByPermissionId({ path, body })` | Respond to a permission request | Returns `boolean` |
---
diff --git a/packages/web/src/content/docs/ru/server.mdx b/packages/web/src/content/docs/ru/server.mdx
index 898789c29..2356543df 100644
--- a/packages/web/src/content/docs/ru/server.mdx
+++ b/packages/web/src/content/docs/ru/server.mdx
@@ -18,13 +18,13 @@ opencode serve [--port <number>] [--hostname <string>] [--cors <origin>]
#### Параметры
-| Флаг | Описание | По умолчанию |
-| --------------- | ----------------------------------- | ---------------- |
-| `--port` | Port to listen on | `4096` |
-| `--hostname` | Hostname to listen on | `127.0.0.1` |
-| `--mdns` | Enable mDNS discovery | `false` |
-| `--mdns-domain` | Custom domain name for mDNS service | `opencode.local` |
-| `--cors` | Additional browser origins to allow | `[]` |
+| Флаг | Описание | По умолчанию |
+| --------------- | ------------------------------------------- | ---------------- |
+| `--port` | Порт для прослушивания | `4096` |
+| `--hostname` | Имя хоста для прослушивания | `127.0.0.1` |
+| `--mdns` | Включить обнаружение mDNS | `false` |
+| `--mdns-domain` | Пользовательское доменное имя для mDNS | `opencode.local` |
+| `--cors` | Разрешенные дополнительные источники (CORS) | `[]` |
`--cors` можно передать несколько раз:
@@ -89,10 +89,10 @@ For example, `http://localhost:4096/doc`. Use the spec to generate clients or in
### Глобальный
-| Метод | Путь | Описание | Ответ |
-| ----- | ---------------- | ------------------------------ | ------------------------------------ |
-| `GET` | `/global/health` | Get server health and version | `{ healthy: true, version: string }` |
-| `GET` | `/global/event` | Get global events (SSE stream) | Event stream |
+| Метод | Путь | Описание | Ответ |
+| ----- | ---------------- | --------------------------------------- | ------------------------------------ |
+| `GET` | `/global/health` | Получить состояние и версию сервера | `{ healthy: true, version: string }` |
+| `GET` | `/global/event` | Получить глобальные события (поток SSE) | Поток событий |
---
@@ -100,105 +100,105 @@ For example, `http://localhost:4096/doc`. Use the spec to generate clients or in
| Метод | Путь | Описание | Ответ |
| ----- | ------------------ | ----------------------- | --------------------------------------------- |
-| `GET` | `/project` | List all projects | <a href={typesUrl}><code>Project[]</code></a> |
-| `GET` | `/project/current` | Get the current project | <a href={typesUrl}><code>Project</code></a> |
+| `GET` | `/project` | Список всех проектов | <a href={typesUrl}><code>Project[]</code></a> |
+| `GET` | `/project/current` | Получить текущий проект | <a href={typesUrl}><code>Project</code></a> |
---
### Путь и система контроля версий
-| Метод | Путь | Описание | Ответ |
-| ----- | ------- | ------------------------------------ | ------------------------------------------- |
-| `GET` | `/path` | Get the current path | <a href={typesUrl}><code>Path</code></a> |
-| `GET` | `/vcs` | Get VCS info for the current project | <a href={typesUrl}><code>VcsInfo</code></a> |
+| Метод | Путь | Описание | Ответ |
+| ----- | ------- | ---------------------------------------------- | ------------------------------------------- |
+| `GET` | `/path` | Получить текущий путь | <a href={typesUrl}><code>Path</code></a> |
+| `GET` | `/vcs` | Получить информацию о VCS для текущего проекта | <a href={typesUrl}><code>VcsInfo</code></a> |
---
### Экземпляр
-| Метод | Путь | Описание | Ответ |
-| ------ | ------------------- | ---------------------------- | --------- |
-| `POST` | `/instance/dispose` | Dispose the current instance | `boolean` |
+| Метод | Путь | Описание | Ответ |
+| ------ | ------------------- | ------------------------- | --------- |
+| `POST` | `/instance/dispose` | Удалить текущий экземпляр | `boolean` |
---
### Конфигурация
-| Метод | Путь | Описание | Ответ |
-| ------- | ------------------- | --------------------------------- | ---------------------------------------------------------------------------------------- |
-| `GET` | `/config` | Get config info | <a href={typesUrl}><code>Config</code></a> |
-| `PATCH` | `/config` | Update config | <a href={typesUrl}><code>Config</code></a> |
-| `GET` | `/config/providers` | List providers and default models | `{ providers: `<a href={typesUrl}>Provider[]</a>`, default: { [key: string]: string } }` |
+| Метод | Путь | Описание | Ответ |
+| ------- | ------------------- | ----------------------------------------- | ---------------------------------------------------------------------------------------- |
+| `GET` | `/config` | Получить информацию о конфигурации | <a href={typesUrl}><code>Config</code></a> |
+| `PATCH` | `/config` | Обновить конфигурацию | <a href={typesUrl}><code>Config</code></a> |
+| `GET` | `/config/providers` | Список провайдеров и моделей по умолчанию | `{ providers: `<a href={typesUrl}>Provider[]</a>`, default: { [key: string]: string } }` |
---
### Поставщик
-| Метод | Путь | Описание | Ответ |
-| ------ | -------------------------------- | ------------------------------------ | ----------------------------------------------------------------------------------- |
-| `GET` | `/provider` | List all providers | `{ all: `<a href={typesUrl}>Provider[]</a>`, default: {...}, connected: string[] }` |
-| `GET` | `/provider/auth` | Get provider authentication methods | `{ [providerID: string]: `<a href={typesUrl}>ProviderAuthMethod[]</a>` }` |
-| `POST` | `/provider/{id}/oauth/authorize` | Authorize a provider using OAuth | <a href={typesUrl}><code>ProviderAuthAuthorization</code></a> |
-| `POST` | `/provider/{id}/oauth/callback` | Handle OAuth callback for a provider | `boolean` |
+| Метод | Путь | Описание | Ответ |
+| ------ | -------------------------------- | ----------------------------------------- | ----------------------------------------------------------------------------------- |
+| `GET` | `/provider` | Список всех провайдеров | `{ all: `<a href={typesUrl}>Provider[]</a>`, default: {...}, connected: string[] }` |
+| `GET` | `/provider/auth` | Получить методы аутентификации провайдера | `{ [providerID: string]: `<a href={typesUrl}>ProviderAuthMethod[]</a>` }` |
+| `POST` | `/provider/{id}/oauth/authorize` | Авторизация провайдера через OAuth | <a href={typesUrl}><code>ProviderAuthAuthorization</code></a> |
+| `POST` | `/provider/{id}/oauth/callback` | Обработка callback OAuth для провайдера | `boolean` |
---
### Сессии
-| Метод | Путь | Описание | Примечания |
-| -------- | ---------------------------------------- | ------------------------------------- | ---------------------------------------------------------------------------------- |
-| `GET` | `/session` | List all sessions | Returns <a href={typesUrl}><code>Session[]</code></a> |
-| `POST` | `/session` | Create a new session | body: `{ parentID?, title? }`, returns <a href={typesUrl}><code>Session</code></a> |
-| `GET` | `/session/status` | Get session status for all sessions | Returns `{ [sessionID: string]: `<a href={typesUrl}>SessionStatus</a>` }` |
-| `GET` | `/session/:id` | Get session details | Returns <a href={typesUrl}><code>Session</code></a> |
-| `DELETE` | `/session/:id` | Delete a session and all its data | Returns `boolean` |
-| `PATCH` | `/session/:id` | Update session properties | body: `{ title? }`, returns <a href={typesUrl}><code>Session</code></a> |
-| `GET` | `/session/:id/children` | Get a session's child sessions | Returns <a href={typesUrl}><code>Session[]</code></a> |
-| `GET` | `/session/:id/todo` | Get the todo list for a session | Returns <a href={typesUrl}><code>Todo[]</code></a> |
-| `POST` | `/session/:id/init` | Analyze app and create `AGENTS.md` | body: `{ messageID, providerID, modelID }`, returns `boolean` |
-| `POST` | `/session/:id/fork` | Fork an existing session at a message | body: `{ messageID? }`, returns <a href={typesUrl}><code>Session</code></a> |
-| `POST` | `/session/:id/abort` | Abort a running session | Returns `boolean` |
-| `POST` | `/session/:id/share` | Share a session | Returns <a href={typesUrl}><code>Session</code></a> |
-| `DELETE` | `/session/:id/share` | Unshare a session | Returns <a href={typesUrl}><code>Session</code></a> |
-| `GET` | `/session/:id/diff` | Get the diff for this session | query: `messageID?`, returns <a href={typesUrl}><code>FileDiff[]</code></a> |
-| `POST` | `/session/:id/summarize` | Summarize the session | body: `{ providerID, modelID }`, returns `boolean` |
-| `POST` | `/session/:id/revert` | Revert a message | body: `{ messageID, partID? }`, returns `boolean` |
-| `POST` | `/session/:id/unrevert` | Restore all reverted messages | Returns `boolean` |
-| `POST` | `/session/:id/permissions/:permissionID` | Respond to a permission request | body: `{ response, remember? }`, returns `boolean` |
+| Метод | Путь | Описание | Примечания |
+| -------- | ---------------------------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------- |
+| `GET` | `/session` | Список всех сессий | Возвращает <a href={typesUrl}><code>Session[]</code></a> |
+| `POST` | `/session` | Создать новую сессию | body: `{ parentID?, title? }`, возвращает <a href={typesUrl}><code>Session</code></a> |
+| `GET` | `/session/status` | Получить статус всех сессий | Возвращает `{ [sessionID: string]: `<a href={typesUrl}>SessionStatus</a>` }` |
+| `GET` | `/session/:id` | Получить детали сессии | Возвращает <a href={typesUrl}><code>Session</code></a> |
+| `DELETE` | `/session/:id` | Удалить сессию и все её данные | Возвращает `boolean` |
+| `PATCH` | `/session/:id` | Обновить свойства сессии | body: `{ title? }`, возвращает <a href={typesUrl}><code>Session</code></a> |
+| `GET` | `/session/:id/children` | Получить дочерние сессии | Возвращает <a href={typesUrl}><code>Session[]</code></a> |
+| `GET` | `/session/:id/todo` | Получить список задач для сессии | Возвращает <a href={typesUrl}><code>Todo[]</code></a> |
+| `POST` | `/session/:id/init` | Анализ приложения и создание `AGENTS.md` | body: `{ messageID, providerID, modelID }`, возвращает `boolean` |
+| `POST` | `/session/:id/fork` | Ответвление сессии от сообщения | body: `{ messageID? }`, возвращает <a href={typesUrl}><code>Session</code></a> |
+| `POST` | `/session/:id/abort` | Прервать запущенную сессию | Возвращает `boolean` |
+| `POST` | `/session/:id/share` | Поделиться сессией | Возвращает <a href={typesUrl}><code>Session</code></a> |
+| `DELETE` | `/session/:id/share` | Отменить общий доступ к сессии | Возвращает <a href={typesUrl}><code>Session</code></a> |
+| `GET` | `/session/:id/diff` | Получить diff для этой сессии | query: `messageID?`, возвращает <a href={typesUrl}><code>FileDiff[]</code></a> |
+| `POST` | `/session/:id/summarize` | Суммировать сессию | body: `{ providerID, modelID }`, возвращает `boolean` |
+| `POST` | `/session/:id/revert` | Отменить сообщение | body: `{ messageID, partID? }`, возвращает `boolean` |
+| `POST` | `/session/:id/unrevert` | Восстановить все отмененные сообщения | Возвращает `boolean` |
+| `POST` | `/session/:id/permissions/:permissionID` | Ответить на запрос разрешения | body: `{ response, remember? }`, возвращает `boolean` |
---
### Сообщения
-| Метод | Путь | Описание | Примечания |
-| ------ | --------------------------------- | --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `GET` | `/session/:id/message` | List messages in a session | query: `limit?`, returns `{ info: `<a href={typesUrl}>Message</a>`, parts: `<a href={typesUrl}>Part[]</a>`}[]` |
-| `POST` | `/session/:id/message` | Send a message and wait for response | body: `{ messageID?, model?, agent?, noReply?, system?, tools?, parts }`, returns `{ info: `<a href={typesUrl}>Message</a>`, parts: `<a href={typesUrl}>Part[]</a>`}` |
-| `GET` | `/session/:id/message/:messageID` | Get message details | Returns `{ info: `<a href={typesUrl}>Message</a>`, parts: `<a href={typesUrl}>Part[]</a>`}` |
-| `POST` | `/session/:id/prompt_async` | Send a message asynchronously (no wait) | body: same as `/session/:id/message`, returns `204 No Content` |
-| `POST` | `/session/:id/command` | Execute a slash command | body: `{ messageID?, agent?, model?, command, arguments }`, returns `{ info: `<a href={typesUrl}>Message</a>`, parts: `<a href={typesUrl}>Part[]</a>`}` |
-| `POST` | `/session/:id/shell` | Run a shell command | body: `{ agent, model?, command }`, returns `{ info: `<a href={typesUrl}>Message</a>`, parts: `<a href={typesUrl}>Part[]</a>`}` |
+| Метод | Путь | Описание | Примечания |
+| ------ | --------------------------------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `GET` | `/session/:id/message` | Список сообщений в сессии | query: `limit?`, возвращает `{ info: `<a href={typesUrl}>Message</a>`, parts: `<a href={typesUrl}>Part[]</a>`}[]` |
+| `POST` | `/session/:id/message` | Отправить сообщение и ждать ответа | body: `{ messageID?, model?, agent?, noReply?, system?, tools?, parts }`, возвращает `{ info: `<a href={typesUrl}>Message</a>`, parts: `<a href={typesUrl}>Part[]</a>`}` |
+| `GET` | `/session/:id/message/:messageID` | Получить детали сообщения | Возвращает `{ info: `<a href={typesUrl}>Message</a>`, parts: `<a href={typesUrl}>Part[]</a>`}` |
+| `POST` | `/session/:id/prompt_async` | Отправить сообщение асинхронно (без ожидания) | body: как в `/session/:id/message`, возвращает `204 No Content` |
+| `POST` | `/session/:id/command` | Выполнить слэш-команду | body: `{ messageID?, agent?, model?, command, arguments }`, возвращает `{ info: `<a href={typesUrl}>Message</a>`, parts: `<a href={typesUrl}>Part[]</a>`}` |
+| `POST` | `/session/:id/shell` | Запустить команду оболочки | body: `{ agent, model?, command }`, возвращает `{ info: `<a href={typesUrl}>Message</a>`, parts: `<a href={typesUrl}>Part[]</a>`}` |
---
### Команды
-| Метод | Путь | Описание | Ответ |
-| ----- | ---------- | ----------------- | --------------------------------------------- |
-| `GET` | `/command` | List all commands | <a href={typesUrl}><code>Command[]</code></a> |
+| Метод | Путь | Описание | Ответ |
+| ----- | ---------- | ------------------ | --------------------------------------------- |
+| `GET` | `/command` | Список всех команд | <a href={typesUrl}><code>Command[]</code></a> |
---
### Файлы
-| Метод | Путь | Описание | Ответ |
-| ----- | ------------------------ | ---------------------------------- | ------------------------------------------------------------------------------------------- |
-| `GET` | `/find?pattern=<pat>` | Search for text in files | Array of match objects with `path`, `lines`, `line_number`, `absolute_offset`, `submatches` |
-| `GET` | `/find/file?query=<q>` | Find files and directories by name | `string[]` (paths) |
-| `GET` | `/find/symbol?query=<q>` | Find workspace symbols | <a href={typesUrl}><code>Symbol[]</code></a> |
-| `GET` | `/file?path=<path>` | List files and directories | <a href={typesUrl}><code>FileNode[]</code></a> |
-| `GET` | `/file/content?path=<p>` | Read a file | <a href={typesUrl}><code>FileContent</code></a> |
-| `GET` | `/file/status` | Get status for tracked files | <a href={typesUrl}><code>File[]</code></a> |
+| Метод | Путь | Описание | Ответ |
+| ----- | ------------------------ | ------------------------------------ | -------------------------------------------------------------------------------------------- |
+| `GET` | `/find?pattern=<pat>` | Поиск текста в файлах | Массив объектов совпадения с `path`, `lines`, `line_number`, `absolute_offset`, `submatches` |
+| `GET` | `/find/file?query=<q>` | Поиск файлов и директорий по имени | `string[]` (пути) |
+| `GET` | `/find/symbol?query=<q>` | Поиск символов рабочего пространства | <a href={typesUrl}><code>Symbol[]</code></a> |
+| `GET` | `/file?path=<path>` | Список файлов и директорий | <a href={typesUrl}><code>FileNode[]</code></a> |
+| `GET` | `/file/content?path=<p>` | Прочитать файл | <a href={typesUrl}><code>FileContent</code></a> |
+| `GET` | `/file/status` | Получить статус отслеживаемых файлов | <a href={typesUrl}><code>File[]</code></a> |
#### `/find/file` параметры запроса
@@ -212,76 +212,76 @@ For example, `http://localhost:4096/doc`. Use the spec to generate clients or in
### Инструменты (Экспериментальные)
-| Метод | Путь | Описание | Ответ |
-| ----- | ------------------------------------------- | ---------------------------------------- | -------------------------------------------- |
-| `GET` | `/experimental/tool/ids` | List all tool IDs | <a href={typesUrl}><code>ToolIDs</code></a> |
-| `GET` | `/experimental/tool?provider=<p>&model=<m>` | List tools with JSON schemas for a model | <a href={typesUrl}><code>ToolList</code></a> |
+| Метод | Путь | Описание | Ответ |
+| ----- | ------------------------------------------- | ---------------------------------------------- | -------------------------------------------- |
+| `GET` | `/experimental/tool/ids` | Список всех идентификаторов инструментов | <a href={typesUrl}><code>ToolIDs</code></a> |
+| `GET` | `/experimental/tool?provider=<p>&model=<m>` | Список инструментов со схемами JSON для модели | <a href={typesUrl}><code>ToolList</code></a> |
---
### LSP, форматтеры и MCP
-| Метод | Путь | Описание | Ответ |
-| ------ | ------------ | -------------------------- | -------------------------------------------------------- |
-| `GET` | `/lsp` | Get LSP server status | <a href={typesUrl}><code>LSPStatus[]</code></a> |
-| `GET` | `/formatter` | Get formatter status | <a href={typesUrl}><code>FormatterStatus[]</code></a> |
-| `GET` | `/mcp` | Get MCP server status | `{ [name: string]: `<a href={typesUrl}>MCPStatus</a>` }` |
-| `POST` | `/mcp` | Add MCP server dynamically | body: `{ name, config }`, returns MCP status object |
+| Метод | Путь | Описание | Ответ |
+| ------ | ------------ | ------------------------------- | -------------------------------------------------------- |
+| `GET` | `/lsp` | Получить статус сервера LSP | <a href={typesUrl}><code>LSPStatus[]</code></a> |
+| `GET` | `/formatter` | Получить статус форматера | <a href={typesUrl}><code>FormatterStatus[]</code></a> |
+| `GET` | `/mcp` | Получить статус сервера MCP | `{ [name: string]: `<a href={typesUrl}>MCPStatus</a>` }` |
+| `POST` | `/mcp` | Добавить сервер MCP динамически | body: `{ name, config }`, возвращает статус объекта MCP |
---
### Агенты
-| Метод | Путь | Описание | Ответ |
-| ----- | -------- | ------------------------- | ------------------------------------------- |
-| `GET` | `/agent` | List all available agents | <a href={typesUrl}><code>Agent[]</code></a> |
+| Метод | Путь | Описание | Ответ |
+| ----- | -------- | ----------------------------- | ------------------------------------------- |
+| `GET` | `/agent` | Список всех доступных агентов | <a href={typesUrl}><code>Agent[]</code></a> |
---
### Ведение журнала
-| Метод | Путь | Описание | Ответ |
-| ------ | ------ | ------------------------------------------------------------ | --------- |
-| `POST` | `/log` | Write log entry. Body: `{ service, level, message, extra? }` | `boolean` |
+| Метод | Путь | Описание | Ответ |
+| ------ | ------ | --------------------------------------------------------------------- | --------- |
+| `POST` | `/log` | Записать запись в журнал. Body: `{ service, level, message, extra? }` | `boolean` |
---
### TUI
-| Метод | Путь | Описание | Ответ |
-| ------ | ----------------------- | ------------------------------------------- | ---------------------- |
-| `POST` | `/tui/append-prompt` | Append text to the prompt | `boolean` |
-| `POST` | `/tui/open-help` | Open the help dialog | `boolean` |
-| `POST` | `/tui/open-sessions` | Open the session selector | `boolean` |
-| `POST` | `/tui/open-themes` | Open the theme selector | `boolean` |
-| `POST` | `/tui/open-models` | Open the model selector | `boolean` |
-| `POST` | `/tui/submit-prompt` | Submit the current prompt | `boolean` |
-| `POST` | `/tui/clear-prompt` | Clear the prompt | `boolean` |
-| `POST` | `/tui/execute-command` | Execute a command (`{ command }`) | `boolean` |
-| `POST` | `/tui/show-toast` | Show toast (`{ title?, message, variant }`) | `boolean` |
-| `GET` | `/tui/control/next` | Wait for the next control request | Control request object |
-| `POST` | `/tui/control/response` | Respond to a control request (`{ body }`) | `boolean` |
+| Метод | Путь | Описание | Ответ |
+| ------ | ----------------------- | ----------------------------------------------------- | ------------------------- |
+| `POST` | `/tui/append-prompt` | Добавить текст в подсказку | `boolean` |
+| `POST` | `/tui/open-help` | Открыть диалог помощи | `boolean` |
+| `POST` | `/tui/open-sessions` | Открыть селектор сессий | `boolean` |
+| `POST` | `/tui/open-themes` | Открыть селектор тем | `boolean` |
+| `POST` | `/tui/open-models` | Открыть селектор моделей | `boolean` |
+| `POST` | `/tui/submit-prompt` | Отправить текущую подсказку | `boolean` |
+| `POST` | `/tui/clear-prompt` | Очистить подсказку | `boolean` |
+| `POST` | `/tui/execute-command` | Выполнить команду (`{ command }`) | `boolean` |
+| `POST` | `/tui/show-toast` | Показать уведомление (`{ title?, message, variant }`) | `boolean` |
+| `GET` | `/tui/control/next` | Ожидание следующего запроса управления | Объект запроса управления |
+| `POST` | `/tui/control/response` | Ответить на запрос управления (`{ body }`) | `boolean` |
---
### Авторизация
-| Метод | Путь | Описание | Ответ |
-| ----- | ----------- | --------------------------------------------------------------- | --------- |
-| `PUT` | `/auth/:id` | Set authentication credentials. Body must match provider schema | `boolean` |
+| Метод | Путь | Описание | Ответ |
+| ----- | ----------- | -------------------------------------------------------------------------------------- | --------- |
+| `PUT` | `/auth/:id` | Установить учетные данные аутентификации. Body должен соответствовать схеме провайдера | `boolean` |
---
### События
-| Метод | Путь | Описание | Ответ |
-| ----- | -------- | ----------------------------------------------------------------------------- | ------------------------- |
-| `GET` | `/event` | Server-sent events stream. First event is `server.connected`, then bus events | Server-sent events stream |
+| Метод | Путь | Описание | Ответ |
+| ----- | -------- | --------------------------------------------------------------------------------------------- | ------------------------------------ |
+| `GET` | `/event` | Поток событий, отправляемых сервером. Первое событие — `server.connected`, затем события шины | Поток событий, отправляемых сервером |
---
### Документы
-| Метод | Путь | Описание | Ответ |
-| ----- | ------ | ------------------------- | --------------------------- |
-| `GET` | `/doc` | OpenAPI 3.1 specification | HTML page with OpenAPI spec |
+| Метод | Путь | Описание | Ответ |
+| ----- | ------ | ------------------------ | -------------------------------------- |
+| `GET` | `/doc` | Спецификация OpenAPI 3.1 | HTML-страница со спецификацией OpenAPI |
diff --git a/packages/web/src/content/docs/ru/themes.mdx b/packages/web/src/content/docs/ru/themes.mdx
index 2e5219e4c..05ace2c7b 100644
--- a/packages/web/src/content/docs/ru/themes.mdx
+++ b/packages/web/src/content/docs/ru/themes.mdx
@@ -61,11 +61,11 @@ opencode поставляется с несколькими встроенным
## Использование темы
-Вы можете выбрать тему, вызвав выбор темы с помощью команды `/theme`. Или вы можете указать это в файле [config](/docs/config).
+Вы можете выбрать тему, вызвав выбор темы с помощью команды `/theme`. Или вы можете указать это в файле [tui.json](/docs/config#tui).
-```json title="opencode.json" {3}
+```json title="tui.json" {3}
{
- "$schema": "https://opencode.ai/config.json",
+ "$schema": "https://opencode.ai/tui.json",
"theme": "tokyonight"
}
```
diff --git a/packages/web/src/content/docs/ru/tui.mdx b/packages/web/src/content/docs/ru/tui.mdx
index 0134e29c4..1694908db 100644
--- a/packages/web/src/content/docs/ru/tui.mdx
+++ b/packages/web/src/content/docs/ru/tui.mdx
@@ -355,24 +355,34 @@ How is auth handled in @packages/functions/src/api/index.ts?
## Настройка
-Вы можете настроить поведение TUI через файл конфигурации opencode.
+Вы можете настроить поведение TUI через `tui.json` (или `tui.jsonc`).
-```json title="opencode.json"
+```json title="tui.json"
{
- "$schema": "https://opencode.ai/config.json",
- "tui": {
- "scroll_speed": 3,
- "scroll_acceleration": {
- "enabled": true
- }
- }
+ "$schema": "https://opencode.ai/tui.json",
+ "theme": "opencode",
+ "keybinds": {
+ "leader": "ctrl+x"
+ },
+ "scroll_speed": 3,
+ "scroll_acceleration": {
+ "enabled": true
+ },
+ "diff_style": "auto"
}
```
+Это отдельный файл от `opencode.json`, который настраивает поведение сервера/выполнения.
+
### Параметры
-- `scroll_acceleration` — включите ускорение прокрутки в стиле macOS для плавной и естественной прокрутки. Если этот параметр включен, скорость прокрутки увеличивается при быстрой прокрутке и остается точной при более медленных движениях. **Этот параметр имеет приоритет над `scroll_speed` и переопределяет его, если он включен.**
-- `scroll_speed` — контролирует скорость прокрутки TUI при использовании команд прокрутки (минимум: `1`). По умолчанию `3`. **Примечание. Это игнорируется, если для `scroll_acceleration.enabled` установлено значение `true`.**
+- `theme` — Устанавливает тему пользовательского интерфейса. [Подробнее](/docs/themes).
+- `keybinds` — Настраивает сочетания клавиш. [Подробнее](/docs/keybinds).
+- `scroll_acceleration.enabled` — включите ускорение прокрутки в стиле macOS для плавной и естественной прокрутки. Если этот параметр включен, скорость прокрутки увеличивается при быстрой прокрутке и остается точной при более медленных движениях. **Этот параметр имеет приоритет над `scroll_speed` и переопределяет его, если он включен.**
+- `scroll_speed` — контролирует скорость прокрутки TUI при использовании команд прокрутки (минимум: `0.001`, поддерживает десятичные значения). По умолчанию `3`. **Примечание. Это игнорируется, если для `scroll_acceleration.enabled` установлено значение `true`.**
+- `diff_style` — Управляет отображением различий. `"auto"` адаптируется к ширине терминала, `"stacked"` всегда показывает одноколоночный макет.
+
+Используйте `OPENCODE_TUI_CONFIG` для загрузки пользовательского пути конфигурации TUI.
---
diff --git a/packages/web/src/content/docs/ru/zen.mdx b/packages/web/src/content/docs/ru/zen.mdx
index 3fe03a47f..078d1a381 100644
--- a/packages/web/src/content/docs/ru/zen.mdx
+++ b/packages/web/src/content/docs/ru/zen.mdx
@@ -63,6 +63,7 @@ OpenCode Zen работает так же, как и любой другой п�
| Модель | Идентификатор модели | Конечная точка | Пакет AI SDK |
| ------------------ | -------------------- | -------------------------------------------------- | --------------------------- |
+| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
@@ -72,13 +73,15 @@ OpenCode Zen работает так же, как и любой другой п�
| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
+| Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
+| Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
+| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
+| Claude Sonnet 4.6 | claude-sonnet-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Sonnet 4 | claude-sonnet-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
-| Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
-| Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
-| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
+| Gemini 3.1 Pro | gemini-3.1-pro | `https://opencode.ai/zen/v1/models/gemini-3.1-pro` | `@ai-sdk/google` |
| Gemini 3 Pro | gemini-3-pro | `https://opencode.ai/zen/v1/models/gemini-3-pro` | `@ai-sdk/google` |
| Gemini 3 Flash | gemini-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` |
| MiniMax M2.5 | minimax-m2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
@@ -86,10 +89,8 @@ OpenCode Zen работает так же, как и любой другой п�
| MiniMax M2.1 | minimax-m2.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| GLM 5 | glm-5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| GLM 4.7 | glm-4.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
-| GLM 4.7 Free | glm-4.7-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| GLM 4.6 | glm-4.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
-| Kimi K2.5 Free | kimi-k2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| Kimi K2 Thinking | kimi-k2-thinking | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| Kimi K2 | kimi-k2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| Qwen3 Coder 480B | qwen3-coder | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
@@ -123,27 +124,29 @@ https://opencode.ai/zen/v1/models
| MiniMax M2.1 | $0.30 | $1.20 | $0.10 | - |
| GLM 5 | $1.00 | $3.20 | $0.20 | - |
| GLM 4.7 | $0.60 | $2.20 | $0.10 | - |
-| GLM 4.7 | $0.60 | $2.20 | $0.10 | - |
| GLM 4.6 | $0.60 | $2.20 | $0.10 | - |
-| GLM 4.7 Free | Бесплатно | Бесплатно | Бесплатно | - |
-| Kimi K2.5 Free | Бесплатно | Бесплатно | Бесплатно | - |
| Kimi K2.5 | $0.60 | $3.00 | $0.08 | - |
| Kimi K2 Thinking | $0.40 | $2.50 | - | - |
| Kimi K2 | $0.40 | $2.50 | - | - |
| Qwen3 Coder 480B | $0.45 | $1.50 | - | - |
+| Claude Opus 4.6 (≤ 200 тыс. токенов) | $5.00 | $25.00 | $0.50 | $6.25 |
+| Claude Opus 4.6 (> 200 тыс. токенов) | $10.00 | $37.50 | $1.00 | $12.50 |
+| Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 |
+| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 |
+| Claude Sonnet 4.6 (≤ 200 тыс. токенов) | $3.00 | $15.00 | $0.30 | $3.75 |
+| Claude Sonnet 4.6 (> 200 тыс. токенов) | $6.00 | $22.50 | $0.60 | $7.50 |
| Claude Sonnet 4.5 (≤ 200 тыс. токенов) | $3.00 | $15.00 | $0.30 | $3.75 |
| Claude Sonnet 4.5 (> 200 тыс. токенов) | $6.00 | $22.50 | $0.60 | $7.50 |
| Claude Sonnet 4 (≤ 200 тыс. токенов) | $3.00 | $15.00 | $0.30 | $3.75 |
| Claude Sonnet 4 (> 200 тыс. токенов) | $6.00 | $22.50 | $0.60 | $7.50 |
| Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | $1.25 |
| Claude Haiku 3.5 | $0.80 | $4.00 | $0.08 | $1.00 |
-| Claude Opus 4.6 (≤ 200 тыс. токенов) | $5.00 | $25.00 | $0.50 | $6.25 |
-| Claude Opus 4.6 (> 200 тыс. токенов) | $10.00 | $37.50 | $1.00 | $12.50 |
-| Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 |
-| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 |
+| Gemini 3.1 Pro (≤ 200 тыс. токенов) | $2.00 | $12.00 | $0.20 | - |
+| Gemini 3.1 Pro (> 200 тыс. токенов) | $4.00 | $18.00 | $0.40 | - |
| Gemini 3 Pro (≤ 200 тыс. токенов) | $2.00 | $12.00 | $0.20 | - |
| Gemini 3 Pro (> 200 тыс. токенов) | $4.00 | $18.00 | $0.40 | - |
| Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - |
+| GPT 5.3 Codex | $1.75 | $14.00 | $0.175 | - |
| GPT 5.2 | $1.75 | $14.00 | $0.175 | - |
| GPT 5.2 Codex | $1.75 | $14.00 | $0.175 | - |
| GPT 5.1 | $1.07 | $8.50 | $0.107 | - |
@@ -162,7 +165,6 @@ https://opencode.ai/zen/v1/models
Бесплатные модели:
-- Kimi K2.5 Free доступен на OpenCode в течение ограниченного времени. Команда использует это время для сбора отзывов и улучшения модели.
- MiniMax M2.5 Free доступен на OpenCode в течение ограниченного времени. Команда использует это время для сбора отзывов и улучшения модели.
- Big Pickle — это стелс-модель, которая доступна бесплатно на OpenCode в течение ограниченного времени. Команда использует это время для сбора отзывов и улучшения модели.
@@ -194,7 +196,6 @@ https://opencode.ai/zen/v1/models
Все наши модели размещены в США. Наши поставщики придерживаются политики нулевого хранения и не используют ваши данные для обучения моделей, за следующими исключениями:
- Big Pickle: во время бесплатного периода собранные данные могут быть использованы для улучшения модели.
-- Kimi K2.5 Free: в течение бесплатного периода собранные данные могут использоваться для улучшения модели.
- MiniMax M2.5 Free: в течение бесплатного периода собранные данные могут использоваться для улучшения модели.
- API OpenAI: запросы хранятся в течение 30 дней в соответствии с [Политикой данных OpenAI](https://platform.openai.com/docs/guides/your-data).
- API-интерфейсы Anthropic: запросы хранятся в течение 30 дней в соответствии с [Политикой данных Anthropic](https://docs.anthropic.com/en/docs/claude-code/data-usage).