sidebar_position: 2 title: "TUI" description: "Launch the modern terminal UI for Hermes — mouse-friendly, rich overlays, and non-blocking input." lang: ru
ТУИ
TUI — это современный интерфейс для Hermes — пользовательский интерфейс терминала, поддерживаемый той же средой выполнения Python, что и Classic CLI. Тот же агент, те же сеансы, те же команды с косой чертой; более чистая и отзывчивая поверхность для взаимодействия с ними.
Это рекомендуемый способ запуска Hermes в интерактивном режиме.
Запуск
# Launch the TUI
hermes --tui
# Resume the latest TUI session (falls back to the latest classic session)
hermes --tui -c
hermes --tui --continue
# Resume a specific session by ID or title
hermes --tui -r 20260409_000000_aa11bb
hermes --tui --resume "my t0p session"
# Run source directly — skips the prebuild step (for TUI contributors)
hermes --tui --dev
Вы также можете включить его через env var:
export HERMES_TUI=1
hermes # now uses the TUI
hermes chat # same
Классический интерфейс командной строки остается доступным по умолчанию. Все, что задокументировано в [Интерфейс CLI] (cli.md) — команды слэша, быстрые команды, предварительная загрузка навыков, персональные настройки, многострочный ввод, прерывания — работает в TUI одинаково.
Почему TUI
- Мгновенный первый кадр — баннер отображается до завершения загрузки приложения, поэтому терминал никогда не зависает во время запуска Hermes.
- Неблокирующий ввод — вводите и ставьте сообщения в очередь до завершения сеанса. Ваше первое приглашение отправляется в тот момент, когда агент подключается к сети.
- Богатые наложения – средства выбора модели, средства выбора сеансов, запросы на утверждение и разъяснения отображаются в виде модальных панелей, а не в виде встроенных потоков.
- Панель сеансов в реальном времени — инструменты и навыки заполняются постепенно по мере их инициализации.
- Выбор, удобный для мыши — перетащите, чтобы выделить однородный фон вместо инверсного SGR. Скопируйте обычным жестом копирования вашего терминала.
- Рендеринг на альтернативном экране — дифференциальные обновления означают отсутствие мерцания при потоковой передаче и отсутствие помех при прокрутке после выхода.
- Возможности Composer — встроенная вставка-свертывание для длинных фрагментов, вставка текста
Cmd+V/Ctrl+Vс резервным копированием изображения из буфера обмена, безопасность вставки в квадратных скобках и нормализация вложений изображений/путей к файлам.
Применяются те же скины и личности. Переключитесь в середине сеанса с помощью /skin ares, /personality pirate, и пользовательский интерфейс будет перерисован в реальном времени. См. Скины и темы для получения полного списка настраиваемых клавиш и того, какие из них применимы к классическому интерфейсу, а не к TUI — TUI учитывает палитру баннера, цвета пользовательского интерфейса, глиф/цвет подсказки, отображение сеанса, меню завершения, фон выбора, tool_prefix и help_header.
Требования
- Node.js ≥ 20 — TUI запускается как подпроцесс, запускаемый из интерфейса командной строки Python.
hermes doctorподтверждает это. - TTY — как и в классическом интерфейсе командной строки, передача стандартного ввода или работа в неинтерактивных средах возвращаются в режим одного запроса.
При первом запуске Hermes устанавливает зависимости узла TUI в ui-tui/node_modules (однократно, в течение нескольких секунд). Последующие запуски происходят быстро. Если вы установите новую версию Hermes, пакет TUI будет пересобран автоматически, если исходные коды новее, чем dist.
Внешняя предварительная сборка
Дистрибутивы, поставляющие готовый пакет (Nix, системные пакеты), могут указать на него Hermes:
export HERMES_TUI_DIR=/path/to/prebuilt/ui-tui
hermes --tui
Каталог должен содержать dist/entry.js и актуальную версию node_modules.
Сочетания клавиш
Привязки клавиш точно соответствуют Классическому CLI. Единственные поведенческие различия:
- Перетаскивание мышью выделяет текст с однородным фоном выделения.
Cmd+V/Ctrl+Vсначала пытается вставить обычный текст, затем возвращается к OSC52/чтению из собственного буфера обмена и, наконец, прикрепляет изображение, когда буфер обмена или вставленная полезная нагрузка преобразуются в изображение./terminal-setupустанавливает локальные привязки терминала VS Code/Cursor/Windsurf для улучшенияCmd+Enterи четности отмены/повтора в macOS.- Автодополнение по косой черте открывается как плавающая панель с описаниями, а не как встроенный раскрывающийся список.
Ctrl+X— при выделении сообщения в очереди (отправленного во время работы агента) удалить его из очереди.Escотменяет редактирование и снимает выделение без удаления.Ctrl+G/Ctrl+X Ctrl+E— открыть текущий входной буфер в$EDITORдля многострочной/длинной композиции; save-and-exit отправляет содержимое обратно в виде приглашения.
Слэш-команды
Все слэш-команды работают без изменений. Некоторые из них принадлежат TUI — они производят более насыщенный вывод или визуализируются в виде наложений, а не встроенных панелей:
| Команда | Поведение TUI |
|---|---|
/help |
Наложение с категоризированными командами, навигация с помощью клавиш со стрелками |
/sessions |
Модальный выбор сеанса — предварительный просмотр, заголовок, общее количество токенов, встроенное резюме |
/model |
Модальный выбор моделей, сгруппированный по поставщикам, с подсказками по стоимости |
/skin |
Предварительный просмотр в реальном времени — изменение темы применяется по мере просмотра |
/details |
Переключить подробные сведения о вызове инструментов (глобальные или для каждого раздела) |
/usage |
Расширенная панель токенов/стоимости/контекста |
/agents (псевдоним /tasks) |
Наложение наблюдаемости — действующее дерево субагентов с элементами управления уничтожением/паузой, стоимостью каждой ветки/свертыванием токенов/файлов, пошаговой историей |
/reload |
Перечитывает ~/.hermes/.env в работающий процесс TUI, чтобы вновь добавленные ключи API вступили в силу без перезапуска |
/mouse |
Включение/выключение отслеживания мыши во время выполнения (также сохраняется до display.mouse_tracking в config.yaml) |
Любая другая косая черта (включая установленные навыки, быстрые команды и переключение личности) работает идентично классическому интерфейсу командной строки. См. Справочник по слэш-командам.
Математический рендеринг LaTeX
Конвейер уценки TUI отображает математические вычисления LaTeX в реальном времени: $E = mc^2$ и $$\frac{a}{b}$$ отображают математические вычисления в формате Unicode вместо необработанного исходного текста TeX. Работает для встроенной и блочной математики; неподдерживаемый синтаксис возвращается к отображению буквального TeX, завернутого в фрагмент кода, чтобы его можно было копировать.
Это всегда включено — ничего настраивать не нужно. Классический CLI сохраняет необработанный TeX.
Обнаружение светового терминала
TUI автоматически обнаруживает световые терминалы и соответствующим образом переключается на светлую тему. Обнаружение работает на трех уровнях:
HERMES_TUI_THEMEenv var — высший приоритет. Значения:light,darkили необработанный шестизначный фоновый шестнадцатеричный код (например,ffffff,1a1a2e).COLORFGBGenv var — классический вопрос «какой у меня цвет фона?» подсказка, используемая терминалами, производными от xterm.- Фоновая проверка терминала через OSC 11 — работает на современных терминалах (Ghostty, Warp, iTerm2, WezTerm, Kitty), на которых не установлено
COLORFGBG.
Если вам нужна светлая тема постоянно независимо от терминала:
export HERMES_TUI_THEME=light
Стили индикатора занятости
Статусная строка FaceTicker является подключаемой — по умолчанию палитра каваи-лица Hermes вращается каждые 2,5 секунды во время работы агента. Выберите другой стиль (или none для минимальной точки) через конфигурацию:
display:
busy_indicator:
style: kawaii # kawaii | minimal | dots | wings | none
Стили поставляются с глифами одинаковой ширины, поэтому остальная часть строки состояния не дрожит при вращении.
Автовозобновление
По умолчанию hermes --tui запускает новый сеанс при каждом запуске. Чтобы автоматически повторно подключиться к последнему сеансу TUI (полезно, если ваш терминал или SSH-соединение неожиданно прерывается), зарегистрируйтесь:
export HERMES_TUI_RESUME=1 # most-recent TUI session
# or:
export HERMES_TUI_RESUME=<session-id> # specific session
Снимите значение переменной или явно передайте --resume <id>, чтобы переопределить ее для каждого запуска.
Строка состояния
Строка состояния TUI отслеживает состояние агента в режиме реального времени:
| Статус | Значение |
|---|---|
starting agent… |
Идентификатор сеанса активен; инструменты и навыки все еще появляются в сети. Вы можете ввести — сообщения в очереди и отправить, когда будете готовы. |
ready |
Агент простаивает, принимает вводимые данные. |
thinking… / running… |
Агент рассуждает или запускает инструмент. |
interrupted |
Текущий ход отменен; нажмите Enter, чтобы отправить еще раз. |
forging session… / resuming… |
Первоначальное соединение или рукопожатие --resume. |
Цвета и пороговые значения строки состояния для каждого скина используются в классическом интерфейсе командной строки — см. Skins для настройки.
В строке состояния также отображается:
- Рабочий каталог с веткой git —
~/projects/hermes-agent (docs/two-week-gap-sweep). Суффикс ветки обновляется, когда выgit checkoutна стороннем терминале (кэшируется по времени), поэтому TUI отражает вашу фактическую активную ветку, а не ту, которая была при запуске. - Прошедшее время для каждого запроса —
⏱ 12s/3m 45sво время выполнения хода (в реальном времени), замораживается до⏲ 32s / 3m 45sпосле завершения хода. Первое число — время с момента последнего сообщения пользователя; во-вторых, общая продолжительность сеанса. Сбрасывается при каждом новом запросе.
Конфигурация
TUI учитывает все стандартные настройки Hermes: ~/.hermes/config.yaml, профили, персональные данные, скины, быстрые команды, пулы учетных данных, поставщики памяти, включение инструментов/навыков. Никакого файла конфигурации, специфичного для TUI, не существует.
Несколько клавиш специально настраивают поверхность TUI:
display:
skin: default # any built-in or custom skin
personality: helpful
details_mode: collapsed # hidden | collapsed | expanded — global accordion default
sections: # optional: per-section overrides (any subset)
thinking: expanded # always open
tools: expanded # always open
activity: collapsed # opt back IN to the activity panel (hidden by default)
mouse_tracking: true # disable if your terminal conflicts with mouse reporting
Переключатели времени выполнения:
/details [hidden|collapsed|expanded|cycle]— установить глобальный режим/details <section> [hidden|collapsed|expanded|reset]— переопределить один раздел (разделы:thinking,tools,subagents,activity)
Видимость по умолчанию
TUI поставляется с самоуверенными настройками по умолчанию для каждого раздела, которые транслируют ход как живая расшифровка вместо стены шевронов:
thinking— расширено. Рассуждения передаются в реальном времени по мере того, как модель их генерирует.tools— расширено. Вызовы инструментов и их результаты отображаются открытыми.subagents— переходит в глобальнуюdetails_mode(свернута под шеврон по умолчанию — молчит, пока делегирование не произойдет).activity— скрыто. Окружающая мета (подсказки о шлюзах, терминальная четность подсказки, фоновые уведомления) — это шум для большинства повседневного использования. Инструмент сбои по-прежнему отображаются в строке неисправного инструмента; окружающий ошибки/предупреждения отображаются через плавающую кнопку обратного хода, когда каждая панель скрыт.
Переопределения для каждого раздела имеют приоритет как над значением раздела по умолчанию, так и над значением по умолчанию.
глобальный details_mode. Чтобы изменить макет:
display.sections.thinking: collapsed— положите мысли обратно под шевронdisplay.sections.tools: collapsed— поместить вызовы инструментов обратно под шевронdisplay.sections.activity: collapsed— снова включить панель активности./details <section> <mode>во время выполнения
Все, что явно задано в display.sections, имеет преимущество перед значениями по умолчанию, поэтому
существующие конфигурации продолжают работать без изменений.
сеансов
Сеансы разделяются между TUI и классическим CLI — оба пишут в один и тот же адрес ~/.hermes/state.db. Вы можете начать сеанс в одном, возобновить в другом. Средство выбора сеанса отображает сеансы из обоих источников с помощью тега источника.
См. Сессии для получения информации о жизненном цикле, поиске, сжатии и экспорте.
Возврат к классическому интерфейсу командной строки
Запуск hermes (без --tui) остается в классическом интерфейсе командной строки. Чтобы машина предпочитала TUI, установите HERMES_TUI=1 в профиле вашей оболочки. Чтобы вернуться назад, отключите его.
Если TUI не запускается (нет узла, отсутствует пакет, проблема с телетайпом), Hermes распечатывает диагностическое сообщение и отступает — вместо того, чтобы оставить вас в тупике.
См. также
- Интерфейс CLI — полная косая черта и справочник по привязке клавиш (общий)
- Сессии — резюме, ветка и история
- Скины и темы — тема для баннера, строки состояния и наложений.
- Голосовой режим — работает в обоих интерфейсах
- Конфигурация — все ключи конфигурации