Питомцы
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 <factor> — изменить размер питомца везде (например,/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 использует собственный каталог в рамках профиля<VIBEOS_HOME>/pets/— устанавливайте черезvibeos pets.
Смотрите также
- Навык
petdexпозволяет агенту устанавливать и переключать питомцев по вашему запросу.