Bot Mode: Turn Profiles Into a Roster of Named Bots
Bot Mode turns your Hermes profiles into a roster of named Bots, each with its own role, model, memory, skills, and avatar. Bots run recurring routines, deliberate together in group chats, and message each other directly. Build a specialist Bot once and it stays there forever, one click away.
Bot Mode ships built into the desktop app and is on by default — no install needed. It appears as a Bots tab next to Sessions in the left sidebar, with a Routines tile docked beside the conversation while the Bots tab is active.
A Bot Is a Profile
There is no new primitive to learn: a Bot is a Hermes profile — isolated config, memory, skills, credentials, and chat history living under ~/.hermes/profiles/<name>/. Bot Mode is a UI over that primitive, so everything you do in it is visible from the CLI too:
hermes -p <bot> chatopens the same agent- Bot routines appear in
hermes cron list
No core patches, no background daemons, no extra storage. The roster shows one row per agent profile with its avatar, latest-message preview, and timestamp. Clicking a Bot lands in its chat — every Bot has a canonical, persistent Bot Chat conversation created the moment the Bot is born.
Creating and Organizing Bots
Hit New Agent in the roster. The quick path is three fields — Name, Title, Description — and the Bot exists in seconds, introducing itself as the first message of its new Bot Chat. An Advanced disclosure opens the full capabilities surface:
- Clone from an existing profile's config, skills, SOUL, and memory, or pick a fresh profile
- Create empty to skip bundled skills for a minimal profile
- Pin a model & provider — different Bots can run on different models side by side
- Add a custom
SOUL.mdpersona - Toggle per-skill, per-toolset, and per-MCP-server enablement
- Shared keys — by default the new Bot shares one OAuth/token pool with the main profile
Sections are folders you make yourself (Clients, Team, whatever fits) as a second axis beside the automatic per-gateway grouping. Creating a section never deletes its Bots — they return to Unassigned.
Every Bot also gets a face. Avatars start as deterministic blob faces drawn from the Bot's name (same name, same face, forever), with geometric faces (7 shapes × 10 colors), uploaded images, AI-generated portraits, and even a pixel pet that bounces beside the avatar while the Bot is busy.
Routines and Groups
The Routines pane attaches recurring tasks to the Bot that does them — "summarize my inbox every morning" lives next to the Bot responsible. Routines are plain Hermes cron jobs namespaced [bot:<name>] <routine>, so they also show up in hermes cron list. Runs land in the Bot's own chat history.
Open a group row (2–6 Bots) to get a shared room where the whole group coordinates. Your message triggers up to three serial rounds of member turns; @-mentioned Bots respond (everyone responds when nobody is mentioned), and hard caps of 10 messages per send keep rooms from spinning. Not every Bot replies to everything — speaking is each member's own choice, and a Bot replies only when it has something new to add.
Bot-to-Bot Messaging
Bots message each other with attribution, and you can hand work off from any chat:
- @mentions — type
@researcherand the composer's autocomplete helps pick the right Bot; the Bot composes its own message rather than forwarding your words verbatim - Direct messages — every Bot Chat carries the
message_agenttool:message_agent(target="researcher", message="…")validates the target, prefixes attribution, and delivers into the teammate's canonical Bot Chat
This works across machines. Register several backends in Settings → Connections, and Bots on one machine reach Bots on another through the Desktop relay automatically. For always-on machine-to-machine messaging with no desktop in the loop, register a peer with hermes peer add, then send a DM with hermes peer dm spark < /tmp/dm.txt.
Turning It Off
Bot Mode is a bundled desktop plugin. Flip its switch off in Capabilities → Plugins → Bots and the roster, Routines pane, and composer middleware unregister live, no restart needed. Your profiles, sessions, and cron jobs are untouched either way — Bot Mode never owns your data, it only renders it.
Key Takeaways
- A Bot is just a Hermes profile — everything you configure in the desktop is fully visible from the terminal via
hermes -p <bot> chatandhermes cron list. - Bots carry their own role, model, memory, skills, and avatar, and can be cloned, pinned to a provider, or given a custom
SOUL.md. - Routines are plain cron jobs namespaced
[bot:<name>], and group chats (2–6 Bots) coordinate in shared rooms with turn caps. - Bots message each other with attribution via
@mentionsand themessage_agenttool, both locally and across connected machines through the Desktop relay.