Мульти-аккаунтный пул Gemini Business с интеллектуальной ротацией для OpenCode
🇷🇺 Русский | 🇬🇧 English
Auth-плагин для OpenCode — пул из нескольких аккаунтов Gemini Business с автоматической ротацией, фейловером и балансировкой нагрузки.
opencode-gemini-business — плагин для OpenCode, который обеспечивает ротацию между несколькими аккаунтами Gemini Business API (business.gemini.google), предоставляя автоматическое переключение при ошибках и балансировку нагрузки.
Важно: Плагин использует Gemini Business / Enterprise API, НЕ Google AI Studio.
| Возможность | Описание |
|---|---|
| 🔄 Ротация аккаунтов | Автоматическое переключение между несколькими аккаунтами Gemini Business |
| 🛡️ Автоматический фейловер | Повторные запросы с другим аккаунтом при ошибках |
| 🔐 JWT-аутентификация | Встроенное получение XSRF-токена и подписание JWT (HS256) |
| 📡 Поддержка стриминга | Полная поддержка SSE, JSON-lines и fallback-парсинга |
| ⚙️ Гибкие стратегии | Round-robin, least-used или случайный выбор |
| 🔑 Автонастройка auth | add-account автоматически создаёт auth-запись OpenCode |
| Модель | Internal API ID | Для чего |
|---|---|---|
gemini-2.5-flash |
gemini-2.5-flash |
Повседневные задачи, быстрые ответы |
gemini-2.5-pro |
gemini-2.5-pro |
Сложные рассуждения |
gemini-3-flash |
gemini-3-flash-preview |
Новое поколение, быстрая |
gemini-3.1-pro |
gemini-3.1-pro-preview |
Продвинутые рассуждения (preview) |
auto |
(пусто) | Gemini автоматически выберет лучшую модель |
Добавьте в ~/.config/opencode/opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-gemini-business@latest"],
"provider": {
"gemini-business": {
"name": "Gemini Business",
"options": {
"baseURL": "https://business.gemini.google/v1",
"apiKey": "unused"
},
"models": {
"gemini-2.5-flash": { "name": "Gemini 2.5 Flash" },
"gemini-2.5-pro": { "name": "Gemini 2.5 Pro" },
"gemini-3-flash": { "name": "Gemini 3 Flash" },
"gemini-3.1-pro": { "name": "Gemini 3.1 Pro" },
"auto": { "name": "Авто-выбор" }
}
}
}
}Установите CLI-инструмент:
npm install -g opencode-gemini-businessДобавьте аккаунт (нужен Google Chrome или Chromium):
opencode-gemini-business add-accountОткроется окно Chrome — войдите в аккаунт Gemini Business и отправьте любое сообщение в чат. Куки и учётные данные будут захвачены автоматически. Готово!
Примечание:
add-accountавтоматически создаёт auth-запись в~/.local/share/opencode/auth.json, поэтому запускатьopencode auth loginне нужно.
Ручной режим (для продвинутых)
Если хотите указать данные вручную или Chrome не установлен:
opencode-gemini-business add-account --manual \
"Мой аккаунт" \
"e1f353e7-0291-44cf-9085-e0b6efd20e41" \
"CSE.AXUaAj_MKeqeFLr_..." \
"COS.AfQtEyCcW1aLwKb3..." \
"1370433092"| # | Аргумент | Описание |
|---|---|---|
| 1 | Имя аккаунта | Отображаемое имя аккаунта |
| 2 | team_id |
UUID из URL /cid/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/ |
| 3 | __Secure-C_SES |
Значение cookie (начинается с CSE.) |
| 4 | __Host-C_OSES |
Значение cookie (начинается с COS.) |
| 5 | csesidx |
Число из URL ?csesidx=... |
Или через переменные окружения:
export GEMINI_ACCOUNT_NAME="Мой аккаунт"
export GEMINI_TEAM_ID="e1f353e7-0291-44cf-9085-e0b6efd20e41"
export GEMINI_SECURE_C_SES="CSE.AXUaAj_MKeqeFLr_..."
export GEMINI_HOST_C_OSES="COS.AfQtEyCcW1aLwKb3..."
export GEMINI_CSESIDX="1370433092"
opencode-gemini-business add-account --manual# Flash (быстрая)
opencode run --model=gemini-business/gemini-2.5-flash "Исправь баг"
# Pro (лучшее качество)
opencode run --model=gemini-business/gemini-2.5-pro "Спроектируй архитектуру"
# Модели нового поколения
opencode run --model=gemini-business/gemini-3-flash "Быстрая задача"
opencode run --model=gemini-business/gemini-3.1-pro "Продвинутые рассуждения"
opencode run --model=gemini-business/auto "Gemini выберет сам"Установить модель по умолчанию в opencode.json:
{
"model": "gemini-business/gemini-2.5-flash"
}Войдите в business.gemini.google и посмотрите URL:
https://business.gemini.google/home/cid/e1f353e7-0291-44cf-9085-e0b6efd20e41/r/session/123?csesidx=1370433092
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^
team_id (UUID после /cid/) csesidx
Способ 1: Расширение браузера (рекомендуется)
- Установите Get cookies.txt LOCALLY
- Откройте
business.gemini.googleи экспортируйте cookies - Найдите
__Secure-C_SES(начинается сCSE.) и__Host-C_OSES(начинается сCOS.)
Способ 2: DevTools
- Откройте DevTools (F12) → Application → Cookies →
https://business.gemini.google - Скопируйте значения
__Secure-C_SESи__Host-C_OSES
# Список аккаунтов
opencode-gemini-business list-accounts
# Тест подключения
opencode-gemini-business test-account <account_id>
# Удалить аккаунт
opencode-gemini-business remove-account <account_id>
# Помощь
opencode-gemini-business help| Стратегия | Поведение |
|---|---|
round-robin (по умолчанию) |
Циклический обход аккаунтов по порядку |
least-used |
Выбор наименее недавно использованного |
random |
Случайный выбор |
Настраивается в ~/.config/opencode/gemini-business-accounts.json (создаётся автоматически при первом add-account).
- Плагин регистрируется как auth-провайдер
gemini-businessв OpenCode - При запросе
loader()возвращает кастомную функциюfetch() - Кастомный
fetch()перехватывает запрос от@ai-sdk/openai-compatible - Вместо вызова
baseURL/chat/completionsон:- Выбирает аккаунт по стратегии ротации
- Получает XSRF-токен и создаёт JWT (HS256)
- Создаёт сессию через
widgetCreateSession - Отправляет запрос на
widgetStreamAssist - Конвертирует ответ в OpenAI-совместимый формат
- Поддерживает стриминг (SSE) и обычные ответы
В: Где найти team_id?
Посмотрите URL в браузере: https://business.gemini.google/home/cid/e1f353e7-0291-44cf-9085-e0b6efd20e41/...
UUID после /cid/ — это ваш team_id.
В: Нужно ли запускать `opencode auth login`?
Нет. Команда add-account автоматически создаёт auth-запись в ~/.local/share/opencode/auth.json. Если по какой-то причине запись не создалась, запустите opencode auth login, выберите gemini-business и введите любой ключ (например unused).
В: Ошибки истечения сессии?
Плагин автоматически обновляет сессии (кешируются на 50 минут). Если ошибки не проходят — cookies могли истечь, извлеките их заново из браузера.
В: Чем отличается от Google AI Studio?
Плагин использует Gemini Business API (business.gemini.google) — корпоративные аккаунты с высокими лимитами. НЕ Google AI Studio (aistudio.google.com).
- Учётные данные хранятся локально в
~/.config/opencode/gemini-business-accounts.json - Не коммитьте credentials в git
- Регулярно обновляйте cookies
- Плагин не отправляет данные третьим сторонам
MIT © opencode-gemini-business contributors