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]
Многострочный ввод¶
Есть два способа ввода многострочных сообщений:
Alt+EnterилиCtrl+J— вставляет новую строку- Продолжение обратной косой чертой — завершите строку символом
\\, чтобы продолжить:
[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]
- Запуск CLI
- Компоновка интерфейса
- Строка состояния
- Отображение возобновления сессии
- Горячие клавиши
- Слэш-команды
- Быстрые команды
- Предзагрузка навыков при запуске
- Слэш-команды навыков
- Личности (Personalities)
- Многострочный ввод
- Прерывание агента
- Режим занятого ввода (Busy Input Mode)
- Приостановка в фоновый режим
- Отображение прогресса инструментов
- Длина предварительного просмотра инструментов
- Управление сессиями
- Возобновление сессий
- Хранение сессий
- Сжатие контекста
- Фоновые сессии
- Как это работает
- Результаты
- Варианты использования
- Тихий режим