Командная строка 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 (терминальный пользовательский интерфейс) предоставляет полноэкранный терминальный интерфейс с полностью клавиатурным управлением.
Пример
hermes --tui
# В режиме TUI:
# Стрелки вверх/вниз: просмотр истории диалога
# Ctrl+N: Новый сеанс
# Ctrl+S: Переключить боковую панель (файлы, история инструментов и т. д.)
# Ctrl+C: Прервать текущую операцию агента
# Начните с /: Ввод слэш-команд
Уникальные преимущества режима TUI:
- Боковая панель может одновременно отображать беседу, изменения файлов и историю вызовов инструментов.
- Управление только с клавиатуры, мышь не требуется
- Подходит для длительных сценариев глубокой работы
Сравнение трёх режимов
| Mode | Команда | Режим взаимодействия | Подходящие сценарии |
|---|---|---|---|
| Интерактивный сеанс | hermes chat | Многошаговый диалог: введите сообщение и дождитесь ответа | Ежедневная разработка, сложные задачи |
| Разовый запрос | hermes chat -q "..." | Одиночный запрос, завершается после ответа | Написание скриптов, быстрые запросы |
| TUI | hermes --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 (голосовой режим) | Удерживайте для записи, отпустите для отправки |
| стрелка вверх | Восстановить предыдущий ввод |
| Вкладка | Автодополнение путей к файлам и имён навыков |
Многострочный ввод
Когда нужно отправить сообщения, содержащие переносы строк (например, блоки кода):
Пример
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флаг:
Пример
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:
Пример
approvals:
mode: manual # manual (по умолчанию, каждая опасная команда требует подтверждения)
# smart (интеллектуальное суждение, низкорисковые автоматически подтверждаются)
# off (отключить подтверждение, не рекомендуется)
timeout: 60 # Количество секунд ожидания подтверждения; автоматически отклонять по истечении тайм-аута
Режим YOLO
Когда вы уверены, что действие Агента безопасно (например, операции в проекте, с которым вы знакомы), вы можете временно пропустить подтверждение:
Пример
# Все команды в текущей сессии автоматически подтверждаются
/yolo
# Агент начинает выполнять операции, запросы на подтверждение больше не появляются...
# Введите /yolo снова, чтобы отключить режим YOLO и возобновить подтверждения.
/yolo
Режим YOLO действует только в текущей сессии; новые сессии автоматически восстанавливают режим подтверждения, настроенный в config.yaml. Это гарантирует, что временное ослабление не станет постоянной уязвимостью.
Использование в скриптах
Использование Hermes в shell-скриптах
-qКоды выхода режима и стандартный вывод позволяют Hermes бесшовно интегрироваться в shell-скрипты:
Пример
# Путь к файлу: 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 проверять код перед коммитом.
Пример
# Путь к файлу: .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), потому что она может напрямую доставлять результаты на платформу обмена сообщениями.