Интеграции

OpenCode

Терминальный AI-агент. Кастомный OpenAI-совместимый провайдер в `opencode.json` не работает без блока `models`: без перечисления id провайдер молча игнорируется

Что нужно

  • OpenCode
  • Ключ sk-… — лучше в переменной окружения, не в git
  • Slug из каталога

Протокол

Chat Completions. Пакет адаптера: @ai-sdk/openai-compatible. Base URL: https://www.llmmart.ru/api/v1.

Идентификатор провайдера — без точки (llmmart, не llmmart.ru): иначе options могут не дойти до SDK.

Конфиг

Глобально: ~/.config/opencode/opencode.json (или opencode.jsonc). В проекте — opencode.json в корне.

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "llmmart": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "LLM Mart",
      "options": {
        "baseURL": "https://www.llmmart.ru/api/v1",
        "apiKey": "{env:LLM_MART_API_KEY}"
      },
      "models": {
        "gpt-4o-mini": { "name": "GPT-4o mini" },
        "anthropic/claude-sonnet-5": { "name": "Claude Sonnet 5" },
        "anthropic/claude-opus-4.6": { "name": "Claude Opus 4.6" }
      }
    }
  }
}
export LLM_MART_API_KEY="sk-…"
opencode

В сессии /models: модели видны как llmmart/<slug>. Ключи в объекте models — точные id, которые уйдут в API.

Для моделей, которые на LLM Mart ходят только в Responses, замените npm на @ai-sdk/openai — это другой адаптер (/v1/responses). Для обычного чата оставляйте openai-compatible.

Типичные ошибки

СимптомЧто проверить
Провайдер не в /connectблок models не пустой
401LLM_MART_API_KEY, синтаксис {env:LLM_MART_API_KEY}
ProviderModelNotFoundключ в models = slug каталога
options «не применяются»id провайдера без точки
Подхватился настоящий OpenAIне называйте переменные OPENAI_API_KEY / OPENAI_BASE_URL, если рядом есть дефолтный провайдер openai

Проверено: 2026-09-01 по Providers OpenCode (кастомный провайдер требует npm, options.baseURL и непустой models).

Что дальше