About petdex
petdex is a Hermes skill for browsing, installing, previewing, and selecting animated mascots from the public petdex gallery. It manages the active pet through the Hermes CLI and display configuration; it does not create sprites.
Key features
- 01Browse and filter the public gallery
- 02Install, select, and remove pets
- 03Preview pet animations in the terminal
- 04Configure rendering mode and scale
- 05Diagnose pet display setup
Use cases
- 01Choose and activate a terminal or desktop mascot
- 02Preview pet animations and activity states
- 03Troubleshoot why a pet is not displayed
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ nousresearch/ hermes-agent --skill petdexAfter installing, type/petdexin Claude Code to confirm it loaded.
Details
From the project READMEPetdex 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.devfor 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 itsslug. - 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 withhermes pets scale <factor>, the/pet scaleslash 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 throughhermes pets.
Verification
hermes pets doctorreports✓ readywhen a pet is installed, selected, enabled, and Pillow is importable.