686 lines
28 KiB
Plaintext
686 lines
28 KiB
Plaintext
---
|
||
title: Конфигурация
|
||
description: Использование конфигурации opencode JSON.
|
||
---
|
||
|
||
Вы можете настроить opencode, используя файл конфигурации JSON.
|
||
|
||
---
|
||
|
||
## Формат
|
||
|
||
opencode поддерживает форматы **JSON** и **JSONC** (JSON с комментариями).
|
||
|
||
```jsonc title="opencode.jsonc"
|
||
{
|
||
"$schema": "https://opencode.ai/config.json",
|
||
// Theme configuration
|
||
"theme": "opencode",
|
||
"model": "anthropic/claude-sonnet-4-5",
|
||
"autoupdate": true,
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## Расположение
|
||
|
||
Вы можете разместить свою конфигурацию в нескольких разных местах, и у них есть
|
||
разный порядок старшинства.
|
||
|
||
:::note
|
||
Файлы конфигурации **объединяются**, а не заменяются.
|
||
:::
|
||
|
||
Файлы конфигурации объединяются, а не заменяются. Настройки из следующих мест конфигурации объединяются. Более поздние конфигурации переопределяют предыдущие только в случае конфликта ключей. Неконфликтные настройки из всех конфигов сохраняются.
|
||
|
||
Например, если ваша глобальная конфигурация устанавливает `theme: "opencode"` и `autoupdate: true`, а конфигурация вашего проекта устанавливает `model: "anthropic/claude-sonnet-4-5"`, окончательная конфигурация будет включать все три параметра.
|
||
|
||
---
|
||
|
||
### Порядок приоритета
|
||
|
||
Источники конфигурации загружаются в следующем порядке (более поздние источники переопределяют более ранние):
|
||
|
||
1. **Удаленная конфигурация** (от `.well-known/opencode`) – организационные настройки по умолчанию.
|
||
2. **Глобальная конфигурация** (`~/.config/opencode/opencode.json`) — настройки пользователя.
|
||
3. **Пользовательская конфигурация** (`OPENCODE_CONFIG` env var) – пользовательские переопределения
|
||
4. **Конфигурация проекта** (`opencode.json` в проекте) — настройки, специфичные для проекта.
|
||
5. **Каталоги `.opencode`** — агенты, команды, плагины
|
||
6. **Встроенная конфигурация** (`OPENCODE_CONFIG_CONTENT` env var) – переопределяет время выполнения
|
||
|
||
Это означает, что конфигурации проекта могут переопределять глобальные настройки по умолчанию, а глобальные конфигурации могут переопределять настройки по умолчанию для удаленной организации.
|
||
|
||
:::note
|
||
В каталогах `.opencode` и `~/.config/opencode` для подкаталогов используются **множественные имена**: `agents/`, `commands/`, `modes/`, `plugins/`, `skills/`, `tools/` и `themes/`. Единственные имена (например, `agent/`) также поддерживаются для обратной совместимости.
|
||
:::
|
||
|
||
---
|
||
|
||
### Удаленная
|
||
|
||
Организации могут предоставить конфигурацию по умолчанию через конечную точку `.well-known/opencode`. Он извлекается автоматически при аутентификации у провайдера, который его поддерживает.
|
||
|
||
Удаленная конфигурация загружается первой и служит базовым слоем. Все остальные источники конфигурации (глобальные, проектные) могут переопределить эти значения по умолчанию.
|
||
|
||
Например, если ваша организация предоставляет серверы MCP, которые по умолчанию отключены:
|
||
|
||
```json title="Remote config from .well-known/opencode"
|
||
{
|
||
"mcp": {
|
||
"jira": {
|
||
"type": "remote",
|
||
"url": "https://jira.example.com/mcp",
|
||
"enabled": false
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
Вы можете включить определенные серверы в локальной конфигурации:
|
||
|
||
```json title="opencode.json"
|
||
{
|
||
"mcp": {
|
||
"jira": {
|
||
"type": "remote",
|
||
"url": "https://jira.example.com/mcp",
|
||
"enabled": true
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### Глобальная
|
||
|
||
Поместите глобальную конфигурацию opencode в `~/.config/opencode/opencode.json`. Используйте глобальную конфигурацию для общепользовательских настроек, таких как темы, поставщики или привязки клавиш.
|
||
|
||
Для настроек, специфичных для TUI, используйте `~/.config/opencode/tui.json`.
|
||
|
||
Глобальная конфигурация переопределяет настройки по умолчанию для удаленной организации.
|
||
|
||
---
|
||
|
||
### Проектная
|
||
|
||
Добавьте `opencode.json` в корень вашего проекта. Конфигурация проекта имеет наивысший приоритет среди стандартных файлов конфигурации — она переопределяет как глобальные, так и удаленные конфигурации.
|
||
|
||
Для настроек TUI, специфичных для проекта, добавьте `tui.json` рядом с ним.
|
||
|
||
:::tip
|
||
Поместите конфигурацию конкретного проекта в корень вашего проекта.
|
||
:::
|
||
|
||
Когда opencode запускается, он ищет файл конфигурации в текущем каталоге или переходит к ближайшему каталогу Git.
|
||
|
||
Его также можно безопасно зарегистрировать в Git, и он использует ту же схему, что и глобальная.
|
||
|
||
---
|
||
|
||
### Пользовательский путь
|
||
|
||
Укажите собственный путь к файлу конфигурации, используя переменную среды `OPENCODE_CONFIG`.
|
||
|
||
```bash
|
||
export OPENCODE_CONFIG=/path/to/my/custom-config.json
|
||
opencode run "Hello world"
|
||
```
|
||
|
||
Пользовательская конфигурация загружается между глобальными и проектными конфигурациями в порядке приоритета.
|
||
|
||
---
|
||
|
||
### Пользовательский каталог
|
||
|
||
Укажите пользовательский каталог конфигурации, используя переменную среды `OPENCODE_CONFIG_DIR`. В этом каталоге будет выполняться поиск агентов, команд, режимов и плагинов (аналогично стандартному каталогу `.opencode`), и он должен иметь ту же структуру.
|
||
|
||
```bash
|
||
export OPENCODE_CONFIG_DIR=/path/to/my/config-directory
|
||
opencode run "Hello world"
|
||
```
|
||
|
||
Пользовательский каталог загружается после каталогов global config и `.opencode`, поэтому он **может переопределить** их настройки.
|
||
|
||
---
|
||
|
||
## Схема
|
||
|
||
Файл конфигурации имеет схему, определенную в [**`opencode.ai/config.json`**](https://opencode.ai/config.json).
|
||
|
||
Конфигурация TUI использует [**`opencode.ai/tui.json`**](https://opencode.ai/tui.json).
|
||
|
||
Ваш редактор должен иметь возможность проверять и автозаполнять данные на основе схемы.
|
||
|
||
---
|
||
|
||
### TUI
|
||
|
||
Используйте специальный файл `tui.json` (или `tui.jsonc`) для настроек, специфичных для TUI.
|
||
|
||
```json title="tui.json"
|
||
{
|
||
"$schema": "https://opencode.ai/tui.json",
|
||
"scroll_speed": 3,
|
||
"scroll_acceleration": {
|
||
"enabled": true
|
||
},
|
||
"diff_style": "auto"
|
||
}
|
||
```
|
||
|
||
Используйте `OPENCODE_TUI_CONFIG`, чтобы указать на пользовательский файл конфигурации TUI.
|
||
|
||
Устаревшие ключи `theme`, `keybinds` и `tui` в `opencode.json` устарели и автоматически переносятся, когда это возможно.
|
||
|
||
[Подробнее об использовании TUI можно узнать здесь](/docs/tui#configure).
|
||
|
||
---
|
||
|
||
### Сервер
|
||
|
||
Вы можете настроить параметры сервера для команд `opencode serve` и `opencode web` с помощью опции `server`.
|
||
|
||
```json title="opencode.json"
|
||
{
|
||
"$schema": "https://opencode.ai/config.json",
|
||
"server": {
|
||
"port": 4096,
|
||
"hostname": "0.0.0.0",
|
||
"mdns": true,
|
||
"mdnsDomain": "myproject.local",
|
||
"cors": ["http://localhost:5173"]
|
||
}
|
||
}
|
||
```
|
||
|
||
Доступные варианты:
|
||
|
||
- `port` — порт для прослушивания.
|
||
- `hostname` — имя хоста для прослушивания. Если `mdns` включен и имя хоста не задано, по умолчанию используется `0.0.0.0`.
|
||
- `mdns` — включить обнаружение службы mDNS. Это позволит другим устройствам в сети обнаружить ваш сервер opencode.
|
||
- `mdnsDomain` — собственное доменное имя для службы mDNS. По умолчанию `opencode.local`. Полезно для запуска нескольких экземпляров в одной сети.
|
||
- `cors` — дополнительные источники, позволяющие использовать CORS при использовании HTTP-сервера из браузерного клиента. Значения должны быть полными источниками (схема + хост + дополнительный порт), например `https://app.example.com`.
|
||
|
||
[Подробнее о сервере можно узнать здесь](/docs/server).
|
||
|
||
---
|
||
|
||
### Инструменты
|
||
|
||
Вы можете управлять инструментами, которые LLM может использовать, с помощью опции `tools`.
|
||
|
||
```json title="opencode.json"
|
||
{
|
||
"$schema": "https://opencode.ai/config.json",
|
||
"tools": {
|
||
"write": false,
|
||
"bash": false
|
||
}
|
||
}
|
||
```
|
||
|
||
[Подробнее об инструментах можно узнать здесь](/docs/tools).
|
||
|
||
---
|
||
|
||
### models
|
||
|
||
Вы можете настроить поставщиков и модели, которые хотите использовать в своей конфигурации opencode, с помощью параметров `provider`, `model` и `small_model`.
|
||
|
||
```json title="opencode.json"
|
||
{
|
||
"$schema": "https://opencode.ai/config.json",
|
||
"provider": {},
|
||
"model": "anthropic/claude-sonnet-4-5",
|
||
"small_model": "anthropic/claude-haiku-4-5"
|
||
}
|
||
```
|
||
|
||
Опция `small_model` настраивает отдельную модель для облегченных задач, таких как создание заголовков. По умолчанию opencode пытается использовать более дешевую модель, если она доступна у вашего провайдера, в противном случае он возвращается к вашей основной модели.
|
||
|
||
Опции провайдера могут включать `timeout` и `setCacheKey`:
|
||
|
||
```json title="opencode.json"
|
||
{
|
||
"$schema": "https://opencode.ai/config.json",
|
||
"provider": {
|
||
"anthropic": {
|
||
"options": {
|
||
"timeout": 600000,
|
||
"setCacheKey": true
|
||
}
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
- `timeout` — таймаут запроса в миллисекундах (по умолчанию: 300000). Установите `false` для отключения.
|
||
- `setCacheKey` — убедитесь, что ключ кэша всегда установлен для назначенного поставщика.
|
||
|
||
Вы также можете настроить [локальные модели](/docs/models#local). [Подробнее ](/docs/models).
|
||
|
||
---
|
||
|
||
#### Параметры, зависящие от поставщика
|
||
|
||
Некоторые поставщики поддерживают дополнительные параметры конфигурации помимо общих настроек `timeout` и `apiKey`.
|
||
|
||
##### Amazon
|
||
|
||
Amazon Bedrock поддерживает конфигурацию, специфичную для AWS:
|
||
|
||
```json title="opencode.json"
|
||
{
|
||
"$schema": "https://opencode.ai/config.json",
|
||
"provider": {
|
||
"amazon-bedrock": {
|
||
"options": {
|
||
"region": "us-east-1",
|
||
"profile": "my-aws-profile",
|
||
"endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
- `region` — регион AWS для Bedrock (по умолчанию переменная среды `AWS_REGION` или `us-east-1`)
|
||
- `profile` — именованный профиль AWS из `~/.aws/credentials` (по умолчанию переменная окружения `AWS_PROFILE`)
|
||
- `endpoint` — URL-адрес пользовательской конечной точки для конечных точек VPC. Это псевдоним общего параметра `baseURL`, использующий терминологию, специфичную для AWS. Если указаны оба параметра, `endpoint` имеет приоритет.
|
||
|
||
:::note
|
||
Токены носителя (`AWS_BEARER_TOKEN_BEDROCK` или `/connect`) имеют приоритет над аутентификацией на основе профиля. Подробности см. в [приоритет аутентификации](/docs/providers#authentication-precedence).
|
||
:::
|
||
|
||
[Подробнее о конфигурации Amazon Bedrock](/docs/providers#amazon-bedrock).
|
||
|
||
---
|
||
|
||
### theme
|
||
|
||
Установите тему пользовательского интерфейса в `tui.json`.
|
||
|
||
```json title="tui.json"
|
||
{
|
||
"$schema": "https://opencode.ai/tui.json",
|
||
"theme": "tokyonight"
|
||
}
|
||
```
|
||
|
||
[Подробнее здесь](/docs/themes).
|
||
|
||
---
|
||
|
||
### agent
|
||
|
||
Вы можете настроить специализированные агенты для конкретных задач с помощью опции `agent`.
|
||
|
||
```jsonc title="opencode.jsonc"
|
||
{
|
||
"$schema": "https://opencode.ai/config.json",
|
||
"agent": {
|
||
"code-reviewer": {
|
||
"description": "Reviews code for best practices and potential issues",
|
||
"model": "anthropic/claude-sonnet-4-5",
|
||
"prompt": "You are a code reviewer. Focus on security, performance, and maintainability.",
|
||
"tools": {
|
||
// Disable file modification tools for review-only agent
|
||
"write": false,
|
||
"edit": false,
|
||
},
|
||
},
|
||
},
|
||
}
|
||
```
|
||
|
||
Вы также можете определить агентов, используя файлы Markdown в `~/.config/opencode/agents/` или `.opencode/agents/`. [Подробнее здесь](/docs/agents).
|
||
|
||
---
|
||
|
||
### default_agent
|
||
|
||
Вы можете установить агента по умолчанию, используя опцию `default_agent`. Это определяет, какой агент используется, если ни один из них не указан явно.
|
||
|
||
```json title="opencode.json"
|
||
{
|
||
"$schema": "https://opencode.ai/config.json",
|
||
"default_agent": "plan"
|
||
}
|
||
```
|
||
|
||
Агент по умолчанию должен быть основным агентом (а не субагентом). Это может быть встроенный агент, например `"build"` или `"plan"`, или [пользовательский агент](/docs/agents), который вы определили. Если указанный агент не существует или является субагентом, opencode вернется к `"build"` с предупреждением.
|
||
|
||
Этот параметр применяется ко всем интерфейсам: TUI, CLI (`opencode run`), настольному приложению и действию GitHub.
|
||
|
||
---
|
||
|
||
### share
|
||
|
||
Функцию [share](/docs/share) можно настроить с помощью опции `share`.
|
||
|
||
```json title="opencode.json"
|
||
{
|
||
"$schema": "https://opencode.ai/config.json",
|
||
"share": "manual"
|
||
}
|
||
```
|
||
|
||
Принимает значения:
|
||
|
||
- `"manual"` — разрешить общий доступ вручную с помощью команд (по умолчанию).
|
||
- `"auto"` — автоматически делиться новыми беседами.
|
||
- `"disabled"` — полностью отключить общий доступ
|
||
|
||
По умолчанию общий доступ установлен в ручной режим, в котором вам необходимо явно делиться разговорами с помощью команды `/share`.
|
||
|
||
---
|
||
|
||
### Команды
|
||
|
||
Вы можете настроить собственные команды для повторяющихся задач с помощью опции `command`.
|
||
|
||
```jsonc title="opencode.jsonc"
|
||
{
|
||
"$schema": "https://opencode.ai/config.json",
|
||
"command": {
|
||
"test": {
|
||
"template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes.",
|
||
"description": "Run tests with coverage",
|
||
"agent": "build",
|
||
"model": "anthropic/claude-haiku-4-5",
|
||
},
|
||
"component": {
|
||
"template": "Create a new React component named $ARGUMENTS with TypeScript support.\nInclude proper typing and basic structure.",
|
||
"description": "Create a new component",
|
||
},
|
||
},
|
||
}
|
||
```
|
||
|
||
Вы также можете определять команды, используя файлы Markdown в `~/.config/opencode/commands/` или `.opencode/commands/`. [Подробнее здесь](/docs/commands).
|
||
|
||
---
|
||
|
||
### Сочетания клавиш
|
||
|
||
Настройте привязки клавиш в `tui.json`.
|
||
|
||
```json title="tui.json"
|
||
{
|
||
"$schema": "https://opencode.ai/tui.json",
|
||
"keybinds": {}
|
||
}
|
||
```
|
||
|
||
[Подробнее здесь](/docs/keybinds).
|
||
|
||
---
|
||
|
||
### Автообновление
|
||
|
||
opencode автоматически загрузит все новые обновления при запуске. Вы можете отключить это с помощью опции `autoupdate`.
|
||
|
||
```json title="opencode.json"
|
||
{
|
||
"$schema": "https://opencode.ai/config.json",
|
||
"autoupdate": false
|
||
}
|
||
```
|
||
|
||
Если вы не хотите получать обновления, но хотите получать уведомления о появлении новой версии, установите для `autoupdate` значение `"notify"`.
|
||
Обратите внимание, что это работает только в том случае, если оно было установлено без использования менеджера пакетов, такого как Homebrew.
|
||
|
||
---
|
||
|
||
### Форматтеры
|
||
|
||
Вы можете настроить форматировщики кода с помощью опции `formatter`.
|
||
|
||
```json title="opencode.json"
|
||
{
|
||
"$schema": "https://opencode.ai/config.json",
|
||
"formatter": {
|
||
"prettier": {
|
||
"disabled": true
|
||
},
|
||
"custom-prettier": {
|
||
"command": ["npx", "prettier", "--write", "$FILE"],
|
||
"environment": {
|
||
"NODE_ENV": "development"
|
||
},
|
||
"extensions": [".js", ".ts", ".jsx", ".tsx"]
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
[Подробнее о форматтерах можно узнать здесь](/docs/formatters).
|
||
|
||
---
|
||
|
||
### permission
|
||
|
||
По умолчанию opencode **разрешает все операции**, не требуя явного разрешения. Вы можете изменить это, используя опцию `permission`.
|
||
|
||
Например, чтобы гарантировать, что инструменты `edit` и `bash` требуют одобрения пользователя:
|
||
|
||
```json title="opencode.json"
|
||
{
|
||
"$schema": "https://opencode.ai/config.json",
|
||
"permission": {
|
||
"edit": "ask",
|
||
"bash": "ask"
|
||
}
|
||
}
|
||
```
|
||
|
||
[Подробнее о разрешениях можно узнать здесь](/docs/permissions).
|
||
|
||
---
|
||
|
||
### compaction
|
||
|
||
Вы можете управлять поведением сжатия контекста с помощью опции `compaction`.
|
||
|
||
```json title="opencode.json"
|
||
{
|
||
"$schema": "https://opencode.ai/config.json",
|
||
"compaction": {
|
||
"auto": true,
|
||
"prune": true,
|
||
"reserved": 10000
|
||
}
|
||
}
|
||
```
|
||
|
||
- `auto` — автоматически сжимать сеанс при заполнении контекста (по умолчанию: `true`).
|
||
- `prune` — удалить старые выходные данные инструмента для сохранения токенов (по умолчанию: `true`).
|
||
- `reserved` — Буфер токенов для сжатия. Оставляет достаточное окно, чтобы избежать переполнения во время сжатия.
|
||
|
||
---
|
||
|
||
### watcher
|
||
|
||
Вы можете настроить шаблоны игнорирования средства отслеживания файлов с помощью опции `watcher`.
|
||
|
||
```json title="opencode.json"
|
||
{
|
||
"$schema": "https://opencode.ai/config.json",
|
||
"watcher": {
|
||
"ignore": ["node_modules/**", "dist/**", ".git/**"]
|
||
}
|
||
}
|
||
```
|
||
|
||
Шаблоны соответствуют синтаксису glob. Используйте это, чтобы исключить зашумленные каталоги из просмотра файлов.
|
||
|
||
---
|
||
|
||
### mcp
|
||
|
||
Вы можете настроить серверы MCP, которые хотите использовать, с помощью опции `mcp`.
|
||
|
||
```json title="opencode.json"
|
||
{
|
||
"$schema": "https://opencode.ai/config.json",
|
||
"mcp": {}
|
||
}
|
||
```
|
||
|
||
[Подробнее здесь](/docs/mcp-servers).
|
||
|
||
---
|
||
|
||
### Плагины
|
||
|
||
[Плагины](/docs/plugins) расширяют opencode с помощью пользовательских инструментов, перехватчиков и интеграций.
|
||
|
||
Поместите файлы плагина в `.opencode/plugins/` или `~/.config/opencode/plugins/`. Вы также можете загружать плагины из npm с помощью опции `plugin`.
|
||
|
||
```json title="opencode.json"
|
||
{
|
||
"$schema": "https://opencode.ai/config.json",
|
||
"plugin": ["opencode-helicone-session", "@my-org/custom-plugin"]
|
||
}
|
||
```
|
||
|
||
[Подробнее здесь](/docs/plugins).
|
||
|
||
---
|
||
|
||
### instructions
|
||
|
||
Вы можете настроить инструкции для используемой вами модели с помощью опции `instructions`.
|
||
|
||
```json title="opencode.json"
|
||
{
|
||
"$schema": "https://opencode.ai/config.json",
|
||
"instructions": ["CONTRIBUTING.md", "docs/guidelines.md", ".cursor/rules/*.md"]
|
||
}
|
||
```
|
||
|
||
Для этого требуется массив путей и шаблонов glob для файлов инструкций. [Подробнее о правилах читайте здесь](/docs/rules).
|
||
|
||
---
|
||
|
||
### disabled_providers
|
||
|
||
Вы можете отключить поставщиков, которые загружаются автоматически, с помощью опции `disabled_providers`. Это полезно, если вы хотите запретить загрузку определенных поставщиков, даже если их учетные данные доступны.
|
||
|
||
```json title="opencode.json"
|
||
{
|
||
"$schema": "https://opencode.ai/config.json",
|
||
"disabled_providers": ["openai", "gemini"]
|
||
}
|
||
```
|
||
|
||
:::note
|
||
`disabled_providers` имеет приоритет над `enabled_providers`.
|
||
:::
|
||
|
||
Опция `disabled_providers` принимает массив идентификаторов поставщиков. Когда провайдер отключен:
|
||
|
||
- Он не будет загружен, даже если установлены переменные среды.
|
||
- Он не будет загружен, даже если ключи API настроены с помощью команды `/connect`.
|
||
- Модели поставщика не появятся в списке выбора моделей.
|
||
|
||
---
|
||
|
||
### enabled_providers
|
||
|
||
Вы можете указать белый список поставщиков с помощью опции `enabled_providers`. Если этот параметр установлен, будут включены только указанные поставщики, а все остальные будут игнорироваться.
|
||
|
||
```json title="opencode.json"
|
||
{
|
||
"$schema": "https://opencode.ai/config.json",
|
||
"enabled_providers": ["anthropic", "openai"]
|
||
}
|
||
```
|
||
|
||
Это полезно, если вы хотите ограничить opencode использованием только определенных поставщиков, а не отключать их по одному.
|
||
|
||
:::note
|
||
`disabled_providers` имеет приоритет над `enabled_providers`.
|
||
:::
|
||
|
||
Если поставщик указан как в `enabled_providers`, так и в `disabled_providers`, `disabled_providers` имеет приоритет для обратной совместимости.
|
||
|
||
---
|
||
|
||
### Экспериментальные возможности
|
||
|
||
Ключ `experimental` содержит параметры, находящиеся в активной разработке.
|
||
|
||
```json title="opencode.json"
|
||
{
|
||
"$schema": "https://opencode.ai/config.json",
|
||
"experimental": {}
|
||
}
|
||
```
|
||
|
||
:::caution
|
||
Экспериментальные варианты не стабильны. Они могут быть изменены или удалены без предварительного уведомления.
|
||
:::
|
||
|
||
---
|
||
|
||
## Переменные
|
||
|
||
Вы можете использовать подстановку переменных в файлах конфигурации для ссылки на переменные среды и содержимое файлов.
|
||
|
||
---
|
||
|
||
### Переменные окружения
|
||
|
||
Используйте `{env:VARIABLE_NAME}` для замены переменных среды:
|
||
|
||
```json title="opencode.json"
|
||
{
|
||
"$schema": "https://opencode.ai/config.json",
|
||
"model": "{env:OPENCODE_MODEL}",
|
||
"provider": {
|
||
"anthropic": {
|
||
"models": {},
|
||
"options": {
|
||
"apiKey": "{env:ANTHROPIC_API_KEY}"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
Если переменная среды не установлена, она будет заменена пустой строкой.
|
||
|
||
---
|
||
|
||
### Файлы
|
||
|
||
Используйте `{file:path/to/file}` для замены содержимого файла:
|
||
|
||
```json title="opencode.json"
|
||
{
|
||
"$schema": "https://opencode.ai/config.json",
|
||
"instructions": ["./custom-instructions.md"],
|
||
"provider": {
|
||
"openai": {
|
||
"options": {
|
||
"apiKey": "{file:~/.secrets/openai-key}"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
Пути к файлам могут быть:
|
||
|
||
- Относительно каталога файла конфигурации
|
||
- Или абсолютные пути, начинающиеся с `/` или `~`.
|
||
|
||
Они полезны для:
|
||
|
||
- Хранение конфиденциальных данных, таких как ключи API, в отдельных файлах.
|
||
- Включая большие файлы инструкций, не загромождая вашу конфигурацию.
|
||
- Совместное использование общих фрагментов конфигурации в нескольких файлах конфигурации.
|