Перейти к содержанию

CLI

На этой странице

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

tip Hermes также поставляется с современным TUI, поддерживающим модальные наложения, выделение мышью и неблокирующий ввод. Запустите его командой hermes --tui — см. руководство по TUI.

Запуск CLI

[code] # Запуск интерактивной сессии (по умолчанию) hermes

# Однократный запрос (неинтерактивный режим)
hermes chat -q "Hello"

# С указанием конкретной модели
hermes chat --model "anthropic/claude-sonnet-4"

# С указанием конкретного провайдера
hermes chat --provider nous        # Использовать Nous Portal
hermes chat --provider openrouter  # Принудительно OpenRouter

# С конкретными наборами инструментов
hermes chat --toolsets "web,terminal,skills"

# Запуск с одним или несколькими предзагруженными навыками
hermes -s hermes-agent-dev,github-auth
hermes chat -s github-pr-workflow -q "open a draft PR"

# Возобновление предыдущих сессий
hermes --continue             # Возобновить последнюю CLI-сессию (-c)
hermes --resume <session_id>  # Возобновить конкретную сессию по ID (-r)

# Подробный режим (отладочный вывод)
hermes chat --verbose

# Изолированная git-рабочая директория (для параллельного запуска нескольких агентов)
hermes -w                         # Интерактивный режим в рабочей директории
hermes -w -q "Fix issue #123"     # Однократный запрос в рабочей директории

[/code]

Компоновка интерфейса

Стилизованный предварительный просмотр компоновки CLI Hermes, показывающий баннер, область разговора и фиксированное приглашение ввода.

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

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

Строка состояния

Постоянная строка состояния находится над областью ввода и обновляется в реальном времени:

[code] ⚕ claude-sonnet-4-20250514 │ 12.4K/200K │ [██████░░░░] 6% │ $0.06 │ 15m

[/code]

Элемент Описание
Имя модели Текущая модель (обрезается, если длиннее 26 символов)
Счётчик токенов Использовано токенов контекста / максимальный размер контекста
Полоса контекста Визуальный индикатор заполнения с цветовой маркировкой порогов
Стоимость Оценочная стоимость сессии (или n/a для неизвестных/бесплатных моделей)
Длительность Прошедшее время сессии

Строка адаптируется к ширине терминала — полная компоновка при ≥ 76 столбцах, компактная при 52–75, минимальная (только модель + длительность) при менее 52.

Цветовая маркировка контекста:

Цвет Порог Значение
Зелёный < 50% Достаточно места
Жёлтый 50–80% Заполняется
Оранжевый 80–95% Приближается к лимиту
Красный ≥ 95% Почти переполнение — рассмотрите /compress

Используйте /usage для детальной разбивки, включая стоимость по категориям (входные и выходные токены).

Отображение возобновления сессии

При возобновлении предыдущей сессии (hermes -c или hermes --resume <id>) панель "Предыдущий разговор" появляется между баннером и приглашением ввода, показывая компактный обзор истории разговора. Подробности и настройку см. в разделе Sessions — Conversation Recap on Resume.

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

Клавиша Действие
Enter Отправить сообщение
Alt+Enter или Ctrl+J Новая строка (многострочный ввод)
Alt+V Вставить изображение из буфера обмена, если терминал поддерживает
Ctrl+V Вставить текст и при возможности прикрепить изображения из буфера обмена
Ctrl+B Начать/остановить запись голоса, если включён голосовой режим (voice.record_key, по умолчанию: ctrl+b)
Ctrl+G Открыть текущий буфер ввода в $EDITOR (vim/nvim/nano/VS Code и т.д.). Сохраните и выйдите, чтобы отправить отредактированный текст как следующий запрос — идеально для длинных многоабзацных запросов.
Ctrl+X Ctrl+E Альтернативная привязка в стиле Emacs для внешнего редактора (то же поведение, что и Ctrl+G).
Ctrl+C Прервать агента (двойное нажатие в течение 2 с для принудительного выхода)
Ctrl+D Выйти
Ctrl+Z Приостановить Hermes в фоновый режим (только Unix). Выполните fg в оболочке, чтобы возобновить.
Tab Принять автопредложение (текст-призрак) или автодополнить слэш-команды

