Представьте: вы хотите написать пост в 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.jsonOAuth-токены — управляется автоматически
.envAPI-ключи
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 внутри Hermesxurl недоступен в 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 активирован без ошибок.

Ссылки

Ссылки