OpenCode
Быстрый терминальный AI-ассистент для кода с открытым исходным кодом.
Официальная документацияПредварительные требования
- API-ключ AggreGate AI (начинается с sk-ag-…).
- Base URL для API-запросов.: https://api.aggregate.surf/v1
Настройка
- Установите OpenCode
Следуйте инструкции по установке на opencode.ai. Проверьте установку командой opencode --version.
- Настройте провайдера
Отредактируйте ~/.config/opencode/opencode.json и добавьте AggreGate как пользовательского провайдера, совместимого с OpenAI.
- Запустите сессию
Выполните opencode в директории вашего проекта. Клиент будет использовать модель, заданную по умолчанию.
Конфигурация
Через VPN или из-за границы? Переключитесь на Gateway.
Base URL
https://api.aggregate.surf/v1json
{
"provider": {
"aggregate": {
"npm": "@ai-sdk/openai-compatible",
"name": "AggreGate AI",
"options": {
"baseURL": "https://api.aggregate.surf/v1",
"apiKey": "sk-ag-your-key"
},
"models": {
"claude-opus-4.8": {
"attachment": true,
"modalities": { "input": ["text", "image"], "output": ["text"] }
},
"claude-sonnet-5": {
"attachment": true,
"modalities": { "input": ["text", "image"], "output": ["text"] }
}
}
}
}
}Устранение неполадок
Возникает ошибка 401 Unauthorized
Ещё раз проверьте поле api key. Он должен начинаться с sk-ag- и принадлежать активному ключу.
Модель не найдена
Выполните запрос /v1/models к базовому URL, чтобы узнать, какие модели доступны в вашем тарифе.
Не получается приложить скриншот / картинку
OpenCode считает модель пользовательского провайдера текстовой, пока это не указано явно. Добавьте в описание модели в opencode.json поле "attachment": true и поле "modalities" с input ["text", "image"] и output ["text"] — как в примере выше — и перезапустите OpenCode. Изображения поддерживают модели Claude, GPT и Gemini.
Как посмотреть баланс и остаток пакета из терминала?
Выполните curl -s https://api.aggregate.surf/v1/me -H "Authorization: Bearer sk-ag-…" — в ответе баланс (balance.amount), остаток токенов по каждому активному пакету (token_packages[].tokens_available) и расход за текущий месяц (usage_current_month). Подробнее — в разделе API → /v1/me.