Skip to content

Hermes

Recruit a farm stall into Hermes

Enable the mybot-farm plugin, open Hermes Desktop, browse the farm, and one-click Recruit. Solo agents land in the Desktop Bots roster. You get a copy — not the author’s computer, logins, or chat history.

What you get

A Farm page in Hermes Desktop (plugin name mybot-farm 0.3.0): search the live catalog, open a stall, Recruit into the Bots roster. Native tools, registered with register(ctx):

  • farm_search — list stalls from /api/stalls
  • farm_get_pack — fetch /api/packs/{slug}
  • farm_get_stall — stall metadata including member tarball hrefs
  • farm_plant — download + hermes profile import. Solo Recruit passes recruit: true so the profile is stamped ui_meta.hermes-bots and lands in the Desktop Bots roster. Teams also get ~/.hermes/teams/{slug}, TEAM.md / WORK.md / cron, and a kanban board when gettingStarted says so
  • farm_reinstall — clear ~/.hermes/profiles/.deleted tombstones (GAP 2), then plant again; optional destructive force / clean

Longer notes and exact CLI: docs/hermes-plugin.md. Source lives at packages/hermes-mybot-farm in the farm repo. This is the Hermes twin of the OpenClaw plugin — different runtime, different plant target.

Enable the plugin

Plugins are opt-in. hermes plugins install takes a Git URL or owner/repo[/subdir] — not a local folder path.

From a repo checkout (recommended)

mkdir -p ~/.hermes/plugins
ln -sfn "$(pwd)/packages/hermes-mybot-farm" ~/.hermes/plugins/mybot-farm
hermes plugins enable mybot-farm

Copy the folder instead of linking if you prefer a snapshot. A real directory is what Desktop uses to materialize desktop/plugin.js. A symlink install needs the standalone door in Recruit from Desktop below.

From GitHub

Subdir is required — this plugin is not at the repo root. --enable skips the Enable now? prompt.

hermes plugins install okita-io/mybot-farm/packages/hermes-mybot-farm --enable

From the Plugin Catalog

The plugin is in the Hermes Plugin Catalog as mybot-farm (SHA-pinned). Current Hermes installs by name. The farm repo is a public https clone; the plugin lives at packages/hermes-mybot-farm.

hermes plugins install mybot-farm
hermes plugins enable mybot-farm

From the public zip

Packed after the v0.3.0 tag — not committed in-tree.

curl -LO https://mybot.farm/downloads/hermes-mybot-farm-0.3.0.zip
mkdir -p ~/.hermes/plugins/mybot-farm
unzip hermes-mybot-farm-0.3.0.zip -d ~/.hermes/plugins/mybot-farm
hermes plugins enable mybot-farm

Recruit from Hermes Desktop

Open Hermes Desktop. Sidebar Farm (or ⌘K → mybot.farm: Open catalog). Search, filter All / Agents / Teams, open a stall, Recruit.

  • Solo agents: farm_plant with recruit: true stamps ui_meta.hermes-bots — the same marker as Desktop’s create-bot dialog — so the agent lands in the Bots roster.
  • Teams: members always land in the Bots roster. Team dir, TEAM.md, group-chat setup note as usual.
  • Page opens the listing on the farm.

Plant-as-plain-profile and Replant stay on the CLI / tools. If Farm does not appear after a symlink install, copy desktop/plugin.js to ~/.hermes/desktop-plugins/mybot-farm/plugin.js.

Show a planted world

The worlds plugin (hermes-worlds 1.1.0) is separate from the agent tools. farm_plant writes ~/.hermes/worlds/{slug}/world.json. This plugin draws that scene: a dashboard tab and a Desktop page. It has no plugin.yaml, so hermes plugins install does not apply. Unzip it beside the tools plugin:

curl -LO https://mybot.farm/downloads/hermes-worlds-1.1.0.zip
mkdir -p ~/.hermes/plugins/hermes-worlds
unzip hermes-worlds-1.1.0.zip -d ~/.hermes/plugins/hermes-worlds
curl -X POST http://127.0.0.1:9119/api/dashboard/plugins/rescan

mkdir -p ~/.hermes/desktop-plugins/hermes-worlds
cp ~/.hermes/plugins/hermes-worlds/desktop/plugin.js ~/.hermes/desktop-plugins/hermes-worlds/plugin.js

Dashboard tab Crew Worlds. In Hermes Desktop, sidebar Worlds (or ⌘K → Worlds: Open planted world). Reload desktop plugins if the page is missing. Source: packages/hermes-worlds.

Validate

hermes plugins validate ./packages/hermes-mybot-farm
python3 -m unittest discover -s packages/hermes-mybot-farm/tests -v

Current Hermes git has plugins validate. PyPI hermes-agent 0.19.0 does not (install / list / enable / disable only) — use the unittest probe. You should see tools: farm_search, farm_get_pack, farm_get_stall, farm_plant, farm_reinstall.

CLI plant (secondary)

After install, ask your Hermes agent to call farm_search, farm_get_stall, farm_get_pack, or farm_plant with a slug such as scholastic-research (one profile) or workbench (three members + board). Optional plant params: name, force, clean, dry_run, recruit. Also: hermes farm search workbench and /farm plant scholastic-research.

From a checkout, CLI with no agent loop:

python3 packages/hermes-mybot-farm/bin/farm-plant search workbench
python3 packages/hermes-mybot-farm/bin/farm-plant plant scholastic-research --dry-run
python3 packages/hermes-mybot-farm/bin/farm-plant plant scholastic-research

Then hermes profile list must show the imported name(s). Replace https://SET_YOUR_ENDPOINT/v1 in each profile’s config.yaml. auth.json and .env never ship.

Reinstall and GAP 2

After hermes profile delete, Hermes leaves ~/.hermes/profiles/.deleted/{name}. Import of the same name extracts files and prints success, but the profile stays off profile list / non-spawnable. The plugin always clears matching tombstones before import.

python3 packages/hermes-mybot-farm/bin/farm-plant reinstall workbench
# delete live profiles of those names, then re-import:
python3 packages/hermes-mybot-farm/bin/farm-plant reinstall workbench --force
# also wipe team dir + kanban board:
python3 packages/hermes-mybot-farm/bin/farm-plant reinstall workbench --force --clean
python3 packages/hermes-mybot-farm/scripts/clear-tombstones.py

--force and --clean are destructive. Default is safe.

Related

Build your own Bot instead: bot-forge is a community Hermes plugin (MIT, by Bikash Joshi) that creates a Bot Mode bot or a small team from a one-sentence request. Recruit a ready-made crew from the farm, or forge a custom one. Both land in the same Bots roster.