Hermes.News

Technical news, guides and deep-dives on Hermes Agent by Nous Research


MessagingSep 19, 2026815 words

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> chat opens 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.md persona
  • 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 @researcher and 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_agent tool: 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> chat and hermes 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 @mentions and the message_agent tool, both locally and across connected machines through the Desktop relay.