Предварительный просмотр многострочной вставки. При вставке многострочного блока CLI выводит компактный однострочный предварительный просмотр ([вставлено: 47 строк, 1,842 символа — нажмите Enter для отправки]) вместо того, чтобы сбрасывать весь текст в буфер прокрутки. Отправляется всё полное содержимое; это просто косметическое улучшение отображения.

Удаление разметки в финальных ответах. CLI удаляет наиболее объёмные markdown-ограничители и обёртки **bold** / *italic* из финальных ответов агента, чтобы они отображались как читаемый терминальный текст, а не как исходный код. Блоки кода и списки сохраняются. Это не влияет на платформы шлюза или результаты инструментов — они сохраняют свою разметку для нативного отображения.

Слэш-команды

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

Распространённые примеры:

Команда Описание
/help Показать справку по командам
/model Показать или сменить текущую модель
/tools Список доступных инструментов
/skills browse Просмотреть центр навыков и официальные дополнительные навыки
/background <prompt> Запустить запрос в отдельной фоновой сессии
/skin Показать или сменить активную тему CLI
/voice on Включить голосовой режим CLI (нажмите Ctrl+B для записи)
/voice tts Включить/выключить голосовое воспроизведение ответов Hermes
/reasoning high Увеличить уровень рассуждений
/title My Session Назвать текущую сессию

Полный список встроенных CLI-команд и команд для мессенджеров см. в Slash Commands Reference.

Настройку, провайдеров, настройку тишины и использование голоса в мессенджерах/Discord см. в Voice Mode.

tip Команды не чувствительны к регистру — /HELLO работает так же, как /help. Установленные навыки также автоматически становятся слэш-командами.

Быстрые команды

Вы можете определять пользовательские команды, которые выполняют shell-команды мгновенно, без обращения к LLM. Они работают как в CLI, так и на платформах обмена сообщениями (Telegram, Discord и т.д.).

[code] # ~/.hermes/config.yaml quick_commands: status: type: exec command: systemctl status hermes-agent gpu: type: exec command: nvidia-smi --query-gpu=utilization.gpu,memory.used --format=csv,noheader restart: type: alias target: /gateway restart

[/code]

Затем введите /status, /gpu или /restart в любом чате. Другие примеры см. в Configuration guide.

Предзагрузка навыков при запуске

Если вы уже знаете, какие навыки хотите активировать для сессии, укажите их при запуске:

[code] hermes -s hermes-agent-dev,github-auth hermes chat -s github-pr-workflow -s github-auth

[/code]

Hermes загружает каждый указанный навык в промпт сессии перед первым обращением. Этот же флаг работает в интерактивном режиме и режиме однократного запроса.

Слэш-команды навыков

Каждый установленный навык в ~/.hermes/skills/ автоматически регистрируется как слэш-команда. Имя навыка становится командой:

[code] /gif-search funny cats /axolotl help me fine-tune Llama 3 on my dataset /github-pr-workflow create a PR for the auth refactor

# Просто имя навыка загружает его, и агент спрашивает, что вам нужно:
/excalidraw

[/code]

Личности (Personalities)

Установите предопределённую личность, чтобы изменить тон агента:

[code] /personality pirate /personality kawaii /personality concise

[/code]

Встроенные личности: helpful, concise, technical, creative, teacher, kawaii, catgirl, pirate, shakespeare, surfer, noir, uwu, philosopher, hype.

Вы также можете определить пользовательские личности в ~/.hermes/config.yaml:

[code] personalities: helpful: "You are a helpful, friendly AI assistant." kawaii: "You are a kawaii assistant! Use cute expressions..." pirate: "Arrr! Ye be talkin' to Captain Hermes..." # Добавьте свою!

[/code]

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

Есть два способа ввода многострочных сообщений:

  1. Alt+Enter или Ctrl+J — вставляет новую строку
  2. Продолжение обратной косой чертой — завершите строку символом \\, чтобы продолжить:

[code] ❯ Напиши функцию, которая:\ 1. Принимает список чисел\ 2. Возвращает сумму

[/code]

info Вставка многострочного текста поддерживается — используйте Alt+Enter или Ctrl+J для вставки новых строк или просто вставляйте содержимое напрямую.

Прерывание агента

