Перейти к основному содержимому

Питомцы

VibeOS может показывать анимированного питомца — небольшой спрайт-маскот, который реагирует на действия агента (бездействие, выполнение инструмента, размышление, завершение, ошибку) в CLI, TUI и настольном приложении. Питомцы берутся из публичной галереи petdex.

Питомцы носят исключительно декоративный характер. Они не влияют на кэширование промптов, токены или поведение агента — спрайт отвечает только за отображение. Функция по умолчанию выключена и остаётся неактивной, пока вы не установите и не выберете питомца.

Как это работает​

  • Питомцы устанавливаются в каталог pets/ вашего профиля (<VIBEOS_HOME>/pets/<slug>/), поэтому каждый профиль хранит свой собственный набор.

  • Выбор питомца записывает display.pet.slug и display.pet.enabled в config.yaml — ничего не хранится в виде секрета или переменной окружения.

  • Каждая поверхность отслеживает уже известную ей активность и сопоставляет её с одним из шести состояний анимации. Сопоставление хранится в одном месте, поэтому все поверхности ведут себя одинаково:

    Действие агентаСостояние питомца
    Инструмент/шаг только что завершился ошибкойfailed
    План завершён (все задачи выполнены)jump (празднование)
    Шаг завершился успешноwave
    Выполняется инструментrun
    Модель размышляет/читаетreview
    Шаг в процессе (не указано)run
    Ожидание вас (открыт запрос на уточнение/одобрение)waiting (переходит в idle на старых листах с 8 строками)
    Ничего не происходитidle

Отрисовка​

В терминале (CLI/TUI) VibeOS отрисовывает спрайт с полной точностью, если ваш терминал поддерживает графический протокол (kitty, Ghostty, WezTerm, iTerm2 или sixel). В противном случае автоматически используется отрисовка в truecolor с помощью полублоков Unicode. Внутри пайпа или перенаправления (без TTY) терминальная отрисовка отключена по дизайну.

Настольное приложение рисует питомца как плавающий спрайт на холсте и включает/выключает его через Настройки → Внешний вид.

Быстрый старт (CLI)​

# Просмотр галереи (фильтр по подстроке)
vibeos pets list
vibeos pets list cat

# Установка питомца и его активация одним шагом
vibeos pets install boba --select

# Предпросмотр / анимация в терминале (Ctrl+C для остановки)
vibeos pets show

# Проверка настройки
vibeos pets doctor

Команды vibeos pets​

