Один ключ для всех AI-моделейСоздать аккаунтОплата в рублях, без VPN

ДокументацияOpenCode

OpenCode

OpenCode можно подключить к Zenvy как OpenAI-compatible provider. Все запросы идут на https://api.zenvy.su/v1, а Zenvy уже проверяет ваш ключ, списывает баланс и обрабатывает запрос через настроенный AI-маршрут.

Zenvy поддерживает обычные ответы, streaming и OpenAI-compatible tool calling (tools, tool_choice, parallel_tool_calls), поэтому OpenCode может работать как агент, а не только как чат.

Что понадобится

  1. API-ключ Zenvy вида sk-zenvy-... из раздела API-ключи.
  2. Положительный баланс аккаунта.
  3. Модель Zenvy. Для первого запуска используйте claude-sonnet-4.6, а для дешёвых вспомогательных задач — deepseek-chat.
Важно

В OpenCode вставляйте именно Zenvy API-ключ sk-zenvy-.... Ключи внешних провайдеров нужны только владельцу Zenvy в админке провайдеров.

Быстрый старт

Шаг 1. Установите OpenCode

~/zenvy · zsh
curl -fsSL https://opencode.ai/install | bash

Или через npm:

~/zenvy · zsh
npm install -g opencode-ai

Проверьте установку:

~/zenvy · zsh
opencode --version

Шаг 2. Выберите способ подключения

Есть два удобных сценария:

СпособКогда выбрать
Через /connectКлюч хранится отдельно от opencode.json; безопаснее для проектов в git
Через конфигВсё описано в одном файле; удобно для личной машины или CI с env-переменной

Способ A. Через /connect

Запустите OpenCode в проекте:

~/zenvy · zsh
opencode

В TUI выполните:

~/zenvy · plain
/connect

Дальше:

  1. Выберите Other.
  2. Введите provider ID: zenvy.
  3. Введите API-ключ Zenvy: sk-zenvy-....

После этого ключ будет храниться в auth-хранилище OpenCode, а в проектный конфиг попадёт только описание provider и моделей.

Создайте opencode.json в корне проекта:

~/zenvy · json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "zenvy": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Zenvy",
      "options": {
        "baseURL": "https://api.zenvy.su/v1"
      },
      "models": {
        "claude-sonnet-4.6": {
          "name": "Claude Sonnet",
          "limit": {
            "context": 200000,
            "output": 8192
          }
        },
        "gpt-5-5": {
          "name": "GPT-5.5",
          "limit": {
            "context": 256000,
            "output": 8192
          }
        },
        "deepseek-chat": {
          "name": "DeepSeek Chat",
          "limit": {
            "context": 128000,
            "output": 8192
          }
        }
      }
    }
  },
  "model": "zenvy/claude-sonnet-4.6",
  "small_model": "zenvy/deepseek-chat"
}

Перезапустите OpenCode и выберите модель через:

~/zenvy · plain
/models

Способ B. Полностью через конфиг

Если вы хотите подключить Zenvy без /connect, укажите ключ в opencode.json.

Через переменную окружения

~/zenvy · json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "zenvy": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Zenvy",
      "options": {
        "baseURL": "https://api.zenvy.su/v1",
        "apiKey": "{env:ZENVY_API_KEY}"
      },
      "models": {
        "claude-sonnet-4.6": {
          "name": "Claude Sonnet",
          "limit": {
            "context": 200000,
            "output": 8192
          }
        },
        "gpt-5-5": {
          "name": "GPT-5.5",
          "limit": {
            "context": 256000,
            "output": 8192
          }
        },
        "deepseek-chat": {
          "name": "DeepSeek Chat",
          "limit": {
            "context": 128000,
            "output": 8192
          }
        }
      }
    }
  },
  "model": "zenvy/claude-sonnet-4.6",
  "small_model": "zenvy/deepseek-chat"
}

Задайте переменную окружения:

~/zenvy · macOS / Linux
export ZENVY_API_KEY="sk-zenvy-..."

Постоянная настройка:

~/zenvy · macOS / Linux
echo 'export ZENVY_API_KEY="sk-zenvy-..."' >> ~/.bashrc
source ~/.bashrc

После сохранения в Windows откройте новый терминал.

Через файл с ключом

~/zenvy · json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "zenvy": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Zenvy",
      "options": {
        "baseURL": "https://api.zenvy.su/v1",
        "apiKey": "{file:~/.secrets/zenvy-key}"
      },
      "models": {
        "claude-sonnet-4.6": {
          "name": "Claude Sonnet"
        },
        "gpt-5-5": {
          "name": "GPT-5.5"
        },
        "deepseek-chat": {
          "name": "DeepSeek Chat"
        }
      }
    }
  },
  "model": "zenvy/claude-sonnet-4.6",
  "small_model": "zenvy/deepseek-chat"
}

Файл ~/.secrets/zenvy-key должен содержать только ключ sk-zenvy-... без лишнего текста.

Проверка подключения

Перед запуском OpenCode проверьте ключ через curl:

~/zenvy · zsh
curl https://api.zenvy.su/v1/chat/completions \
  -H "Authorization: Bearer sk-zenvy-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4.6",
    "messages": [
      { "role": "user", "content": "Ответь одним словом: ok" }
    ],
    "max_tokens": 8
  }'

Если ответ приходит, запускайте:

~/zenvy · zsh
opencode

Полезные команды внутри TUI:

КомандаЧто делает
/connectДобавить или обновить credentials
/modelsВыбрать модель
/agentsПереключить агента
/helpПоказать команды

Рекомендуемые модели

Model IDДля чего
claude-sonnet-4.6Основная модель для coding-агента
gpt-5-5Модели OpenAI, сложные задачи
deepseek-chatДешёвые быстрые задачи и small_model

Актуальный список доступных моделей можно получить:

~/zenvy · zsh
curl https://api.zenvy.su/v1/models

Устранение неполадок

СимптомВ чём проблема
401Вставлен ключ внешнего провайдера вместо Zenvy. Нужен ключ sk-zenvy-....
402 insufficient_balanceНа балансе Zenvy нет средств. Пополните баланс в личном кабинете.
404 model_not_foundВ model указан ID, которого нет в Zenvy. Проверьте список через GET /v1/models.
502 provider_unavailableUpstream-провайдер временно недоступен. Повторите запрос позже.
Агент не вызывает toolsМодель без tool calling или неверный SDK. Используйте @ai-sdk/openai-compatible и модель с tools: true.

Безопасность

  • Не коммитьте opencode.json, если внутри есть прямой apiKey.
  • Для командной работы лучше использовать /connect, {env:ZENVY_API_KEY} или {file:~/.secrets/zenvy-key}.
  • Если ключ утёк, удалите его в кабинете Zenvy и создайте новый.