OpenCode
Добавление подключения provod.ai и доступного каталога моделей в OpenCode.
Обновлено
Выберите установщик или ручную настройку
В OpenCode поставщик — это именованное подключение к API с моделями и параметрами соединения. Установщик настраивает уже установленный OpenCode, но не устанавливает сам OpenCode. Он авторизованно запрашивает GET /v1/models, добавляет или обновляет поставщика provod и переносит в локальный файл названия, лимиты, возможности, типы данных и публичные цены из ответа.
Используйте установщик для настройки по актуальному каталогу. Ручное подключение подходит, когда нужно самостоятельно проверить и объединить каждое поле.
Запустите установщик
export PROVOD_API_KEY="sk_..."
curl -fsSL https://app.provod.ai/install/opencode.sh | \
PROVOD_API_KEY="$PROVOD_API_KEY" shУстановщик сохраняет ключ отдельно в ~/.config/opencode/provod-api-key, а в конфиг добавляет ссылку {file:~/.config/opencode/provod-api-key}. Не добавляйте файл ключа в репозитории или общие резервные копии.
Чтобы использовать нестандартный файл, задайте OPENCODE_CONFIG до команды. Иначе установщик проверяет ~/.config/opencode/opencode.json, затем opencode.jsonc и создаёт opencode.json, если файлов нет.
Обе версии проверяют сформированный конфиг и делают резервную копию существующего файла перед заменой. Установщик не выбирает модель по умолчанию: после установки выберите нужную модель через /models.
Настройте подключение вручную
Сначала экспортируйте ключ и выберите доступный точный идентификатор через GET /v1/models. Затем замените каждую строку model-id-from-GET-v1-models ниже на этот идентификатор, а вместо указанной в примере переменной PROVOD_API_KEY вставьте текущее значение ключа.
export PROVOD_API_KEY="sk_..."Ручная настройка сохраняет ключ открытым текстом
Значение apiKey записывается в локальный файл настроек OpenCode. Защищайте файл как секрет, не добавляйте его в репозитории и общие резервные копии, а для OpenCode создайте отдельный ключ с подходящим лимитом расходов.
{
"$schema": "https://opencode.ai/config.json",
"model": "provod/model-id-from-GET-v1-models",
"provider": {
"provod": {
"npm": "@ai-sdk/openai-compatible",
"name": "provod.ai",
"options": {
"baseURL": "https://api.provod.ai/v1",
"apiKey": "paste-value-from-PROVOD_API_KEY"
},
"models": {
"model-id-from-GET-v1-models": {
"name": "model-id-from-GET-v1-models"
}
}
}
}
}Сохраните пример как ~/.config/opencode/opencode.json, затем ограничьте доступ к каталогу и файлу с ключом текущим пользователем. Если OPENCODE_CONFIG указывает другой путь, задайте этому файлу такие же права только для владельца:
chmod 700 ~/.config/opencode
chmod 600 ~/.config/opencode/opencode.jsonРучной пример задаёт только подключение. Установщик удобнее, если OpenCode должен получить из каталога актуальные лимиты контекста и ответа, поддержку рассуждений, инструментов и изображений, а также цены.
Проверьте текущую конфигурацию
Выведите модели, которые OpenCode загрузил для поставщика:
opencode models provodВыберите одну через /models или напрямую запустите текущий ID из каталога:
export PROVOD_MODEL="model-id-from-GET-v1-models"
opencode run --model "provod/$PROVOD_MODEL" "Reply with ok"Восстановите или обновите конфигурацию
В macOS/Linux установщик выводит путь к резервной копии с отметкой времени. Если объединённый файл перестал загружаться, остановите OpenCode, сохраните нерабочий файл для сравнения, восстановите указанную копию и перед повторным запуском проверьте OPENCODE_CONFIG.
Если установщик не может безопасно объединить настройки или сохранить комментарии JSONC, он не заменяет исходный файл и записывает рядом отдельный фрагмент provod-opencode-provider.jsonc для проверки. PowerShell также выводит путь созданной резервной копии при успешном обновлении существующего файла. Повторный запуск обновляет каталог; копировать новые идентификаторы моделей с этой страницы не нужно.
Публичный код ошибки — это предназначенное для клиента значение error.code из ответа API. Сохраните его вместе с HTTP-статусом, точным идентификатором модели, временем, версией OpenCode, путём к файлу настроек и маскированным префиксом ключа. Безопасная работа с ключом описана в авторизации API, а формат запроса — в Chat Completions.