Скины и темы
Скины управляют визуальными представлениями CLI Hermes: цвета баннера, голоса и глаголы спиннера, метки блоков ответов, инструмент брендинга текста и префикс активности.
Разговорный стиль и визуальный стиль — разные понятия:
- Личность меняет тон и формулирует агента.
- Скин меняет внешний вид CLI.
Смена скинов
/skin # показать текущий скин и список доступных скинов
/skin ares # переключиться на встроенный скин
/skin mytheme # переключиться на пользовательский скин из ~/.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. Значения — строки шестнадцатеричных цветов.
| Ключ | Описание | По умолчанию (скин default) |
|---|---|---|
banner_border |
Граница панели вокруг стартового баннера | #CD7F32 (бронза) |
banner_title |
Цвет текста заголовка в баннере | #FFD700 (золото) |
banner_accent |
Заголовки разделов в баннере (Доступные инструменты и т.д.) | #FFBF00 (янтарь) |
banner_dim |
Приглушенный текст в баннере (разделители, второстепенные метки) | #B8860B (темно-золотистый) |
banner_text |
Основной текст в баннере (имена инструментов, имена навыков) | #FFF8DC (cornsilk) |
ui_accent |
Общий акцентный цвет интерфейса (выделения, активные элементы) | #FFBF00 |
ui_label |
Метки и теги интерфейса | #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 |
список строк | Глаголы, показываемые в сообщениях спиннера | ["кует", "планирует", "выковывает планы"] |
wings |
список пар [слева, справа] | Декоративные скобки вокруг спиннера | [["⟪⚔", "⚔⟫"], ["⟪▲", "▲⟫"]] |
Когда значения спиннера пусты (как в default и mono), используются жестко заданные значения по умолчанию из display.py.
Брендинг (branding:)
Текстовые строки, используемые во всем интерфейсе CLI.
| Ключ | Описание | По умолчанию |
|---|---|---|
agent_name |
Имя, показываемое в заголовке баннера и отображении статуса | Hermes Agent |
welcome |
Приветственное сообщение при запуске CLI | Добро пожаловать в Hermes Agent! Введите сообщение или /help для команд. |
goodbye |
Сообщение при выходе | До свидания! ⚕ |
response_label |
Метка на заголовке блока ответа | ⚕ Hermes |
prompt_symbol |
Символ перед приглашением ввода пользователя (голый токен, рендереры добавляют завершающий пробел) | ❯ |
help_header |
Текст заголовка для вывода команды /help |
(^_^)? Доступные команды |
Другие ключи верхнего уровня
| Ключ | Тип | Описание | По умолчанию |
|---|---|---|---|
tool_prefix |
строка | Символ, добавляемый перед строками вывода инструмента в CLI | ┊ |
tool_emojis |
словарь | Переопределения эмодзи для отдельных инструментов для спиннеров и прогресса ({имя_инструмента: эмодзи}) |
{} |
banner_logo |
строка | Rich-разметка ASCII-арт логотипа (заменяет стандартный баннер HERMES_AGENT) | "" |
banner_hero |
строка | Rich-разметка героического искусства (заменяет стандартный кадуцей) | "" |
Пользовательские скины
Создавайте YAML-файлы в ~/.hermes/skins/. Пользовательские скины наследуют отсутствующие значения из встроенного скина default, поэтому вам нужно указать только те ключи, которые вы хотите изменить.
Полный шаблон пользовательского скина YAML
# ~/.hermes/skins/mytheme.yaml
# Полный шаблон скина — показаны все ключи. Удалите те, которые не нужны;
# отсутствующие значения автоматически наследуются из скина 'default'.
name: mytheme
description: Моя пользовательская тема
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:
- "обрабатываю"
- "анализирую"
- "вычисляю"
- "оцениваю"
wings:
- ["⟪⚡", "⚡⟫"]
- ["⟪●", "●⟫"]
branding:
agent_name: "Мой Агент"
welcome: "Добро пожаловать в Моего Агента! Введите сообщение или /help для команд."
goodbye: "Увидимся! ⚡"
response_label: " ⚡ Мой Агент "
prompt_symbol: "⚡"
help_header: "(⚡) Доступные команды"
tool_prefix: "┊"
# Переопределение эмодзи для отдельных инструментов (опционально)
tool_emojis:
terminal: "⚔"
web_search: "🔮"
read_file: "📄"
# Пользовательские ASCII-арт баннеры (опционально, поддерживается Rich разметка)
# banner_logo: |
# [bold #FFD700] МОЙ АГЕНТ [/]
# banner_hero: |
# [#FFD700] Пользовательское искусство здесь [/]
Минимальный пример пользовательского скина
поскольку все наследуется от «по умолчанию», новая кожа должна изменяться только в том, что отличается:
name: cyberpunk
description: Неоновая тема терминала
colors:
banner_border: "#FF00FF"
banner_title: "#00FFFF"
banner_accent: "#FF1493"
spinner:
thinking_verbs: ["подключаюсь", "расшифровываю", "загружаю"]
wings:
- ["⟨⚡", "⚡⟩"]
branding:
agent_name: "Кибер Агент"
response_label: " ⚡ Кибер "
tool_prefix: "▏"
Hermes Mod — Визуальный редактор скинов
Hermes Mod — это веб-интерфейс, созданный сообществом, для визуального создания и управления скинами. Вместо написания YAML вручную вы в первую очередь добавляете редактор с указателем и исследовательской мышью с предварительным просмотром.
Что он делает:
- Пересчитывает все встроенные и пользовательские скины
- Открывает любой скин в визуальном редакторе со всеми полами скинов Hermes (цвета, спиннер, брендинг, инструмент префикса, инструменты эмодзи)
- Генерирует текстовое искусство
banner_logoиз текстового промпта - Преобразует загруженные изображения (PNG, JPG, GIF, WEBP) в ASCII-арте
banner_heroс несколькими стилями рендеринга (Брайль, ASCII-рамка, блоки, точки) - Сохран находится непосредственно в
~/.hermes/skins/ - Активирует скин, обновляя
~/.hermes/config.yaml - Показывает сгенерированный YAML и предварительный просмотр в первое время.
Установка
Вариант 1 — Пинокио (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
Использование
- Запустите приложение (через Pinokio или терминал).
- Откройте Skin Studio.
- Выберите встроенный или пользовательский скин для редактирования.
- Сгенерируйте логотип из текста и/или загрузите изображение для героического искусства. Выберите стиль рендеринга и надежность.
- Отредактируйте цвета, спиннер, брендинг и другие поля.
- Нажмите Сохранить, чтобы записать скин YAML в
~/.hermes/skins/. - Нажмите Активировать, чтобы установить его как текущий скин (обновляет
display.skinвconfig.yaml).
Hermes Mod наблюдает за переменным окружением HERMES_HOME, поэтому он также работает с профилями.
Операционные заметки
- Встроенные скины загружаются из
hermes_cli/skin_engine.py. - Неизвестные скины автоматически возвращаются к значению «по умолчанию».
/skinмгновенно обновляет CLI активной темы для текущей сессии.- Пользовательские скины в
~/.hermes/skins/имеют приоритет над компонентами скинов с тем же именем. - Изменения скина через
/skinпроисходят только в рамках сессии. Чтобы сделать скин по умолчанию, установите его вconfig.yaml. - Поля
banner_logoиbanner_heroтребуют разметки Rich консоли (например,[bold #FF0000]text[/]) для цветного ASCII-арта.