Командная строка Hermes Agent CLI

CLI (интерфейс командной строки) — это наиболее естественный способ взаимодействия с Hermes Agent и самая функционально полная точка входа.

В этой главе систематически описываются три режима работы CLI, управление сессиями, слэш-команды, интерфейс TUI, операции с горячими клавишами и приёмы использования в скриптах.


Три режима запуска

Hermes CLI предоставляет три режима работы: от простых вопросов и ответов до интерактивных сессий и чистого клавиатурного управления, охватывающие разные сценарии использования.

Режим 1: Интерактивная сессия (hermes chat)

Это наиболее часто используемый режим — запуск непрерывной многоходовой сессии диалога.

Запустите интерактивную сессию (используя профиль по умолчанию):

hermes chat

После запуска вы попадаете в интерфейс диалога, приглашение меняется, и после ввода сообщения нажмите Enter для отправки; Agent начинает отвечать:

Находясь в интерактивной сессии, вы можете отправлять несколько сообщений подряд, и Agent будет помнить контекст предыдущего разговора.

Это самый естественный способ использования в повседневной разработке — как будто переписываетесь с коллегой в Slack.

Режим 2: Одноразовый запрос (-q / --query)

Не нужно входить в интерактивную сессию; передайте вопрос напрямую и получите ответ, подходит для скриптов и быстрых запросов.

Пример

# Одноразовый запрос: отправьте вопрос, выйдите после получения ответа
hermes chat -q Напишите функцию быстрой сортировки на Python

# Использование вместе с профилем
coder chat -q "Проверьте стиль кода src/main.py"

# Использование в Shell-скриптах
hermes chat -q "Извлеките строки с ошибками из следующего журнала" < error.log

-qКлючевые особенности режимов:

  • Неинтерактивный; агент немедленно завершает работу после завершения ответа.
  • Возвращает стандартный код выхода, позволяя скриптам определять успех или сбой.
  • Поддерживает конвейеры и перенаправление

Режим 3: терминальный интерфейс TUI (hermes --tui)

TUI (терминальный пользовательский интерфейс) предоставляет полноэкранный терминальный интерфейс с полностью клавиатурным управлением.

Пример

# Запуск режима TUI
hermes --tui

# В режиме TUI:
# Стрелки вверх/вниз: просмотр истории диалога
# Ctrl+N: Новый сеанс
# Ctrl+S: Переключить боковую панель (файлы, история инструментов и т. д.)
# Ctrl+C: Прервать текущую операцию агента
# Начните с /: Ввод слэш-команд

Уникальные преимущества режима TUI:

  • Боковая панель может одновременно отображать беседу, изменения файлов и историю вызовов инструментов.
  • Управление только с клавиатуры, мышь не требуется
  • Подходит для длительных сценариев глубокой работы

Сравнение трёх режимов

ModeКомандаРежим взаимодействияПодходящие сценарии
Интерактивный сеансhermes chatМногошаговый диалог: введите сообщение и дождитесь ответаЕжедневная разработка, сложные задачи
Разовый запросhermes chat -q "..."Одиночный запрос, завершается после ответаНаписание скриптов, быстрые запросы
TUIhermes --tuiПолноэкранное управление с клавиатуры, многопанельный режимГлубокая работа, интенсивная работа с файлами

Управление сессиями

Сессия — это базовая единица разговора в CLI. Каждая сессия имеет собственный независимый контекст, количество токенов и идентификатор сессии.

Продолжение и возобновление сессий

Пример

# Продолжить последнюю сессию (возобновление после прерывания)
hermes --continue
hermes chat --continue

# Восстановить по заголовку сессии (при условии, что она была названа с помощью /title)
hermes -c Рефакторинг модуля аутентификации

# Восстановить точно по ID сессии
hermes -r 20260305_091234_abc12345

При возобновлении сессии Agent сохраняет полный контекст беседы, включая записи предыдущих вызовов инструментов и историю рассуждений LLM.

Начать новый сеанс

Пример

# Используйте слэш-команды в интерактивных сессиях
/новый

# или
/сброс

# Тот же эффект: завершить текущую сессию, начать новую сессию,
# Agent перезагрузит системные промпты и постоянную память

Новые сессии не сохраняют предыдущий контекст беседы, но постоянная память (MEMORY.md и USER.md) остаётся видимой.

Управление заголовками сессий

Hermes автоматически создаёт название сессии после первого раунда беседы; вы также можете задать его вручную:

Пример

# Задать название сессии (для последующего восстановления по названию)
/title Обсуждение плана миграции базы данных

# Просмотреть информацию о текущей сессии (ID, название, использование токенов и т. д.)
/status

Сжатие контекста

Когда история беседы становится слишком длинной и приближается к лимиту окна контекста, вы можете вручную запустить сжатие:

Пример

# Вручную сжать контекст беседы
/compress

