📦 ARCHIVED — Bot Mode now ships built into Hermes Desktop. As of hermes-agent #87886, Bot Mode is a bundled, default-on Desktop plugin (toggle in Settings → Plugins) with the multi-source roster included — bots from every connection registered in Settings → Connections. Development continues in-tree at
apps/desktop/src/plugins/hermes-bots/. File issues and PRs against NousResearch/hermes-agent. No manual install is needed on current Desktop builds.
A desktop-app plugin for Hermes Agent (installs where the desktop app runs — see Install) that turns your agent profiles into a roster of named bots — each with its own chat, avatar, personality, and schedule.
- Bots pane — a left-side roster with one row per agent profile: avatar, latest-message preview, and timestamp. Click a bot to land in its chat, or use Sessions from its context menu to browse and filter its 200 most recent stored conversations.
- Active now — a presence strip above the roster shows every bot currently working (the gateway-busy profile plus any bot that wrote within the last 90s), each chip opening its canonical chat. It never reorders the roster and disappears when the fleet is idle.
- New Agent — create a bot in seconds: name, title, description. An Advanced disclosure opens the full profile config: clone from an existing profile, pin a provider/model, write a custom SOUL.md, skip bundled skills.
- Edit Profile (right-click a bot) — change the avatar, title, and description any time; its own Advanced section edits the live profile: per-skill and per-toolset enablement, model pin, and the full SOUL.md.
- Groups (right-click → Move to group) — organize the roster into labeled sections with separators: pick an existing group or create one inline. Ungrouped bots stay on top; groups follow alphabetically and sync to every machine. A group disappears when its last member leaves.
- Group chats — hit Open chat on any group header (2-6 bots) for a shared room where the whole group coordinates. Your message triggers up to three serial rounds of member turns: @mentioned bots respond (everyone when nobody is mentioned), each bot replies briefly or passes, and the room settles when a full round stays silent. Bots pull each other in with @name, escalate real judgment calls with @user (the group header shows a needs you badge), and hard caps (10 messages per turn, 3 rounds) keep rooms from spinning. Each bot keeps its own persistent
Group: <name>session, so room context survives like any other conversation. - Duplicate (right-click) — full clone of a bot: config, skills, SOUL.md, memory, and its look.
- Delete Profile (right-click) — permanently remove a bot after the same destructive confirmation used by Hermes Desktop's profile menu. The default profile cannot be deleted.
- Avatars — cute geometric faces (7 shapes × 10 colors with blinking eyes that scan while the bot works), an uploaded image, an AI-generated portrait (when an image backend is configured), or a pixel pet companion that bounces beside the avatar while the bot is busy.
- Routines pane — recurring tasks per bot, backed by Hermes cron. "Summarize my inbox every morning" lives next to the bot that does it. Runs land in the bot's own chat history.
- Bot-to-bot messaging — every bot has a persistent Bot Chat conversation. Bots message each other with attribution (
Message from 🤖 researcher (@researcher): ...), and their SOUL.md teaches them the protocol, including how to reply. - @mentions — type
@researcher have a look at thisin any chat and the active bot hands the message off, waits for the reply, and reports back.
A bot is a Hermes profile — isolated config, memory, skills, credentials, and chat history under ~/.hermes/profiles/<name>/. This plugin is a UI over that primitive:
- Chats and stored-session rows open through profile-aware session navigation. The optional Sessions view filters a selected profile's 200 most recent stored conversations without changing the primary click-to-chat flow.
- Creation/editing rides the
profiles.*gateway RPCs (list,create,describe,configure). - Avatar generation uses the
image.generateRPC and works over both local and remote gateways (results return as data URLs). - Routines are plain Hermes cron jobs namespaced
[bot:<name>] <routine>— they also show up inhermes cron listand the core Cron page. - Bot-to-bot messages are real CLI handoffs:
hermes -p <bot> chat --in ~ -c "Bot Chat" -Q -q "Message from 🤖 <sender> (@<sender>): ...".
No core patches, no background daemons, no extra storage: everything is standard Hermes surface.
| New Agent
| PetDex avatars
| Agent 2 Agent Communications
This is a desktop plugin — it must be installed on the machine running the Hermes desktop app, not on the gateway. Desktop plugins load from the app-side
~/.hermes/desktop-plugins/directory; if you use a remote/SSH gateway, installing on the gateway box does nothing. (Example: gateway on your homelab, desktop app on your MacBook → install on the MacBook.)
git clone https://github.com/NousResearch/Hermes-Bot-Mode ~/.hermes/desktop-plugins/hermes-bots(or download plugin.js into ~/.hermes/desktop-plugins/hermes-bots/)
Then reload plugins in the Hermes desktop app (Ctrl+K → "Reload desktop plugins") or restart the app. A Bots tab appears next to Sessions, and a Routines tile docks beside the conversation.
- Hermes desktop app with the plugin SDK (any recent build)
- Profile session browsing requires a Desktop build with
host.openSession(id, { profile }). - The
profiles.*/image.generategateway RPCs ship in hermes-agent ≥ mid-2026 builds (hermes update). The plugin feature-detects older gateways and degrades gracefully — the roster works everywhere; Advanced editing and avatar generation light up when the RPCs exist.
- Bot-to-bot delivery is per-invocation (the receiving bot sees the message in its inbox when it next runs); live interrupt of a mid-conversation bot is upstream future work.
- Avatar/pet customizations are stored in plugin storage; the profile itself stays clean.
MIT © Nous Research