Скины и темы

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

Разговорный стиль и визуальный стиль — это разные концепции:

Смена скинов

/skin                # show the current skin and list available skins
/skin ares           # switch to a built-in skin
/skin mytheme        # switch to a custom skin from ~/.hermes/skins/mytheme.yaml

Или укажите скин по умолчанию в ~/.hermes/config.yaml:

display:
  skin: default

Встроенные скины

Скин Описание Брендинг агента Визуальный характер
default Классический Hermes — золотой и кавайный Hermes Agent Тёплые золотые границы, текст цвета кукурузного шёлка, кавайные лица в спиннерах. Знакомый баннер с кадуцеем. Чистый и привлекательный.
ares Тема бога войны — малиновый и бронзовый Ares Agent Глубокие малиновые границы с бронзовыми акцентами. Агрессивные глаголы спиннера («куёт», «марширует», «закаляет сталь»). Пользовательский ASCII-арт баннера с мечом и щитом.
mono Монохромный — чистый серый Hermes Agent Всё в серых тонах — без цвета. Границы #555555, текст #c9d1d9. Идеально для минималистичных терминалов или записи экрана.
slate Холодный синий — для разработчиков Hermes Agent Границы королевского синего (#4169e1), мягкий голубой текст. Спокойный и профессиональный. Без собственного спиннера — используются стандартные лица.
daylight Светлая тема для ярких терминалов с тёмным текстом и холодными синими акцентами Hermes Agent Разработана для белых или ярких терминалов. Тёмно-серый текст с синими границами, бледные поверхности статуса и светлое меню автодополнения, которое остаётся читаемым в светлых профилях терминала.
warm-lightmode Тёплый коричнево-золотой текст для светлых фонов терминала Hermes Agent Тёплые тона пергамента для светлых терминалов. Тёмно-коричневый текст с акцентами цвета жжёной сиены, кремовые поверхности статуса. Землистая альтернатива более холодной теме daylight.
poseidon Тема бога океана — глубокий синий и морская пена Poseidon Agent Градиент от глубокого синего до цвета морской пены. Спиннеры на океанскую тематику («прокладывает курс», «измеряет глубину»). ASCII-арт баннера с трезубцем.
sisyphus Сизифова тема — строгий серый с настойчивостью Sisyphus Agent Светло-серые тона с резким контрастом. Спиннеры с валунной тематикой («толкает в гору», «сбрасывает валун», «выносит цикл»). ASCII-арт баннера с валуном и холмом.
charizard Вулканическая тема — жжёный оранжевый и уголёк Charizard Agent Тёплый градиент от жжёного оранжевого до угольного. Огненные спиннеры («заходит на воздушный поток», «измеряет жар»). ASCII-арт баннера с силуэтом дракона.

Полный список настраиваемых ключей

Цвета (colors:)

Управляет всеми цветовыми значениями в CLI. Значения — строки с hex-кодами цветов.

Ключ Описание По умолчанию (скин default)
banner_border Граница панели вокруг стартового баннера #CD7F32 (бронзовый)
banner_title Цвет текста заголовка в баннере #FFD700 (золотой)
banner_accent Заголовки разделов в баннере (Доступные инструменты и т.д.) #FFBF00 (янтарный)
banner_dim Приглушённый текст в баннере (разделители, второстепенные метки) #B8860B (тёмный золотарник)
banner_text Основной текст в баннере (названия инструментов, навыков) #FFF8DC (кукурузный шёлк)
ui_accent Общий акцентный цвет UI (выделения, активные элементы) #FFBF00
ui_label Метки и теги UI #4dd0e1 (бирюзовый)
ui_ok Индикаторы успеха (галочки, завершение) #4caf50 (зелёный)
ui_error Индикаторы ошибок (сбои, блокировки) #ef5350 (красный)
ui_warn Индикаторы предупреждений (осторожность, подтверждения) #ffa726 (оранжевый)
prompt Цвет текста интерактивного приглашения #FFF8DC
input_rule Горизонтальная линия над областью ввода #CD7F32
response_border Граница вокруг блока ответа агента (ANSI-escape) #FFD700
session_label Цвет метки сессии #DAA520
session_border Цвет приглушённой границы ID сессии #8B8682
status_bar_bg Цвет фона панели статуса/использования TUI #1a1a2e
voice_status_bg Цвет фона значка статуса голосового режима #1a1a2e
selection_bg Цвет фона подсветки выделения мышью в TUI. Использует completion_menu_current_bg как запасной вариант, если не задан. #333355
completion_menu_bg Цвет фона списка меню автодополнения #1a1a2e
completion_menu_current_bg Цвет фона активной строки автодополнения #333355
completion_menu_meta_bg Цвет фона колонки метаданных автодополнения #1a1a2e
completion_menu_meta_current_bg Цвет фона активной колонки метаданных автодополнения #333355

Спиннер (spinner:)

Управляет анимированным спиннером, отображаемым в ожидании ответа от API.

Ключ Тип Описание Пример
waiting_faces список строк Лица, сменяющие друг друга в ожидании ответа API ["(⚔)", "(⛨)", "(▲)"]
thinking_faces список строк Лица, сменяющие друг друга во время рассуждения модели ["(⚔)", "(⌁)", "(<>)"]
thinking_verbs список строк Глаголы, отображаемые в сообщениях спиннера ["forging", "plotting", "hammering plans"]
wings список пар [слева, справа] Декоративные скобки вокруг спиннера [["⟪⚔", "⚔⟫"], ["⟪▲", "▲⟫"]]

Когда значения спиннера пусты (как в default и mono), используются жёстко заданные значения по умолчанию из display.py.

Брендинг (branding:)

Текстовые строки, используемые в интерфейсе CLI.

Ключ Описание По умолчанию
agent_name Имя, отображаемое в заголовке баннера и панели статуса Hermes Agent
welcome Приветственное сообщение при запуске CLI Welcome to Hermes Agent! Type your message or /help for commands.
goodbye Сообщение при выходе Goodbye! ⚕
response_label Метка в заголовке блока ответа ⚕ Hermes
prompt_symbol Символ перед приглашением ввода пользователя (голый токен, рендереры добавляют пробел в конце)
help_header Заголовок вывода команды /help (^_^)? Available Commands

Другие ключи верхнего уровня

Ключ Тип Описание По умолчанию
tool_prefix строка Символ, добавляемый перед строками вывода инструментов в CLI
tool_emojis словарь Переопределения эмодзи для спиннеров и индикации прогресса по каждому инструменту ({tool_name: emoji}) {}
banner_logo строка ASCII-арт логотип с Rich-разметкой (заменяет стандартный баннер HERMES_AGENT) ""
banner_hero строка Главный ASCII-арт с Rich-разметкой (заменяет стандартный арт с кадуцеем) ""

Пользовательские скины

Создавайте YAML-файлы в ~/.hermes/skins/. Пользовательские скины наследуют недостающие значения от встроенного скина default, поэтому вам нужно указать только те ключи, которые вы хотите изменить.

Полный шаблон YAML пользовательского скина

# ~/.hermes/skins/mytheme.yaml
# Complete skin template — all keys shown. Delete any you don't need;
# missing values automatically inherit from the 'default' skin.

name: mytheme
description: My custom theme

colors:
  banner_border: "#CD7F32"
  banner_title: "#FFD700"
  banner_accent: "#FFBF00"
  banner_dim: "#B8860B"
  banner_text: "#FFF8DC"
  ui_accent: "#FFBF00"
  ui_label: "#4dd0e1"
  ui_ok: "#4caf50"
  ui_error: "#ef5350"
  ui_warn: "#ffa726"
  prompt: "#FFF8DC"
  input_rule: "#CD7F32"
  response_border: "#FFD700"
  session_label: "#DAA520"
  session_border: "#8B8682"
  status_bar_bg: "#1a1a2e"
  voice_status_bg: "#1a1a2e"
  selection_bg: "#333355"
  completion_menu_bg: "#1a1a2e"
  completion_menu_current_bg: "#333355"
  completion_menu_meta_bg: "#1a1a2e"
  completion_menu_meta_current_bg: "#333355"

spinner:
  waiting_faces:
    - "(⚔)"
    - "(⛨)"
    - "(▲)"
  thinking_faces:
    - "(⚔)"
    - "(⌁)"
    - "(<>)"
  thinking_verbs:
    - "processing"
    - "analyzing"
    - "computing"
    - "evaluating"
  wings:
    - ["⟪⚡", "⚡⟫"]
    - ["⟪●", "●⟫"]

branding:
  agent_name: "My Agent"
  welcome: "Welcome to My Agent! Type your message or /help for commands."
  goodbye: "See you later! ⚡"
  response_label: "  My Agent "
  prompt_symbol: "⚡"
  help_header: "(⚡) Available Commands"

tool_prefix: "┊"

# Per-tool emoji overrides (optional)
tool_emojis:
  terminal: "⚔"
  web_search: "🔮"
  read_file: "📄"

# Custom ASCII art banners (optional, Rich markup supported)
# banner_logo: |
#   [bold #FFD700] MY AGENT [/]
# banner_hero: |
#   [#FFD700]  Custom art here  [/]

Минимальный пример пользовательского скина

Поскольку всё наследуется от default, минимальный скин нужно изменить только то, что отличается:

name: cyberpunk
description: Neon terminal theme

colors:
  banner_border: "#FF00FF"
  banner_title: "#00FFFF"
  banner_accent: "#FF1493"

spinner:
  thinking_verbs: ["jacking in", "decrypting", "uploading"]
  wings:
    - ["⟨⚡", "⚡⟩"]

branding:
  agent_name: "Cyber Agent"
  response_label: "  Cyber "

tool_prefix: "▏"

Hermes Mod — Визуальный редактор скинов

Hermes Mod — это веб-интерфейс, созданный сообществом, для визуального создания и управления скинами. Вместо написания YAML вручную вы получаете редактор с графическим интерфейсом и предварительным просмотром в реальном времени.

Редактор скинов Hermes Mod

Что он делает:

Установка

Вариант 1 — Pinokio (в 1 клик):

Найдите его на pinokio.computer и установите одним нажатием.

Вариант 2 — npx (быстрее всего из терминала):

npx -y hermes-mod

Вариант 3 — Вручную:

git clone https://github.com/cocktailpeanut/hermes-mod.git
cd hermes-mod/app
npm install
npm start

Использование

  1. Запустите приложение (через Pinokio или терминал).

  2. Откройте Skin Studio.

  3. Выберите встроенный или пользовательский скин для редактирования.

  4. Сгенерируйте логотип из текста и/или загрузите изображение для главного арта. Выберите стиль рендеринга и ширину.

  5. Отредактируйте цвета, спиннер, брендинг и другие поля.

  6. Нажмите Сохранить, чтобы записать YAML скина в ~/.hermes/skins/.

  7. Нажмите Активировать, чтобы установить его как текущий скин (обновляет display.skin в config.yaml).

Hermes Mod учитывает переменную окружения HERMES_HOME, поэтому он работает и с профилями.

Эксплуатационные заметки