# После сжатия старое содержимое суммируется, чтобы освободить место,
# Вы можете продолжать отправлять новые сообщения.
# Автоматическая преемственность при создании сжатой сессии:
# "Миграция базы данных" → "Миграция базы данных #2"

Автоматическое сжатие запускается Hermes, когда контекст приближается к лимиту. /compress просто позволяет запустить его вручную заранее. Оба способа дают одинаковый результат.


Основные слэш-команды

В интерактивном сеансе и режиме TUI, с/Ввод, начинающийся с /, распознается как слэш-команда.

Ниже перечислены наиболее часто используемые команды CLI, сгруппированные по функциям.

Управление сеансом

КомандаОсобенности
/new или /resetНачать новый сеанс
/title <name>Задать заголовок текущего сеанса
/statusПоказывает ID сеанса, заголовок и использование токенов.
/usageПоказывает сведения о расходе токенов за текущий сеанс.
/compressВручную сжать контекст беседы
/resume [название]Восстанавливает ранее именованную сессию

Управление задачами

КомандаОсобенности
/stopПрерывает задачу, которую Agent выполняет в данный момент.
/retryЗаставляет Agent заново сгенерировать предыдущий ответ.
/undoОтменяет предыдущий раунд разговора (удаляет последнюю пару вопросов и ответов).
/background <задача>Запуск задач асинхронно в фоновых сессиях

/undo — это отмена разговора: он удаляет последний раунд вопросов и ответов из истории сессии, возвращая контекст Agent к состоянию перед предыдущим ответом. Это отличается от /retry (который сохраняет исходную пару вопросов и ответов и просит Agent ответить заново).

Модели и конфигурация

КомандаОсобенности
/modelПросмотр текущей используемой модели
/model <name>Переключиться на указанную модель
/model listПоказать список всех доступных моделей
/reload-mcpПерезагрузить конфигурацию сервера MCP

Безопасность и подтверждение

КомандаОсобенности
/yoloВключает режим YOLO, автоматически подтверждая опасные команды в текущем сеансе.
/yoloВведите снова, чтобы отключить режим YOLO
/approveОдобрить операции, ожидающие подтверждения
/denyОтклонить операции, ожидающие подтверждения

Память и навыки

КомандаОсобенности
/memoryПросмотреть текущее содержимое памяти
/memory pendingПросмотреть ожидающие записи в память
/memory approve allОдобрить все ожидающие записи в память
/skillsПоказать все установленные навыки
/skills search <keyword>Поиск локальных и Hub-навыков
/skills install <id>Установка навыков
/<skill-name> [task]Вызвать указанный навык для выполнения задач
/learn <source>Сгенерировать новый навык из документации или описания

Другое

КомандаОсобенности
/checkpoint <tag>Создать контрольную точку файловой системы
/rollback [ID]Показать список или восстановиться до указанной контрольной точки
/cron listПросмотреть список запланированных задач
/cron pause/resume <name>Приостановить или возобновить запланированные задачи
/suggestionsПросматривает предложения агента по автоматизации.
/voice on/off/ttsУправление голосовым режимом
/updateОбновить Hermes до последней версии
/helpПоказать все доступные команды

Быстрые действия и советы

Горячие клавиши

В интерактивном сеансе следующие сочетания клавиш могут повысить эффективность работы:

Горячие клавишиОсобенности
Ctrl+CПрерывает текущий ответ Агента или выполнение инструмента.
Ctrl+DВыйти из интерактивной сессии
Ctrl+LОчистить экран
Ctrl+B (голосовой режим)Удерживайте для записи, отпустите для отправки
стрелка вверхВосстановить предыдущий ввод
ВкладкаАвтодополнение путей к файлам и имён навыков

Многострочный ввод

Когда нужно отправить сообщения, содержащие переносы строк (например, блоки кода):

Пример

# Способ 1: используйте \n для обозначения новой строки
hermes chat -q Проверьте следующий код:\n\ndef hello():\n    print('world')"

# Метод 2: Использование Heredoc (синтаксис Shell)
hermes chat -q "$(cat << 'EOF'
Пожалуйста, проанализируйте этот стек ошибок:

Трассировка (последний вызов последним):
  Файл "
app.py", строка 42, в <module>
    main()
  Файл "
app.py", строка 38, в main
    result = process(data)
TypeError: объект 'NoneType' не является итерируемым

Пожалуйста, предложите исправление.
EOF
)"

Каналы и перенаправление

-qРежим нативно поддерживает стандартные каналы Unix:

Пример

# Передать содержимое файла как контекст Агенту
cat error.log | hermes chat -q "Проанализируйте эти журналы ошибок и найдите первопричину"

# Сохранить ответ Агента в файл
hermes chat -q "Сгенерируйте README.md проекта" > README.md

