xAI Grok OAuth (SuperGrok / X Premium+)
Hermes Agent поддерживает xAI Grok через браузерный OAuth-вход по device-code flow на accounts.x.ai — можно использовать подписку SuperGrok (grok.com) или подписку X Premium+ (привязанный аккаунт X). Ключ XAI_API_KEY для этого не нужен: авторизуйтесь один раз, а дальше Hermes сам обновляет сессию в фоне.
Если вы входите через аккаунт X с Premium+, xAI автоматически привязывает статус подписки к вашей xAI-сессии, поэтому OAuth-вход в этом случае работает точно так же, как и у прямых подписчиков SuperGrok.
Транспорт переиспользует адаптер codex_responses (у xAI есть эндпоинт в стиле Responses), поэтому рассуждения, вызов инструментов, стриминг и кэширование промптов работают без каких-либо изменений адаптера.
Тот же OAuth bearer-токен переиспользуется и во всех остальных прямых интеграциях с xAI внутри Hermes — TTS, генерации изображений, генерации видео и транскрибации, — так что один вход закрывает сразу все четыре сценария.
Обзор
| Параметр | Значение |
|---|---|
| ID провайдера | xai-oauth |
| Отображаемое имя | xAI Grok OAuth (SuperGrok / X Premium+) |
| Тип авторизации | Браузерный OAuth 2.0 (device code) |
| Транспорт | xAI Responses API (codex_responses) |
| Модель по умолчанию | grok-4.6 |
| Эндпоинт | https://api.x.ai/v1 |
| Сервер авторизации | https://accounts.x.ai |
| Требуется переменная окружения | Нет (XAI_API_KEY для этого провайдера не используется) |
| Подписка | SuperGrok или X Premium+ — см. примечание ниже |
Требования
- Python 3.9+
- Установленный Hermes Agent
- Активная подписка SuperGrok на вашем аккаунте xAI, либо подписка X Premium+ на аккаунте X, через который вы входите (xAI привязывает подписку автоматически)
- Браузер, доступный там, где можно открыть выведенную ссылку для подтверждения
Бэкенд xAI применяет собственный allowlist к OAuth API, и известны случаи, когда обычным подписчикам SuperGrok возвращается HTTP 403 (см. issue #26847) — даже при активной подписке внутри приложения. Если вход через OAuth в браузере прошёл успешно, а инференс всё равно отдаёт 403, задайте XAI_API_KEY и переключитесь на путь с API-ключом (provider: xai) — на этот эндпоинт подобное ограничение сегодня не распространяется.
Быстрый старт
# Запускаем выбор провайдера и модели
hermes model
# → Выберите «xAI Grok OAuth (SuperGrok / X Premium+)» из списка провайдеров
# → Hermes откроет браузер или выведет ссылку для подтверждения на accounts.x.ai
# → Если появится запрос — введите показанный код, затем подтвердите доступ в браузере
# → Выберите модель (grok-4.6 — в начале списка)
# → Начинайте общение
hermes
После первого входа учётные данные сохраняются в ~/.hermes/auth.json и обновляются автоматически до истечения срока их действия.
Вход вручную
Запустить вход можно и без выбора модели:
hermes auth add xai-oauth
Удалённые/headless-сессии
На серверах, в контейнерах, консолях без локального браузера (Cloud Shell, Codespaces, EC2 Instance Connect) или в SSH-сессиях, где Hermes не может открыть браузер на месте, он выводит ссылку для подтверждения xAI и код пользователя. Откройте эту ссылку в любом браузере — на ноутбуке или прямо в облачной консоли, — при необходимости введите код, и Hermes будет опрашивать сервер, пока xAI не подтвердит вход. SSH-туннель или локальный callback-listener для этого не нужны.
hermes auth add xai-oauth --no-browser
# Откройте в браузере выведенную ссылку для подтверждения.
Тот же device-code flow применяется и при входе через веб-дашборд или десктопное приложение: Hermes показывает ссылку для подтверждения и код пользователя, а затем опрашивает сервер в фоне, пока вы не подтвердите доступ.
Как устроен вход
- Hermes запрашивает device-код у
auth.x.ai. - Вы открываете ссылку для подтверждения, входите в аккаунт, при необходимости вводите показанный код и подтверждаете доступ.
- Hermes опрашивает xAI до получения подтверждения, а затем сохраняет токены в
~/.hermes/auth.json. - Дальше Hermes обновляет access-токен в фоне — вы остаётесь авторизованы, пока не выполните
hermes auth logout xai-oauthили не отзовёте доступ в настройках аккаунта xAI.
Проверка статуса входа
hermes doctor
В разделе ◆ Auth Providers отображается текущее состояние каждого провайдера, включая xai-oauth.
Переключение моделей
hermes model
# → Выберите «xAI Grok OAuth (SuperGrok / X Premium+)»
# → Выберите модель из списка (grok-4.6 закреплена вверху)
Либо задайте модель напрямую:
hermes config set model.default grok-4.6
hermes config set model.provider xai-oauth
Справочник по конфигурации
После входа файл ~/.hermes/config.yaml будет содержать:
model:
default: grok-4.6
provider: xai-oauth
base_url: https://api.x.ai/v1
Алиасы провайдера
Все перечисленные ниже варианты указывают на xai-oauth:
hermes --provider xai-oauth # каноническое имя
hermes --provider grok-oauth # алиас
hermes --provider x-ai-oauth # алиас
hermes --provider xai-grok-oauth # алиас
Прямые инструменты xAI (TTS / изображения / видео / транскрибация / поиск по X)
После входа через OAuth все прямые инструменты xAI автоматически переиспользуют тот же bearer-токен — отдельная настройка не нужна, если только вы не предпочитаете работать через API-ключ.
Чтобы выбрать бэкенд для каждого инструмента:
hermes tools
# → Синтез речи (Text-to-Speech) → «xAI TTS»
# → Генерация изображений → «xAI Grok Imagine (image)»
# → Генерация видео → «xAI Grok Imagine»
# → Поиск по X (Twitter) → «xAI Grok OAuth (SuperGrok / X Premium+)»
Если OAuth-токены уже сохранены, селектор просто подтверждает это и пропускает запрос учётных данных. Если не настроены ни OAuth, ни XAI_API_KEY, селектор предложит меню из трёх пунктов: вход через OAuth, ввод API-ключа вручную или пропуск.
Набор инструментов video_gen по умолчанию выключен. Включите его в hermes tools → 🎬 Video Generation (клавиша пробел), прежде чем агент сможет вызывать video_generate. Иначе агент может откатиться на встроенный навык ComfyUI, который тоже помечен для генерации видео.
Набор инструментов x_search включается автоматически, как только настроены учётные данные xAI (OAuth-токен SuperGrok / X Premium+ или XAI_API_KEY). Если это не нужно, отключите его вручную через hermes tools → 🐦 X (Twitter) Search (клавиша пробел). Инструмент работает через встроенный x_search Responses API от xAI — он функционирует как с вашим OAuth-входом SuperGrok / X Premium+, так и с платным XAI_API_KEY, и при наличии обоих вариантов предпочитает OAuth (расходует квоту подписки, а не бюджет API). Схема инструмента скрыта от модели, если учётные данные xAI не настроены — независимо от того, включён ли сам набор инструментов.
Модели
| Инструмент | Модель | Примечания |
|---|---|---|
| Чат | grok-4.6 | По умолчанию; закреплена вверху списка OAuth |
| Чат | grok-build-0.1 | Модель Grok Build, ориентированная на код |
| Чат | grok-4.3 | Предыдущее поколение |
| Чат | grok-4.20-0309-reasoning | Вариант с рассуждениями |
| Чат | grok-4.20-0309-non-reasoning | Вариант без рассуждений |
| Чат | grok-4.20-multi-agent-0309 | Мультиагентный вариант |
| Изображения | grok-imagine-image | По умолчанию; ~5–10 с |
| Изображения | grok-imagine-image-2.0 | С учётом типографики/компоновки; максимальное качество; ~10–20 с |
| Изображения | grok-imagine-image-quality | Более высокое качество; ~10–20 с |
| Видео | grok-imagine-video | Текст в видео |
| Видео | grok-imagine-video-1.5-preview | Изображение в видео; датированный алиас grok-imagine-video-1.5-2026-05-30 |
| TTS | (голос по умолчанию) | Эндпоинт xAI /v1/tts |
Каталог чат-моделей формируется на лету из локального кэша models.dev; новые релизы xAI появляются автоматически после обновления этого кэша. Модель grok-4.6 всегда закреплена в начале списка.
Переменные окружения
| Переменная | Эффект |
|---|---|
XAI_BASE_URL | Переопределяет эндпоинт по умолчанию https://api.x.ai/v1 (нужно редко). |
Чтобы сделать xAI активным провайдером, задайте model.provider: xai-oauth в config.yaml (для пошагового мастера используйте hermes setup) либо передайте --provider xai-oauth для разового запуска.
Решение проблем
Токен истёк — автоматический повторный вход не происходит
Hermes обновляет токен перед каждой сессией, а также реактивно — при получении 401. Если обновление завершается ошибкой invalid_grant (refresh-токен отозван либо аккаунт был заменён), Hermes выводит понятное сообщение о необходимости повторной авторизации вместо падения с ошибкой.
Если сбой обновления окончательный (HTTP 4xx, invalid_grant, отозванный грант и т. п.), Hermes помечает refresh-токен как нерабочий и помещает его в локальный карантин — последующие вызовы пропускают заведомо провальную попытку обновления вместо того, чтобы раз за разом повторять один и тот же 401. Агент один раз показывает сообщение «требуется повторная авторизация» и дальше не вмешивается, пока вы не войдёте снова.
Решение: снова выполните hermes auth add xai-oauth, чтобы начать вход заново. Карантин снимается при следующем успешном обмене токенами.
Истекло время ожидания авторизации
У подтверждения device-кода есть ограниченное окно действия (xAI задаёт expires_in в ответе на запрос device-кода — обычно порядка десятков минут). Если не успеть подтвердить вход, Hermes выдаёт ошибку тайм-аута.
Решение: повторно выполните hermes auth add xai-oauth (или hermes model). Процесс запустится заново.
Вход с удалённого сервера
В SSH-сессиях или контейнерах Hermes вместо открытия браузера выводит ссылку для подтверждения и код пользователя. Откройте эту ссылку в браузере на ноутбуке или в облачной консоли — для xAI Grok OAuth проброс SSH-порта не требуется.
hermes auth add xai-oauth --no-browser
Для провайдеров с loopback-редиректом (Spotify, MCP-серверы) см. OAuth через SSH / удалённые хосты.
HTTP 403 после успешного входа (тариф / доступ)
OAuth-вход в браузере завершён, токены сохранены, но инференс или обновление токена возвращают HTTP 403 с сообщением вида «The caller does not have permission to execute the specified operation».
Это не проблема устаревшего токена — повторный запуск hermes model ничего не изменит. Известны случаи, когда бэкенд xAI ограничивает доступ к OAuth API конкретными тарифами SuperGrok, даже при активной подписке внутри приложения (issue #26847).
Решение: задайте XAI_API_KEY и переключитесь на путь с API-ключом:
export XAI_API_KEY=xai-...
hermes config set model.provider xai
Либо, если нужен именно путь через OAuth, повысьте уровень подписки на x.ai/grok.
Ошибка «No xAI credentials found» во время выполнения
В хранилище авторизации нет записи xai-oauth, и XAI_API_KEY не задан. Либо вы ещё не входили, либо файл с учётными данными был удалён.
Решение: запустите hermes model и выберите провайдера xAI Grok OAuth, либо выполните hermes auth add xai-oauth.
Выход из аккаунта
Чтобы удалить все сохранённые учётные данные xAI Grok OAuth:
hermes auth logout xai-oauth
Это очищает как единственную запись OAuth в auth.json, так и все строки пула учётных данных для xai-oauth. Если нужно удалить только одну запись из пула, используйте hermes auth remove xai-oauth <index|id|label> (список записей можно посмотреть через hermes auth list xai-oauth).
См. также
- OAuth через SSH / удалённые хосты — SSH-туннели для провайдеров с loopback-редиректом (Spotify, MCP); xAI использует device code, и туннель не нужен
- Справочник по AI-провайдерам
- Переменные окружения
- Конфигурация
- Голос и TTS