Petdex Skill
Browse, install, and select animated "pet" mascots from the public
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 <subcommand>.
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 <slug> (add --select to make it active) |
| Set the active pet |
hermes pets select <slug> (omit slug for a picker) |
| Resize the pet everywhere |
hermes pets scale <factor> (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 <slug> |
| Diagnose setup |
hermes pets doctor |
Procedure
- Find a pet:
hermes pets list <query> and note its slug.
- Install + activate:
hermes pets install <slug> --select.
- Preview it:
hermes pets show (Ctrl+C to stop).
- Confirm setup:
hermes pets doctor — shows the resolved pet, configured
render mode, detected terminal graphics protocol, and effective mode.
Pets install into <HERMES_HOME>/pets/<slug>/ (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 <factor>, 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 <HERMES_HOME>/pets/ instead — install through hermes pets.
Verification
hermes pets doctor reports ✓ ready when a pet is installed, selected,
enabled, and Pillow is importable.
1---2name: petdex3description: Install and select animated petdex mascots for Hermes.4license: MIT5---6# Petdex Skill78Browse, install, and select animated "pet" mascots from the public9[petdex](https://github.com/crafter-station/petdex) gallery. An installed pet10reacts to agent activity (idle, running a tool, reviewing, error, done) across11the Hermes CLI, TUI, and desktop app. This skill drives the `hermes pets` CLI12and the `display.pet` config — it does not generate sprites.1314## When to Use1516- The user wants a desktop/terminal mascot or asks about "pets" / petdex.17- The user wants to change, preview, or disable the active pet.18- Diagnosing why a pet isn't showing (terminal graphics support, config).1920## Prerequisites2122- Network access to `petdex.dev` for the gallery/manifest (read-only, no auth).23- Pillow (a core Hermes dependency) for sprite decoding — already installed.24- For full-fidelity terminal rendering: a graphics-capable terminal (kitty,25 Ghostty, WezTerm, iTerm2, or sixel). Otherwise a truecolor Unicode26 half-block fallback is used automatically.2728## How to Run2930Use the `terminal` tool to run `hermes pets <subcommand>`.3132## Quick Reference3334| Goal | Command |35| --- | --- |36| Browse the gallery | `hermes pets list` (add a substring to filter: `hermes pets list cat`) |37| List installed pets | `hermes pets list --installed` |38| Install a pet | `hermes pets install <slug>` (add `--select` to make it active) |39| Set the active pet | `hermes pets select <slug>` (omit slug for a picker) |40| Resize the pet everywhere | `hermes pets scale <factor>` (e.g. `0.5`, clamped 0.1–3.0) |41| Preview/animate in terminal | `hermes pets show [slug] [--cycle] [--state run]` |42| Disable the pet | `hermes pets off` |43| Remove a pet | `hermes pets remove <slug>` |44| Diagnose setup | `hermes pets doctor` |4546## Procedure47481. Find a pet: `hermes pets list <query>` and note its `slug`.492. Install + activate: `hermes pets install <slug> --select`.503. Preview it: `hermes pets show` (Ctrl+C to stop).514. Confirm setup: `hermes pets doctor` — shows the resolved pet, configured52 render mode, detected terminal graphics protocol, and effective mode.5354Pets install into `<HERMES_HOME>/pets/<slug>/` (profile-aware). Selecting a pet55writes `display.pet.slug` + `display.pet.enabled` to `config.yaml`.5657## Configuration5859Under `display.pet` in `config.yaml`:6061- `enabled` (bool) — master on/off.62- `slug` (str) — active pet; empty = first installed.63- `render_mode` — `auto` (detect) | `kitty` | `iterm` | `sixel` | `unicode` | `off`.64- `scale` (float) — on-screen size of the native 192×208 frames (default 0.33,65 clamped 0.1–3.0). One knob resizes every surface; set it with66 `hermes pets scale <factor>`, the `/pet scale` slash command, or the desktop67 Appearance slider.68- `unicode_cols` (int) — width in columns for the Unicode fallback.6970## Pitfalls7172- A pet only shows once one is installed AND selected (`enabled: true`).73- Inside a pipe/redirect (no TTY) terminal rendering is disabled by design.74- The petdex npm CLI installs to `~/.codex/pets`; Hermes uses its own75 profile-scoped `<HERMES_HOME>/pets/` instead — install through `hermes pets`.7677## Verification7879- `hermes pets doctor` reports `✓ ready` when a pet is installed, selected,80 enabled, and Pillow is importable.