# Использовать Агента в качестве фильтра в конвейере
cat data.csv | hermes chat -q "Извлеките все адреса электронной почты, по одному в строке" > emails.txt

В сочетании с алиасами команд Profile

Каждый Profile автоматически генерирует специальные алиасы команд, не нужно указывать-pфлаг:

Пример

# Используйте алиас Profile напрямую — кратко и естественно
coder chat -q Отрефакторьте эту функцию
researcher chat -q Найдите последние статьи по Transformer
admin gateway status

# Эквивалентно
hermes -p coder chat -q Отрефакторить эту функцию
hermes -p researcher chat -q Найти последние статьи о Transformer
hermes -p admin gateway status

Подтверждения и средства обеспечения безопасности

Режим подтверждения

При выполнении опасных команд в CLI Hermes отображает запрос на подтверждение:

Agent 请求执行: rm -rf /tmp/build/*
原因: 清理构建缓存
[approve/deny]: _

Вы можете в режиме реального времени в рамках сеанса принять решение: подтвердить или отклонить.

Режим подтверждения настраивается в config.yaml:

Пример

# Путь к файлу: ~/.hermes/config.yaml
approvals
:
  mode
: manual        # manual (по умолчанию, каждая опасная команда требует подтверждения)
                      # smart (интеллектуальное суждение, низкорисковые автоматически подтверждаются)
                      # off (отключить подтверждение, не рекомендуется)
  timeout
: 60         # Количество секунд ожидания подтверждения; автоматически отклонять по истечении тайм-аута

Режим YOLO

Когда вы уверены, что действие Агента безопасно (например, операции в проекте, с которым вы знакомы), вы можете временно пропустить подтверждение:

Пример

# При первом входе в /yolo: включение режима YOLO
# Все команды в текущей сессии автоматически подтверждаются
/yolo

# Агент начинает выполнять операции, запросы на подтверждение больше не появляются...

# Введите /yolo снова, чтобы отключить режим YOLO и возобновить подтверждения.
/yolo

Режим YOLO действует только в текущей сессии; новые сессии автоматически восстанавливают режим подтверждения, настроенный в config.yaml. Это гарантирует, что временное ослабление не станет постоянной уязвимостью.


Использование в скриптах

Использование Hermes в shell-скриптах

-qКоды выхода режима и стандартный вывод позволяют Hermes бесшовно интегрироваться в shell-скрипты:

Пример

#!/bin/bash
# Путь к файлу: scripts/auto-review.sh
# Скрипт автоматической проверки кода — проверяет изменённые файлы Git по одному

# Получить все изменённые файлы Python
changed_files=$(git diff --name-only HEAD~1 | grep '\.py$')

for file in $changed_files; do
    echo === Проверка:$file ==="

    # Используйте Hermes для проверки кода и вывода результатов прямо в терминал
    hermes chat -q "Проверьте стиль кода и потенциальные проблемы следующих файлов Python:
$(cat "$file")

Пожалуйста, укажите обнаруженные проблемы и предложения в виде списка.
2>/dev/null

    # Проверить код выхода
    if [ $? -ne 0 ]; then
        echo "[Предупреждение]$fileВо время процесса проверки произошла ошибка.
    fi

    echo ""
done

Интеграция с Git Hooks

Ниже приведён пример Git pre-commit hook, позволяющий Agent проверять код перед коммитом.

Пример

#!/bin/bash
# Путь к файлу: .git/hooks/pre-commit
# Git pre-commit hook: Agent проверяет код перед коммитом

# Получить список файлов, изменённых в области подготовки
staged_files=$(git diff --cached --name-only)

if [ -z "$staged_files" ]; then
    exit 0
fi

echo "Hermes Agent проверяет изменения кода..."

# Попросить Agent проверить подготовленные изменения
result=$(hermes chat -q "Проверьте следующие изменения кода в области подготовки Git,\
Сообщайте только о критических проблемах (уязвимости безопасности, логические ошибки, ломающие изменения).\
Если серьёзных проблем нет, ответьте PASS.\
\
Изменённые файлы:\n$staged_files\n\
Подробный diff:\n$(git diff --cached)"
2>/dev/null)

echo "$result"

# Если Агент обнаружит серьёзную проблему, заблокировать коммит
if echo "$result" | grep -q "PASS"; then
    echo "Одобрено"
    exit 0
else
    echo ""
    echo "Агент обнаружил проблемы, требующие внимания."
    echo Если подтверждено, что всё верно, используйте git commit --no-verify, чтобы пропустить эту проверку.
    exit 1
fi

Запланированное выполнение

В сочетании с системным cron или встроенной системой Cron Hermes задачи CLI можно выполнять периодически — но рекомендуется использовать встроенный Cron Hermes (черезhermes cron create), потому что она может напрямую доставлять результаты на платформу обмена сообщениями.

Другие расширения