Вы можете прервать агента в любой момент:

  • Введите новое сообщение + Enter, пока агент работает — это прерывает его и обрабатывает ваши новые инструкции
  • Ctrl+C — прервать текущую операцию (нажмите дважды в течение 2 с для принудительного выхода)
  • Выполняющиеся команды терминала немедленно завершаются (SIGTERM, затем SIGKILL через 1 с)
  • Несколько сообщений, введённых во время прерывания, объединяются в один запрос

Режим занятого ввода (Busy Input Mode)

Ключ конфигурации display.busy_input_mode управляет тем, что происходит, когда вы нажимаете Enter, пока агент работает:

Режим Поведение
"interrupt" (по умолчанию) Ваше сообщение прерывает текущую операцию и обрабатывается немедленно
"queue" Ваше сообщение бесшумно помещается в очередь и отправляется как следующий шаг после завершения работы агента
"steer" Ваше сообщение внедряется в текущий запуск через /steer, поступая агенту после следующего вызова инструмента — без прерывания, без нового шага

[code] # ~/.hermes/config.yaml display: busy_input_mode: "steer" # или "queue", или "interrupt" (по умолчанию)

[/code]

Режим "queue" полезен, когда вы хотите подготовить последующие сообщения, не отменяя случайно выполняющуюся работу. Режим "steer" полезен, когда вы хотите перенаправить агента в середине задачи без прерывания — например, "а ещё проверь тесты", пока он ещё редактирует код. Неизвестные значения откатываются к "interrupt".

У "steer" есть два автоматических отката: если агент ещё не начал работу или если прикреплены изображения, сообщение откатывается к поведению "queue", чтобы ничего не потерялось.

Вы также можете изменить это внутри CLI:

[code] /busy queue /busy steer /busy interrupt /busy status

[/code]

Подсказка при первом использовании При самом первом нажатии Enter, пока Hermes работает, Hermes выводит однострочное напоминание, объясняющее настройку /busy ("(совет) Ваше сообщение прервало текущий запуск…"). Это срабатывает только один раз после установки — флаг в config.yaml в разделе onboarding.seen.busy_input_prompt фиксирует это. Удалите этот ключ, чтобы увидеть подсказку снова.

Приостановка в фоновый режим

На Unix-системах нажмите Ctrl+Z, чтобы приостановить Hermes в фоновый режим — как любой терминальный процесс. Оболочка выведет подтверждение:

[code] Hermes Agent был приостановлен. Выполните fg, чтобы вернуть Hermes Agent обратно.

[/code]

Введите fg в оболочке, чтобы возобновить сессию точно с того места, где вы остановились. Это не поддерживается в Windows.

Отображение прогресса инструментов

CLI показывает анимированную обратную связь во время работы агента:

Анимация размышлений (во время API-вызовов):

[code] ◜ (。•́︿•̀。) размышляет... (1.2s) ◠ (⊙_⊙) обдумывает... (2.4s) ✧٩(ˊᗜˋ*)و✧ готово! (3.1s)

[/code]

Поток выполнения инструментов:

[code] ┊ 💻 terminal ls -la (0.3s) ┊ 🔍 web_search (1.2s) ┊ 📄 web_extract (2.1s)

[/code]

Переключайтесь между режимами отображения с помощью /verbose: off → new → all → verbose. Эта команда также может быть включена для платформ обмена сообщениями — см. configuration.

Длина предварительного просмотра инструментов

Ключ конфигурации display.tool_preview_length управляет максимальным количеством символов, показываемых в строках предварительного просмотра вызовов инструментов (например, пути к файлам, команды терминала). Значение по умолчанию — 0, что означает отсутствие ограничения — показываются полные пути и команды.

[code] # ~/.hermes/config.yaml display: tool_preview_length: 80 # Обрезать предварительный просмотр инструментов до 80 символов (0 = без ограничения)

[/code]

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

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

Возобновление сессий

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

[code] Возобновить эту сессию командой: hermes --resume 20260225_143052_a1b2c3

Сессия:        20260225_143052_a1b2c3
Длительность:  12м 34с
Сообщений:     28 (5 от пользователя, 18 вызовов инструментов)

[/code]

Параметры возобновления:

