All Pets — a Hermes desktop plugin
Browse every pet installed for your Hermes profile in its own workspace pane, with thumbnails, a search box, a live count, and click-to-adopt.
Why
The built-in picker (Settings ▸ Appearance ▸ Pet) renders at most 60 rows
(RENDER_CAP in apps/desktop/src/app/settings/pet-settings.tsx) and the command-palette
page slices to 50. A store with a couple of hundred pets is browse-only by typing a search
term. This plugin reads the same local store with no cap.
Requirements
- Hermes desktop.
host.openWorkspaceis used for the pane; on a desktop without it the plugin falls back to a/petspage so the feature still exists. - No API keys, no environment variables, no network access beyond your own local gateway.
Install
From Git — in the app: Cmd/Ctrl+K ▸ Capabilities ▸ Plugins ▸ Install from Git,
then paste this repository's URL. The app detects desktop/plugin.js and installs it into
~/.hermes/desktop-plugins/<repo-name>/.
By file — copy desktop/plugin.js to ~/.hermes/desktop-plugins/pets-all/plugin.js.
Runtime plugins are discovered within a few seconds and hot-reload on save.
Open the pane
Three doors, all equivalent:
- Click the 🐾 pets chip in the app's status bar.
- Press
Ctrl+Alt+P(mod+alt+p). Cmd/Ctrl+Kand run Pets: Open the pet gallery pane.
The pane docks to the right of the workspace and keeps its own tab; re-running any door fronts the existing pane instead of opening a second one.
How it works
| Step | Call | Notes |
|---|---|---|
| List | pet.gallery with localOnly: true |
Installed pets only; skips the network manifest |
| Thumbnails | pet.thumb per slug |
Batched 6 at a time; idle frame, cached on disk by the backend |
| Adopt | pet.select on tile click |
Same call the built-in picker makes |
Everything is read-only until you click a tile. Nothing is uploaded, and the plugin never
touches your config except through pet.select.
Compatibility notes
- A contributed full-page route lands inside the workspace zone, so on a layout parked on a session tile the navigation can look dead (the tile stays in front). That is why this plugin opens a pane instead.
- Runtime desktop plugins live outside the Tailwind content scan, so this plugin styles with inline styles and the app's CSS variables rather than utility classes.
Not a catalog entry
The Nous plugin catalog (hermes plugins search, and the catalog pane under Capabilities ▸
Plugins) lists agent plugins: each entry pins a public repo at a full 40-character commit
SHA, and admission runs hermes plugins validate, which requires a plugin.yaml (or portable
plugin.json) plus a capability probe of register(ctx). This plugin is desktop-only and
registers nothing agent-side, so it is not eligible as-is. Distribute it by repository URL.
License
MIT. See LICENSE.