--- name: petdex description: Install and select animated petdex mascots for Hermes. version: 1.0.0 author: Hermes Agent license: MIT platforms: [linux, macos, windows] metadata: hermes: tags: [petdex, mascot, display, cli, tui, desktop] category: productivity homepage: https://petdex.dev --- # Petdex Skill Browse, install, and select animated "pet" mascots from the public [petdex](https://github.com/crafter-station/petdex) gallery. An installed pet reacts to agent activity (idle, running a tool, reviewing, error, done) across the Hermes CLI, TUI, and desktop app. This skill drives the `hermes pets` CLI and the `display.pet` config — it does not generate sprites. ## When to Use - The user wants a desktop/terminal mascot or asks about "pets" / petdex. - The user wants to change, preview, or disable the active pet. - Diagnosing why a pet isn't showing (terminal graphics support, config). ## Prerequisites - Network access to `petdex.dev` for the gallery/manifest (read-only, no auth). - Pillow (a core Hermes dependency) for sprite decoding — already installed. - For full-fidelity terminal rendering: a graphics-capable terminal (kitty, Ghostty, WezTerm, iTerm2, or sixel). Otherwise a truecolor Unicode half-block fallback is used automatically. ## How to Run Use the `terminal` tool to run `hermes pets `. ## Quick Reference | Goal | Command | | --- | --- | | Browse the gallery | `hermes pets list` (add a substring to filter: `hermes pets list cat`) | | List installed pets | `hermes pets list --installed` | | Install a pet | `hermes pets install ` (add `--select` to make it active) | | Set the active pet | `hermes pets select ` (omit slug for a picker) | | Resize the pet everywhere | `hermes pets scale ` (e.g. `0.5`, clamped 0.1–3.0) | | Preview/animate in terminal | `hermes pets show [slug] [--cycle] [--state run]` | | Disable the pet | `hermes pets off` | | Remove a pet | `hermes pets remove ` | | Diagnose setup | `hermes pets doctor` | ## Procedure 1. Find a pet: `hermes pets list ` and note its `slug`. 2. Install + activate: `hermes pets install --select`. 3. Preview it: `hermes pets show` (Ctrl+C to stop). 4. Confirm setup: `hermes pets doctor` — shows the resolved pet, configured render mode, detected terminal graphics protocol, and effective mode. Pets install into `/pets//` (profile-aware). Selecting a pet writes `display.pet.slug` + `display.pet.enabled` to `config.yaml`. ## Configuration Under `display.pet` in `config.yaml`: - `enabled` (bool) — master on/off. - `slug` (str) — active pet; empty = first installed. - `render_mode` — `auto` (detect) | `kitty` | `iterm` | `sixel` | `unicode` | `off`. - `scale` (float) — on-screen size of the native 192×208 frames (default 0.33, clamped 0.1–3.0). One knob resizes every surface; set it with `hermes pets scale `, the `/pet scale` slash command, or the desktop Appearance slider. - `unicode_cols` (int) — width in columns for the Unicode fallback. ## Pitfalls - A pet only shows once one is installed AND selected (`enabled: true`). - Inside a pipe/redirect (no TTY) terminal rendering is disabled by design. - The petdex npm CLI installs to `~/.codex/pets`; Hermes uses its own profile-scoped `/pets/` instead — install through `hermes pets`. ## Verification - `hermes pets doctor` reports `✓ ready` when a pet is installed, selected, enabled, and Pillow is importable.