[code] hermes --continue # Возобновить последнюю CLI-сессию hermes -c # Краткая форма hermes -c "my project" # Возобновить именованную сессию (последнюю в цепочке) hermes --resume 20260225_143052_a1b2c3 # Возобновить конкретную сессию по ID hermes --resume "refactoring auth" # Возобновить по названию hermes -r 20260225_143052_a1b2c3 # Краткая форма

[/code]

Возобновление восстанавливает полную историю разговора из SQLite. Агент видит все предыдущие сообщения, вызовы инструментов и ответы — как если бы вы никогда не уходили.

Используйте /title My Session Name внутри чата, чтобы назвать текущую сессию, или hermes sessions rename <id> <title> из командной строки. Используйте hermes sessions list для просмотра прошлых сессий.

Хранение сессий

CLI-сессии хранятся в базе данных SQLite состояния Hermes в ~/.hermes/state.db. База данных содержит:

  • метаданные сессии (ID, название, временные метки, счётчики токенов)
  • историю сообщений
  • цепочки сессий при сжатии/возобновлении
  • индексы полнотекстового поиска, используемые session_search

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

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

Длинные разговоры автоматически суммируются при приближении к лимиту контекста:

[code] # В ~/.hermes/config.yaml compression: enabled: true threshold: 0.50 # Сжимать при 50% лимита контекста по умолчанию

# Модель суммаризации настраивается в разделе auxiliary:
auxiliary:
  compression:
    model: "google/gemini-3-flash-preview"  # Модель, используемая для суммаризации

[/code]

Когда срабатывает сжатие, средние шаги суммируются, а первые 3 и последние 20 шагов всегда сохраняются.

Фоновые сессии

Запустите запрос в отдельной фоновой сессии, продолжая использовать CLI для другой работы:

[code] /background Проанализируй логи в /var/log и обобщи любые ошибки за сегодня

[/code]

Hermes немедленно подтверждает задачу и возвращает вам приглашение:

[code] 🔄 Фоновая задача #1 запущена: "Проанализировать логи в /var/log и обобщить..." ID задачи: bg_143022_a1b2c3

[/code]

Как это работает

Каждый запрос /background порождает полностью отдельную сессию агента в фоновом потоке:

  • Изолированный разговор — фоновый агент не имеет информации об истории вашей текущей сессии. Он получает только предоставленный вами запрос.
  • Та же конфигурация — фоновый агент наследует вашу модель, провайдера, наборы инструментов, настройки рассуждений и запасную модель из текущей сессии.
  • Неблокирующий — ваша основная сессия остаётся полностью интерактивной. Вы можете общаться, запускать команды или даже начинать новые фоновые задачи.
  • Несколько задач — вы можете запускать несколько фоновых задач одновременно. Каждая получает нумерованный ID.

Результаты

Когда фоновая задача завершается, результат появляется в виде панели в вашем терминале:

[code] ╭─ ⚕ Hermes (фоновая #1) ──────────────────────────────────╮ │ Найдено 3 ошибки в syslog за сегодня: │ │ 1. OOM killer вызван в 03:22 — завершён процесс nginx │ │ 2. Ошибка ввода-вывода на /dev/sda1 в 07:15 │ │ 3. Неудачные попытки входа по SSH с 192.168.1.50 в 14:30 │ ╰───────────────────────────────────────────────────────────╯

[/code]

Если задача не выполнена, вы увидите уведомление об ошибке. Если в вашей конфигурации включено display.bell_on_complete, терминальный звонок прозвучит при завершении задачи.

Варианты использования

  • Длительные исследования — "/background исследуй последние разработки в области квантовой коррекции ошибок", пока вы работаете с кодом
  • Обработка файлов — "/background проанализируй все Python-файлы в этом репозитории и найди проблемы безопасности", пока вы продолжаете разговор
  • Параллельные исследования — запустите несколько фоновых задач для одновременного изучения разных аспектов

info Фоновые сессии не отображаются в вашей основной истории разговоров. Это самостоятельные сессии с собственным ID задачи (например, bg_143022_a1b2c3).

Тихий режим

По умолчанию CLI работает в тихом режиме, который:

  • Подавляет подробное логирование от инструментов
  • Включает анимированную обратную связь в стиле kawaii
  • Сохраняет вывод чистым и удобным для пользователя

Для отладочного вывода:

[code] hermes chat --verbose

[/code]