xAI Grok OAuth (SuperGrok / X Premium+)
VibeOS поддерживает xAI Grok через браузерный OAuth-логин на accounts.x.ai, используя либо подписку SuperGrok (grok.com), либо подписку X Premium+ (привязанный аккаунт X). XAI_API_KEY не требуется — войдите один раз, и VibeOS автоматически обновляет вашу сессию в фоне.
Когда вы входите с аккаунтом X, имеющим Premium+, xAI автоматически связывает статус подписки с вашей сессией xAI, поэтому OAuth-поток работает так же, как и для прямых подписчиков SuperGrok.
Транспорт использует адаптер codex_responses (xAI предоставляет endpoint в стиле Responses), поэтому рассуждения, вызов инструментов, стриминг и кэширование подсказок работают без изменений адаптера.
Тот же OAuth-токен также используется всеми прямыми поверхностями xAI в VibeOS — TTS, генерацией изображений, генерацией видео и транскрибацией — так что один логин покрывает все четыре.
Обзор
| Пункт | Значение |
|---|---|
| ID провайдера | xai-oauth |
| Отображаемое имя | xAI Grok OAuth (SuperGrok / X Premium+) |
| Тип аутентификации | Браузерный OAuth 2.0 PKCE (loopback callback) |
| Транспорт | xAI Responses API (codex_responses) |
| Модель по умолчанию | grok-build-0.1 |
| Endpoint | https://api.x.ai/v1 |
| Сервер аутентификации | https://accounts.x.ai |
| Требует переменную окружения | Нет (XAI_API_KEY не используется для этого провайдера) |
| Подписка | SuperGrok или X Premium+ — см. примечание ниже |
Предварительные требования
- Python 3.9+
- Установленный VibeOS
- Активная подписка SuperGrok на вашем аккаунте xAI или подписка X Premium+ на аккаунте X, с которым вы входите (xAI связывает подписку автоматически)
- Браузер, доступный на локальной машине (или используйте
--no-browserдля удаленных сессий)
Бэкенд xAI применяет собственный список разрешений для OAuth API и, как было замечено, отклоняет запросы от обычных подписчиков SuperGrok с HTTP 403 (см. issue #26847), даже если подписка в приложении активна. Если OAuth-логин в браузере прошел успешно, но инференс возвращает 403, установите XAI_API_KEY и переключитесь на путь с API-ключом (provider: xai) — эта поверхность сегодня не подвержена такому ограничению.
Быстрый старт
# Запустите выбор провайдера и модели
vibeos model
# → Выберите "xAI Grok OAuth (SuperGrok / X Premium+)" из списка провайдеров
# → VibeOS откроет ваш браузер на accounts.x.ai
# → Подтвердите доступ в браузере
# → Выберите модель (grok-build-0.1 вверху списка)
# → Начинайте чат
vibeos
После первого входа учетные данные сохраняются в ~/.vibeos/auth.json и автоматически обновляются до истечения срока действия.
Ручной вход
Вы можете запустить вход, не проходя через выбор модели:
vibeos auth add xai-oauth
Удаленные / headless сессии
На серверах, в контейнерах или SSH-сессиях, где нет доступного браузера, VibeOS определяет удаленное окружение и выводит URL авторизации вместо открытия браузера.
Важно: loopback-слушатель все еще работает на удаленной машине по адресу 127.0.0.1:56121. Перенаправление xAI должно достичь этого слушателя, поэтому открытие URL на вашем ноутбуке не сработает (Could not establish connection. We couldn't reach your app.), если вы не пробросите порт:
# В отдельном терминале на вашей локальной машине:
ssh -N -L 56121:127.0.0.1:56121 user@remote-host
# Затем в вашей SSH-сессии на удаленной машине:
vibeos auth add xai-oauth --no-browser
# Откройте выведенный URL авторизации в вашем локальном браузере.
Через шлюз / bastion: добавьте -J jump-user@jump-host.
См. OAuth через SSH / Удаленные хосты для полной пошаговой инструкции, включая цепочки ProxyJump, mosh/tmux и особенности ControlMaster.
Только браузерные удаленные среды (Cloud Shell, Codespaces, EC2 Instance Connect)
Если у вас нет обычного SSH-клиента (например, вы запускаете VibeOS внутри GCP Cloud Shell, GitHub Codespaces, AWS EC2 Instance Connect, Gitpod или другой браузерной консоли), рецепт с ssh -L выше недоступен. Вместо этого используйте --manual-paste — VibeOS пропускает loopback-слушатель и позволяет вставить URL обратного вызова, который не сработал, прямо из вашего браузера:
vibeos auth add xai-oauth --manual-paste
# Или через выбор модели:
vibeos model --manual-paste
См. OAuth через SSH / Удаленные хосты для полного руководства. Исправление регрессии для #26923.
Если страница согласия отображает код авторизации непосредственно на странице (текущее поведение xAI в браузерных консолях) вместо перенаправления на ваш 127.0.0.1:56121/callback, вставьте только значение кода в ответ на приглашение Callback URL: — VibeOS принимает полный URL, фрагмент запроса вида ?code=...&state=... или просто код.
Как работает вход
- VibeOS открывает ваш браузер на
accounts.x.ai. - Вы входите (или подтверждаете существующую сессию) и подтверждаете доступ.
- xAI перенаправляет обратно в VibeOS, и токены сохраняются в
~/.vibeos/auth.json. - После этого VibeOS обновляет токен доступа в фоне — вы остаетесь в системе, пока не выполните
vibeos auth logout xai-oauthили не отзовете доступ в настройках вашего аккаунта xAI.
Проверка статуса входа
vibeos doctor
Раздел ◆ Auth Providers покажет текущее состояние каждого провайдера, включая xai-oauth.
Переключение моделей
vibeos model
# → Выберите "xAI Grok OAuth (SuperGrok / X Premium+)"
# → Выберите из списка моделей (grok-build-0.1 закреплена вверху)
Или установите модель напрямую:
vibeos config set model.default grok-build-0.1
vibeos config set model.provider xai-oauth
Справочник по конфигурации
После входа ~/.vibeos/config.yaml будет содержать:
model:
default: grok-build-0.1
provider: xai-oauth
base_url: https://api.x.ai/v1
Псевдонимы провайдера
Все следующие варианты разрешаются в xai-oauth:
vibeos --provider xai-oauth # канонический
vibeos --provider grok-oauth # псевдоним
vibeos --provider x-ai-oauth # псевдоним
vibeos --provider xai-grok-oauth # псевдоним
Инструменты прямого доступа к xAI (TTS / Изображения / Видео / Транскрибация / Поиск X)
После входа через OAuth каждый инструмент прямого доступа к xAI автоматически использует тот же токен — дополнительная настройка не требуется, если вы не хотите использовать API-ключ.
Чтобы выбрать бэкенд для каждого инструмента:
vibeos tools
# → Text-to-Speech → "xAI TTS"
# → Image Generation → "xAI Grok Imagine (image)"
# → Video Generation → "xAI Grok Imagine"
# → X (Twitter) Search → "xAI Grok OAuth (SuperGrok / X Premium+)"
Если OAuth-токены уже сохранены, выбор подтверждает это и пропускает запрос учетных данных. Если не установлены ни OAuth, ни XAI_API_KEY, выбор предлагает меню из 3 вариантов: OAuth-логин, вставить API-ключ или пропустить.
Набор инструментов video_gen отключен по умолчанию. Включите его в vibeos tools → 🎬 Video Generation (нажмите пробел), прежде чем агент сможет вызвать video_generate. В противном случае агент может вернуться к встроенному навыку ComfyUI, который также помечен для генерации видео.
Набор инструментов x_search автоматически включается, когда настроены учетные данные xAI (токен OAuth SuperGrok / X Premium+ или XAI_API_KEY). Отключите явно через vibeos tools → 🐦 X (Twitter) Search (нажмите пробел), если это не нужно. Инструмент маршрутизируется через встроенный xAI Responses API x_search — он работает как с вашим OAuth-логином SuperGrok / X Premium+, так и с платным XAI_API_KEY, и предпочитает OAuth, когда настроены оба (использует квоту подписки вместо расхода API). Схема инструмента скрыта от модели, когда учетные данные xAI не настроены, независимо от того, включен ли набор инструментов.
Модели
| Инструмент | Модель | Примечания |
|---|---|---|
| Чат | grok-build-0.1 | По умолчанию; выбирается автоматически при входе через OAuth |
| Чат | 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-quality | Более высокое качество; ~10–20 с |
| Видео | grok-imagine-video | Текст-в-видео |
| Видео | grok-imagine-video-1.5-preview | Изображение-в-видео; устаревший псевдоним grok-imagine-video-1.5-2026-05-30 |
| TTS | (голос по умолчанию) | xAI endpoint /v1/tts |
Каталог чатов формируется в реальном времени из кэша models.dev на диске; новые релизы xAI появляются автоматически после обновления кэша. grok-build-0.1 всегда закреплен вверху списка.
Переменные окружения
| Переменная | Эффект |
|---|---|
XAI_BASE_URL | Переопределяет endpoint по умолчанию https://api.x.ai/v1 (требуется редко). |
Чтобы выбрать xAI в качестве активного провайдера, установите model.provider: xai-oauth в config.yaml (используйте vibeos setup для интерактивного режима) или передайте --provider xai-oauth для однократного вызова.
Устранение неполадок
Срок действия токена истек — автоматический повторный вход не выполняется
VibeOS обновляет токен перед каждой сессией и повторно при получении 401. Если обновление не удается с ошибкой invalid_grant (токен обновления был отозван или аккаунт был изменен), VibeOS выводит типизированное сообщение о повторной аутентификации вместо аварийного завершения.
Когда сбой обновления является фатальным (HTTP 4xx, invalid_grant, отозванный грант и т.д.), VibeOS помечает токен обновления как недействительный и помещает его в карантин локально — последующие вызовы пропускают обреченную попытку обновления вместо повторения той же ошибки 401. Агент выводит одно сообщение «требуется повторная аутентификация» и не мешает, пока вы не войдете снова.
Исправление: выполните vibeos auth add xai-oauth снова, чтобы начать новый вход. Карантин снимается при следующем успешном обмене.
Время авторизации истекло
Loopback-слушатель имеет ограниченное окно действия (по умолчанию 180 с). Если вы не подтвердите вход вовремя, VibeOS выдаст ошибку тайм-аута.
Исправление: повторно выполните vibeos auth add xai-oauth (или vibeos model). Поток начнется заново.
Несоответствие state (возможная CSRF)
VibeOS обнаружил, что значение state, возвращенное сервером авторизации, не соответствует отправленному.
Исправление: повторите вход. Если проблема сохраняется, проверьте наличие прокси или перенаправления, изменяющего OAuth-ответ.
Вход с удаленного сервера
В SSH-сессиях или контейнерах VibeOS выводит URL авторизации вместо открытия браузера. Loopback-слушатель обратного вызова все еще привязывается к 127.0.0.1:56121 на удаленном хосте — браузер вашего ноутбука не может до него добраться без SSH-проброса порта:
# Локальная машина, отдельный терминал:
ssh -N -L 56121:127.0.0.1:56121 user@remote-host
# Удаленная машина:
vibeos auth add xai-oauth --no-browser
Полное руководство (шлюзы, mosh/tmux, конфликты портов): OAuth через SSH / Удаленные хосты.
HTTP 403 после успешного входа (уровень / права)
OAuth завершен в браузере, токены сохранены, но инференс или обновление токена возвращает HTTP 403 с сообщением вроде «The caller does not have permission to execute the specified operation».
Это не проблема устаревшего токена — повторный запуск vibeos model ничего не изменит. Бэкенд xAI, как было замечено, ограничивает доступ к OAuth API для определенных уровней SuperGrok, несмотря на активную подписку в приложении (issue #26847).
Исправление: установите XAI_API_KEY и переключитесь на путь с API-ключом:
export XAI_API_KEY=xai-...
vibeos config set model.provider xai
Или обновите подписку на x.ai/grok, если требуется OAuth-маршрут.
Ошибка «No xAI credentials found» во время выполнения
В хранилище аутентификации нет записи xai-oauth и не установлен XAI_API_KEY. Вы еще не вошли, или файл учетных данных был удален.
Исправление: выполните vibeos model и выберите провайдера xAI Grok OAuth, или выполните vibeos auth add xai-oauth.
Выход из системы
Чтобы удалить все сохраненные учетные данные xAI Grok OAuth:
vibeos auth logout xai-oauth
Это очищает как единственную запись OAuth в auth.json, так и все строки пула учетных данных для xai-oauth. Используйте vibeos auth remove xai-oauth <index|id|label>, если вы хотите удалить только одну запись пула (выполните vibeos auth list xai-oauth, чтобы увидеть их).
Смотрите также
- OAuth через SSH / Удаленные хосты — обязательное чтение, если VibeOS находится на другой машине, чем ваш браузер
- Справочник AI-провайдеров
- Переменные окружения
- Конфигурация
- Голос и TTS