Скины и темы
Скины управляют визуальным представлением CLI VibeOS: цветами баннера, лицами и глаголами спиннера, метками блока ответов, текстом брендинга и префиксом активности инструментов.
Стиль общения и визуальный стиль — это разные концепции:
- Личность меняет тон и формулировки агента.
- Скин меняет внешний вид CLI.
Смена скинов
/skin # показать текущий скин и список доступных скинов
/skin ares # переключиться на встроенный скин
/skin mytheme # переключиться на пользовательский скин из ~/.vibeos/skins/mytheme.yaml
Или задайте скин по умолчанию в ~/.vibeos/config.yaml:
display:
skin: default
Встроенные скины
| Скин | Описание | Брендинг агента | Визуальный характер |
|---|---|---|---|
default | Классический VibeOS — золотой и кавайный | VibeOS | Тёплые золотые границы, текст цвета кукурузного шёлка, кавайные лица в спиннерах. Знакомый баннер с кадуцеем. Чистый и привлекательный. |
ares | Тема бога войны — багровый и бронзовый | Ares Agent | Глубокие багровые границы с бронзовыми акцентами. Агрессивные глаголы спиннера («куёт», «марширует», «закаляет сталь»). Пользовательский ASCII-арт баннера с мечом и щитом. |
mono | Монохромный — чистый оттенки серого | VibeOS | Все оттенки серого — без цвета. Границы #555555, текст #c9d1d9. Идеально для минималистичных терминалов или записи экрана. |
slate | Холодный синий — ориентирован на разработчиков | VibeOS | Королевские синие границы (#4169e1), мягкий синий текст. Спокойный и профессиональный. Без пользовательского спиннера — используются стандартные лица. |
daylight | Светлая тема для ярких терминалов с тёмным текстом и холодными синими акцентами | VibeOS | Разработана для белых или ярких терминалов. Тёмный грифельный текст с синими границами, бледные поверхности статуса и светлое меню завершения, которое остаётся читаемым в светлых профилях терминала. |
warm-lightmode | Тёплый коричнево-золотой текст для светлого фона терминала | VibeOS | Тёплые тона пергамента для светлых терминалов. Тёмно-коричневый текст с акцентами цвета седла, кремовые поверхности статуса. Землистая альтернатива более холодной теме 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 (кукурузный шёлк) |
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 | Имя, отображаемое в заголовке баннера и статусе | VibeOS |
welcome | Приветственное сообщение при запуске CLI | Добро пожаловать в VibeOS! Введите сообщение или /help для списка команд. |
goodbye | Сообщение при выходе | До свидания! ⚕ |
response_label | Метка в заголовке блока ответа | ✦ VibeOS |
prompt_symbol | Символ перед приглашением пользователя (голый токен, рендереры добавляют завершающий пробел) | ❯ |
help_header | Текст заголовка для вывода команды /help | (^_^)? Доступные команды |
Другие ключи верхнего уровня
| Ключ | Тип | Описание | По умолчанию |
|---|---|---|---|
tool_prefix | строка | Символ, добавляемый перед строками вывода инструментов в CLI | ┊ |
tool_emojis | словарь | Переопределения эмодзи для каждого инструмента в спиннерах и прогрессе ({имя_инструмента: эмодзи}) | {} |
banner_logo | строка | ASCII-арт логотип в разметке Rich (заменяет стандартный баннер VIBEOS_AGENT) | "" |
banner_hero | строка | Героический ASCII-арт в разметке Rich (заменяет стандартный рисунок кадуцея) | "" |
Пользовательские скины
Создавайте YAML-файлы в ~/.vibeos/skins/. Пользовательские скины наследуют отсутствующие значения от встроенного скина default, поэтому вам нужно указывать только те ключи, которые вы хотите изменить.
Полный шаблон пользовательского скина YAML
# ~/.vibeos/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] Пользовательский рисунок здесь [/]
Пример минимального пользовательского скина
Поскольку всё наследуется от default, минимальному скину нужно изменить только то, что отличается:
name: cyberpunk
description: Неоновая тема терминала
colors:
banner_border: "#FF00FF"
banner_title: "#00FFFF"
banner_accent: "#FF1493"
spinner:
thinking_verbs: ["взламываю", "расшифровываю", "загружаю"]
wings:
- ["⟨⚡", "⚡⟩"]
branding:
agent_name: "Кибер-агент"
response_label: " ⚡ Кибер "
tool_prefix: "▏"
VibeOS Mod — Визуальный редактор скинов
VibeOS Mod — это веб-интерфейс, созданный сообществом, для визуального создания скинов и управления ими. Вместо написания YAML вручную вы получаете редактор с указателем и щелчком мыши и предварительным просмотром в реальном времени.

Что он делает:
- Отображает список всех встроенных и пользовательских скинов
- Открывает любой скин в визуальном редакторе со всеми полями скина VibeOS (цвета, спиннер, брендинг, префикс инструмента, эмодзи инструментов)
- Генерирует текстовый арт
banner_logoиз текстового запроса - Преобразует загруженные изображения (PNG, JPG, GIF, WEBP) в ASCII-арт
banner_heroс несколькими стилями рендеринга (шрифт Брайля, ASCII-рампа, блоки, точки) - Сохраняет напрямую в
~/.vibeos/skins/ - Активирует скин, обновляя
~/.vibeos/config.yaml - Показывает сгенерированный YAML и предварительный просмотр в реальном времени
Установка
Вариант 1 — Pinokio (в 1 клик):
Найдите его на pinokio.computer и установите одним кликом.
Вариант 2 — npx (самый быстрый из терминала):
npx -y vibeos-mod
Вариант 3 — Вручную:
git clone https://github.com/cocktailpeanut/vibeos-mod.git
cd vibeos-mod/app
npm install
npm start
Использование
- Запустите приложение (через Pinokio или терминал).
- Откройте Skin Studio.
- Выберите встроенный или пользовательский скин для редактирования.
- Сгенерируйте логотип из текста и/или загрузите изображение для героического арта. Выберите стиль рендеринга и ширину.
- Отредактируйте цвета, спиннер, брендинг и другие поля.
- Нажмите Save, чтобы записать YAML скина в
~/.vibeos/skins/. - Нажмите Activate, чтобы установить его как текущий скин (обновляет
display.skinвconfig.yaml).
VibeOS Mod учитывает переменную окружения VIBEOS_HOME, поэтому он также работает с профилями.
Эксплуатационные заметки
- Встроенные скины загружаются из
vibeos_cli/skin_engine.py. - Неизвестные скины автоматически возвращаются к
default. /skinнемедленно обновляет активную тему CLI для текущей сессии.- Пользовательские скины в
~/.vibeos/skins/имеют приоритет над встроенными скинами с тем же именем. - Изменения скина через
/skinдействуют только в рамках сессии. Чтобы сделать скин постоянным по умолчанию, укажите его вconfig.yaml. - Поля
banner_logoиbanner_heroподдерживают разметку консоли Rich (например,[bold #FF0000]текст[/]) для цветного ASCII-арта.