Представьте: вы хотите написать пост в X, но не открывать браузер, не кликать кнопки, не копировать текст в веб-интерфейс. Вы просто пишете в терминале «опубликуй вот это» — и пост улетает. Или просите «собери мои закладки и сделай краткую выжимку» — и получаете структурированный список вместо сырого JSON на тысячу строк.
Это не фантазия, а рабочая связка двух инструментов. Hermes — open-source агент от Nous Research, который живёт в терминале и понимает запросы обычным языком. xurl — отдельная CLI-утилита для работы с X API, которая умеет публиковать, искать, собирать закладки, лайкать, цитировать и управлять списками. Соединив их, вы получаете агента, который выступает переводчиком между вашим запросом и API социальной сети.
Разница между ручным вызовом X API и связкой через Hermes — как между набором номера телефона и фразой «позвони маме». Агент снимает с вас знание синтаксиса, аргументов и форматов ответа.
Технически это выглядит так: Hermes загружает навык /xurl, вы формулируете задачу словами, агент преобразует её в команду xurl, выполняет и возвращает результат в читаемом виде. Вам не нужно помнить ни один флаг или эндпоинт.
Что это
Hermes — open-source ИИ-агент от Nous Research, работающий в терминале. xurl — отдельная CLI-утилита для X API. Вместе они позволяют управлять аккаунтом X через естественный язык: публиковать посты, искать, собирать закладки, управлять списками — без ручного вызова API-эндпоинтов.
Зачем нужно
Обычный путь работы с X API — это программирование. Регистрация приложения, получение OAuth-токенов, написание скриптов для каждого действия, парсинг JSON-ответов. Для разовой публикации поста или сбора закладок это избыточно.
Связка Hermes + xurl убирает этот слой. Вы спрашиваете агента «найди посты по такой-то теме и суммаризируй» — и получаете результат в одном диалоге. Никакого кода.
Где это полезно на практике:
- Публикация из терминала — без переключения контекста на вкладку браузера.
- Массовый сбор и анализ данных — закладки, лента, поисковые результаты с суммаризацией через агента.
- Цепочки действий в одном запросе — найти посты, сделать выжимку, составить ответ, опубликовать.
- Управление списками и подписками — через естественный язык.
- Интеграция в агентские сценарии — совместно с веб-поиском, генерацией изображений и другими инструментами Hermes.
Как устроено
Архитектура проста: Hermes — оркестратор, xurl — инструмент. Навык /xurl загружается в сессию агента и работает как мост между текстом пользователя и CLI-командой.
Что нужно для старта
- macOS или Linux
- Терминал — iTerm2, Ghostty, стандартный Terminal, любой другой
- Активная подписка SuperGrok — регистрация на x.ai/grok
- Приложение разработчика X с учётными данными OAuth 2.0 — создаётся в консоли разработчика X
- Опционально: API-ключ xAI, если возникнут ограничения по уровню доступа при OAuth
Шаг 1. Установка Hermes
Самый быстрый путь — десктоп-приложение Hermes Desktop для macOS и Windows: установщик скачивается с официального сайта проекта.
Если нужен только CLI, установка делается одной командой.
macOS и Linux:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
Windows (PowerShell):
irm https://hermes-agent.nousresearch.com/install.ps1 | iex
Установщик добавляет Hermes в PATH. После завершения достаточно запустить hermes — мастер настройки запустится автоматически.
Шаг 2. Настройка провайдера и модели
При первом запуске Hermes проводит через конфигурацию. Если нужно вернуться к мастеру позже — команда hermes setup.
Самый быстрый старт — hermes setup —portal. Один вход через Nous Portal подключает и модель, и все инструменты Tool Gateway: веб-поиск, генерацию изображений, TTS, браузер. Если предпочитаете использовать подписку SuperGrok напрямую — идите путём xAI Grok OAuth.
Мастер предлагает два режима:
- Quick setup — провайдер, модель и мессенджеры. Покрывает три основных момента, остальное по умолчанию.
- Full setup — ручная настройка всех параметров.
Для большинства задач достаточно Quick setup.
Hermes поддерживает длинный список провайдеров. Для работы с моделями Grok через подписку SuperGrok выбирается xAI Grok OAuth.
Что происходит при выборе xAI Grok OAuth:
- Hermes открывает браузер на странице авторизации x.ai
- Вы входите в аккаунт X, привязанный к подписке SuperGrok
- Подтверждаете запрашиваемые разрешения
- Hermes получает токены через локальный callback и сохраняет их в ~/.hermes/auth.json
- Токены обновляются автоматически в фоновом режиме
После выбора провайдера Hermes загружает список доступных моделей и предлагает выбрать одну. Изменить модель позже можно командой hermes setup model.
Опционально мастер предлагает настроить мессенджеры — Telegram или Discord. Если не нужно сейчас, пропустите: вернуться можно в любой момент через hermes setup gateway.
По завершении мастер показывает итог и отчёт о доступности инструментов — какие категории активны, а какие требуют дополнительных API-ключей.
Шаг 3. Установка xurl
xurl — отдельный CLI для X API. Hermes использует его под капотом, но устанавливается он независимо. Четыре способа на выбор.
Shell-скрипт — без sudo, ставится в ~/.local/bin:
curl -fsSL https://raw.githubusercontent.com/xdevplatform/xurl/main/install.sh | bash
Homebrew (macOS):
brew install --cask xdevplatform/tap/xurl
npm — требуется Node.js:
npm install -g @xdevplatform/xurl
Go — требуется установленный Go:
go install github.com/xdevplatform/xurl@latest
Если ставили через shell-скрипт, проверьте, что ~/.local/bin есть в PATH. Иначе Hermes не найдёт xurl. Добавьте строку export PATH=“$HOME/.local/bin:$PATH” в ~/.zshrc и выполните source ~/.zshrc.
Проверка установки:
xurl --help
Шаг 4. Аутентификация xurl в X API
xurl работает с OAuth 2.0. Эту настройку нужно делать в обычном терминале — не внутри сессии Hermes.
Создание приложения в консоли разработчика X
Перейдите на портал разработчика X. Создайте новое приложение или используйте существующее. В разделе User authentication settings укажите redirect URI:
http://localhost:8080/callback
Скопируйте Client ID и Client Secret — они понадобятся на следующем шаге.
Регистрация приложения в xurl
xurl auth apps add my-app \
--client-id YOUR_CLIENT_ID \
--client-secret YOUR_CLIENT_SECRET
OAuth-поток
xurl auth oauth2 --app my-app
Браузер откроется автоматически. Авторизуйте приложение вашим аккаунтом X.
Обязательно указывайте флаг —app my-app. Без него токен сохранится в профиль по умолчанию, а не в приложение с вашими client credentials. Последующие вызовы будут падать с 401. Актуальные версии xurl предупреждают об этом, но лучше не полагаться на предупреждение.
Если нужно привязать конкретный username после аутентификации:
xurl auth oauth2 --app my-app YOUR_USERNAME
Проверка
xurl auth default my-app
xurl auth status
xurl whoami
Команда xurl whoami должна вернуть ваш username в X. Если это так — всё настроено.
Шаг 5. Запуск Hermes
Запустите сессию чата:
hermes
Если Hermes предложит запуститься после настройки — введите Y. Внутри введите /help, чтобы увидеть список команд. В списке будет /xurl — это нужный навык.
Когда использовать
- Регулярная публикация в X из терминала без переключения на веб-интерфейс
- Сбор и анализ данных: закладки, лента, поисковые результаты — с суммаризацией через агента
- Автоматизация рутинных действий: лайки, ответы, цитирование, управление списками
- Построение агентских сценариев, где X — один из источников информации наряду с веб-поиском и другими инструментами
- Прототипирование ботов и автоматизаций на базе X API без написания кода
Пример
Введите /xurl в чате Hermes. Агент проверит, что xurl установлен и аутентифицирован. Далее просто говорите, что нужно сделать, на обычном языке.
Публикация
Запрос:
post "Hello from Hermes"
Hermes выполнит xurl post “Hello from Hermes” и вернёт результат:
Posted successfully! Your new post:
- ID: 2047107136023650625
- Text: "Hello from Hermes"
- Link: https://x.com/yourhandle/status/2047107136023650625
Сбор закладок
Запрос:
get all of my bookmarks
Hermes выполнит xurl bookmarks -n 100 и выдаёт понятный список — с метриками, типами медиа и именами пользователей — вместо сырого JSON.
Полная поверхность X API
Навык xurl даёт доступ ко всей поверхности X API. Вот что можно делать через Hermes:
| Действие | Пример запроса |
|---|---|
| Поиск постов | search for posts about Hermes AI |
| Профиль пользователя | look up @elonmusk |
| Ответ на пост | reply to post 2047107136023650625 with ‘great thread’ |
| Цитирование поста | quote post 2047107136023650625 with my thoughts |
| Лайк / анлайк | like post 2047107136023650625 |
| Управление закладками | unbookmark 2047107136023650625 |
| Лента | show my latest timeline |
| Пост с медиа | post this image with the caption ‘sunset’ |
Поскольку Hermes — агент, можно выстраивать цепочки действий в диалоге. Попросите его найти посты по теме, суммаризировать их и составить ответ — всё за один запрос. Это и есть разница между «вызвать API» и «поработать с агентом».
Конфигурация Hermes
Все настройки хранятся в ~/.hermes/:
| Файл / директория | Назначение |
|---|---|
| config.yaml | Основные настройки — модель, провайдер, поведение агента |
| auth.json | OAuth-токены — управляется автоматически |
| .env | API-ключи |
| cron/ | Запланированные задачи |
| sessions/ | История чатов |
| logs/ | Логи |
Полезные команды:
hermes setup # Перезапуск мастера настройки
hermes setup model # Смена модели или провайдера
hermes setup gateway # Настройка мессенджеров
hermes setup tools # Настройка провайдеров инструментов
hermes config # Просмотр текущих настроек
hermes config edit # Открыть конфиг в редакторе
hermes doctor # Диагностика проблем
hermes model # Быстрая смена модели
hermes auth add xai-oauth # Ручной OAuth-вход
hermes auth list # Просмотр учётных данных
hermes auth logout xai-oauth # Удаление OAuth-учётных данных
Решение проблем
| Проблема | Решение |
|---|---|
| xurl: command not found внутри Hermes | xurl недоступен в PATH. Добавьте ~/.local/bin в PATH и перезапустите Hermes. |
| OAuth-поток не завершается | Проверьте redirect URI — должен быть ровно http://localhost:8080/callback. Убедитесь, что порт 8080 свободен. |
| OAuth проходит, но API-вызовы падают с 401 | Аутентификация прошла не через то приложение. Повторите xurl auth oauth2 —app my-app, затем xurl auth default my-app. Проверьте xurl auth status. |
| OAuth проходит, но xurl whoami падает с client-not-enrolled | Это не баг xurl, а enrollment приложения в X. В консоли разработчика: Apps, Manage apps, откройте приложение, Move to package, Pay-per-use, окружение Production. |
| API-ключ содержит не-ASCII символы | Скопируйте ключ заново из дашборда провайдера — без форматирования. |
| xurl auth status: нет активной сессии | Повторите xurl auth oauth2 —app my-app, затем xurl auth default my-app. |
Ограничения
Ограничения
Что учитывать
Связка зависит от нескольких внешних компонентов, каждый из которых может стать точкой отказа.
Подписка SuperGrok — модель Grok работает через OAuth-вход в аккаунт x.ai.
Без активной подписки провайдер xAI Grok OAuth недоступен.
Регистрация приложения — необходима для получения Client ID и Client Secret.
Без этого xurl не сможет аутентифицироваться.
Порт 8080 — OAuth-поток xurl использует локальный callback на этом порту.
Если занят — аутентификация не завершится.
Автообновление токенов — Hermes хранит OAuth-токены в ~/.hermes/auth.json и обновляет в фоне.
При истечении сессии xurl требуется ручная реаутентификация.
Enrollment приложения — даже после OAuth приложение должно быть переведено в Production с тарифом Pay-per-use.
Без этого вызовы падают с client-not-enrolled.
Антипаттерны
Антипаттерны
Пропускать —app — токен сохранится в профиль по умолчанию, вызовы будут падать с 401.
Всегда: xurl auth oauth2 —app my-app.
Оставлять приложение в Free/Trial — X API требует Pay-per-use и Production.
Без этого xurl whoami и чтение /2/ возвращают client-forbidden.
Копировать ключи из PDF — не-ASCII символы ломают аутентификацию.
Берите ключи только из дашборда.
Настраивать xurl внутри Hermes — аутентификация делается в обычном терминале.
Hermes загружает уже настроенный xurl.
Забывать про PATH — скрипт ставит в ~/.local/bin, которого может не быть в PATH.
Добавьте и перезапустите терминал.
Чеклист
Чеклист
Hermes установлен
— hermes открывает мастер настройки или сессию.
xAI Grok OAuth настроен
— hermes auth list показывает активные учётные данные.
Модель выбрана
— hermes config отображает текущую модель.
xurl установлен
— xurl —help работает без ошибок.
Приложение X создано
— Client ID и Client Secret скопированы, redirect URI указан.
xurl аутентифицирован
— xurl auth status показывает сессию, xurl whoami возвращает username.
Production с Pay-per-use
— приложение переведено в консоли разработчика X.
Навык загружен
— /xurl в чате Hermes активирован без ошибок.
Ссылки
Ссылки
- Сайт: Hermes Agent
- Репозиторий: xurl на GitHub
- Сайт: X Developer Portal
- Сайт: xAI / Grok