TUI

TUI — это современный интерфейс для Hermes, терминальный пользовательский интерфейс, работающий на том же рантайме Python, что и классический CLI. Тот же агент, те же сессии, те же слэш-команды; более чистый и отзывчивый интерфейс для взаимодействия с ними.

Это рекомендуемый способ интерактивной работы с Hermes.

Launch

# 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

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

export HERMES_TUI=1
hermes          # now uses the TUI
hermes chat     # same

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

Why the TUI

Применяются те же скины и личности. Переключайте их в середине сессии с помощью /skin ares, /personality pirate, и интерфейс обновляется в реальном времени. См. Скины и темы для полного списка настраиваемых параметров и того, какие из них применяются к классическому CLI, а какие к TUI — TUI учитывает палитру баннера, цвета UI, глиф/цвет приглашения, отображение сессии, меню автодополнения, фон выделения, tool_prefix и help_header.

Requirements

При первом запуске Hermes устанавливает зависимости Node TUI в ui-tui/node_modules (однократно, несколько секунд). Последующие запуски быстрые. Если вы обновляете версию Hermes, пакет TUI перестраивается автоматически, когда источники новее, чем dist.

External prebuild

Дистрибутивы, поставляющие предсобранный пакет (Nix, системные пакеты), могут указать Hermes на него:

export HERMES_TUI_DIR=/path/to/prebuilt/ui-tui
hermes --tui

Директория должна содержать dist/entry.js и актуальный node_modules.

Keybindings

Горячие клавиши точно соответствуют классическому CLI. Единственные поведенческие отличия:

Slash commands

Все слэш-команды работают без изменений. Некоторые принадлежат TUI — они производят более богатый вывод или отображаются как оверлеи, а не встроенные панели:

Command Поведение TUI
/help Оверлей с категоризированными командами, навигация стрелками
/sessions Модальный выбор сессии — предпросмотр, название, итоги токенов, возобновление на месте
/model Модальный выбор модели, сгруппированный по провайдеру, с подсказками о стоимости
/skin Живой предпросмотр — смена темы применяется при просмотре
/details Переключение подробных сведений о вызовах инструментов (глобально или по секциям)
/usage Богатая панель токенов / стоимости / контекста
/agents (alias /tasks) Оверлей наблюдаемости — живое дерево субагентов с контролями kill/pause, свёртки стоимости / токенов / файлов по ветвям, история по ходам
/reload Перечитывает ~/.hermes/.env в работающий процесс TUI, чтобы вновь добавленные API-ключи вступили в силу без перезапуска
/mouse Переключение отслеживания мыши вкл/выкл во время выполнения (также сохраняется в display.mouse_tracking в config.yaml)

Все остальные слэш-команды (включая установленные навыки, быстрые команды и переключатели личности) работают идентично классическому CLI. См. Справочник слэш-команд.

LaTeX math rendering

Конвейер markdown TUI рендерит математику LaTeX инлайн: $E = mc^2$ и $$\frac{a}{b}$$ отображаются как математика в формате Unicode вместо исходного TeX. Работает для инлайн и блочной математики; неподдерживаемый синтаксис отображается как литеральный TeX, обёрнутый в code span, чтобы его можно было скопировать.

Это всегда включено — ничего не нужно настраивать. Классический CLI сохраняет исходный TeX.

Light-terminal detection

TUI автоматически определяет светлые терминалы и переключается на светлую тему. Определение работает в трёх уровнях:

  1. Переменная окружения HERMES_TUI_THEME — наивысший приоритет. Значения: light, dark или 6-символьный hex фона (например, ffffff, 1a1a2e).

  2. Переменная окружения COLORFGBG — классическая подсказка "какой у меня цвет фона?", используемая терминалами на основе xterm.

  3. Зондирование фона терминала через OSC 11 — работает на современных терминалах (Ghostty, Warp, iTerm2, WezTerm, Kitty), которые не устанавливают COLORFGBG.

Если вы хотите светлую тему постоянно, независимо от терминала:

export HERMES_TUI_THEME=light

Busy indicator styles

Индикатор занятости в строке состояния является подключаемым — по умолчанию палитра лиц Hermes вращается каждые 2,5 секунды во время работы агента. Выберите другой стиль через конфигурацию или слэш-команду /indicator:

display:
  tui_status_indicator: kaomoji   # kaomoji | emoji | unicode | ascii

Или в сессии: /indicator emoji (и т.д.). Стили поставляются с согласованными ширинами глифов, чтобы остальная часть строки состояния не дрожала при вращении.

Auto-resume

По умолчанию hermes --tui запускает новую сессию при каждом запуске. Чтобы автоматически подключаться к последней сессии TUI (полезно, когда ваш терминал или SSH-соединение неожиданно обрывается), включите эту опцию:

export HERMES_TUI_RESUME=1          # most-recent TUI session
# or:
export HERMES_TUI_RESUME=<session-id>   # specific session

Отключите переменную или передайте --resume <id> явно для переопределения при каждом запуске.

Status line

Строка состояния TUI отслеживает состояние агента в реальном времени:

ID сессии активен; инструменты и навыки ещё подключаются. Вы можете вводить — сообщения ставятся в очередь и отправляются, когда всё готово. Агент простаивает, принимает ввод. Агент рассуждает или выполняет инструмент. Текущий ход был отменён; нажмите Enter, чтобы отправить снова. Начальное подключение или рукопожатие --resume.
Состояние Значение
starting agent…
ready
thinking… / running…
interrupted
forging session… / resuming…

Цвета и пороги строки состояния для каждого скина общие с классическим CLI — см. Скины для настройки.

Строка состояния также показывает:

Configuration

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

Переключатели во время выполнения:

Видимость по умолчанию

TUI поставляется с установленными по умолчанию настройками для каждой секции, которые транслируют ход как живую транскрипцию, а не стену шевронов:

Переопределения для отдельных секций имеют приоритет над значениями по умолчанию секции и глобальным details_mode. Чтобы изменить макет:

Всё, что явно задано в display.sections, имеет приоритет над значениями по умолчанию, поэтому существующие конфигурации продолжают работать без изменений.

Sessions

Сессии общие для TUI и классического CLI — оба пишут в ту же ~/.hermes/state.db. Вы можете начать сессию в одном интерфейсе и возобновить в другом. Выбор сессий показывает сессии из обоих источников с меткой источника.

См. Сессии для информации о жизненном цикле, поиске, сжатии и экспорте.

Reverting to the classic CLI

Запуск hermes (без --tui) использует классический CLI. Чтобы машина предпочитала TUI, установите HERMES_TUI=1 в профиле вашей оболочки. Чтобы вернуться обратно, отключите переменную.

Если TUI не удаётся запустить (нет Node, отсутствует пакет, проблема с TTY), Hermes выводит диагностику и переключается на классический CLI — вместо того чтобы оставить вас в затруднительном положении.

See also