ЦельКоманда
Просмотр галереиvibeos pets list [query] [--limit N]
Список установленных питомцевvibeos pets list --installed
Установка питомцаvibeos pets install <slug> [--select] [--force]
Выбор активного питомцаvibeos pets select [slug] (без slug — откроется выбор)
Изменение размера питомца вездеvibeos pets scale <factor> (например, 0.5`, ограничение 0.1–3.0)
Предпросмотр/анимацияvibeos pets show [slug] [--state <s>] [--cycle] [--once] [--mode <m>] [--scale <f>]
Отключение питомцаvibeos pets off
Удаление установленного питомцаvibeos pets remove <slug>`
Диагностика настройкиvibeos pets doctor

Флаги vibeos pets show:

  • --state — воспроизвести одно состояние (idle, wave, run, failed, review, jump).
  • --cycle — циклически перебрать все состояния.
  • --once — воспроизвести один раз вместо зацикливания.
  • --mode — принудительно задать протокол отрисовки (kitty, iterm, sixel, unicode, auto).
  • --scale — временно изменить масштаб на экране (0 = использовать конфиг).

Slash-команда /pet​

В CLI и TUI вы можете управлять питомцем, не выходя из сессии:

  • /pet — включить/выключить питомца (выбирает первого установленного, если ни один не активен).
  • /pet list — просмотр галереи.
  • /pet scale &lt;factor&gt; — изменить размер питомца везде (например, /pet scale 0.5`).
  • /pet <slug>` — выбрать конкретного питомца.
  • /pet off — отключить питомца.

В TUI команда /pet list открывает интерактивное окно выбора; в настольном приложении — палитру питомцев через Cmd+K.

Настольное приложение​

В настольном приложении питомцем можно управлять двумя способами:

  • Cmd+K → «Питомцы…» — просмотр, поиск, выбор и включение/выключение питомцев, не отрываясь от клавиатуры (аналогично выбору темы).
  • Настройки → Внешний вид — та же галерея плюс ползунок размера, который изменяет плавающего маскота в реальном времени при перетаскивании.

Оба способа выбирают/включают/изменяют размер плавающего маскота на месте — изменения размера применяются мгновенно; при выборе нового питомца он появляется через мгновение.

Всплывающее окно​

Shift-клик по плавающему питомцу открывает его в отдельном прозрачном окне поверх всех окон. Там он остаётся видимым, даже когда VibeOS свёрнуто (в стиле Codex), так что один взгляд подскажет, чем занят агент.

Жесты во всплывшем окне:

ЖестДействие
ПеретаскиваниеПереместить питомца в любое место экрана, даже за пределы приложения. Его позиция и состояние (внутри/снаружи) сохраняются между перезапусками.
Одиночный кликОткрыть мини-композитор для отправки промпта в последнюю сессию — без открытия приложения.
Двойной кликПереключить окно приложения: свернуть, если оно на переднем плане; восстановить, если скрыто.
Shift-кликВернуть питомца обратно в окно.
Иконка письмаПоявляется только когда шаг завершился в ваше отсутствие; кликните, чтобы открыть приложение на последнем обсуждении (и пометить его как прочитанное).

Только всплывший питомец показывает речевой пузырь (работаю…, думаю…, ваша очередь…, …) — внутри окна приложение само является поверхностью, поэтому питомец там молчит.

Всплывающее окно — это чистое отражение питомца внутри приложения: у него нет отдельного шлюзового соединения, и оно никогда не появляется в доке или переключателе приложений.

Конфигурация​

Все настройки находятся в разделе display.pet файла config.yaml:

display:
pet:
enabled: false # главный вкл/выкл (true после выбора питомца)
slug: "" # активный питомец; пусто = первый установленный
render_mode: auto # auto | kitty | iterm | sixel | unicode | off
scale: 0.33 # главная ручка размера (относительно родных кадров 192x208)
unicode_cols: 0 # принудительная ширина терминала (0 = вычислять из scale)
  • scale — единственная главная ручка размера. Одно число уменьшает все поверхности: холст настольного приложения масштабирует свои пиксели на него, а CLI/TUI вычисляют ширину колонок терминала из него. Запасной вариант с полублоками имеет нижнюю границу читаемости — он не может уменьшаться так же сильно, как true-pixel отрисовка kitty/GUI, не превращаясь в кашу, поэтому одинаковый scale выглядит чётко в kitty, но имеет нижнюю границу в полублоках.
  • render_mode: auto определяет kitty/iTerm2/sixel и переключается на полублоки Unicode. Установите явно, чтобы принудительно задать протокол, или off, чтобы отключить терминальную отрисовку, оставив питомца на рабочем столе.
  • unicode_cols фиксирует ширину колонок терминала независимо от scale; оставьте 0, чтобы ширина вычислялась из scale.

Устранение неполадок​

Запустите vibeos pets doctor — он сообщает:

  • каталог питомцев и какие питомцы установлены,
  • display.pet.enabled, display.pet.slug и разрешённого активного питомца,
  • настроенный render_mode, обнаруженный графический протокол терминала и эффективный режим для TTY,
  • доступна ли библиотека Pillow (используется для декодирования спрайтов).

Он выводит ✓ готово, когда питомец установлен, выбран, включён и Pillow доступна.

Частые проблемы:

  • Питомец отображается только после того, как он установлен И выбран (enabled: true).
  • Внутри пайпа/перенаправления (без TTY) терминальная отрисовка отключена по дизайну.
  • CLI petdex npm устанавливает питомцев в ~/.codex/pets; VibeOS использует собственный каталог в рамках профиля &lt;VIBEOS_HOME&gt;/pets/ — устанавливайте через vibeos pets.

Смотрите также​

  • Навык petdex позволяет агенту устанавливать и переключать питомцев по вашему запросу.