Hermes Agent Bot Mode
Bot Mode is a view built into the Hermes Desktop app that shows every Hermes profile as a named “bot” with its own persistent chat, model, memory, skills, credentials, avatar, and scheduled routines. Bots can @mention each other, send each other direct messages, and sit together in group chats.
It is bundled with Desktop and on by default: look for the Bots tab next to Sessions in the left sidebar. A Bot is not a new kind of object — it is an ordinary Hermes profile, so everything Bot Mode does is also reachable from the CLI.
Checked against official Nous Research sources on September 26, 2026 (Hermes Agent v0.21.5).
Bot Mode is not a Telegram or Discord bot
“Bot” means four different things around Hermes. Most confusion in search results comes from mixing them up:
| Term | What it is | Where it lives | Owner page |
|---|---|---|---|
| Bot Mode bot | A Hermes profile shown as a named teammate in Desktop, with its own canonical Bot Chat and routines | Desktop Bots tab; files under ~/.hermes/profiles/<name>/ | This page |
| Messaging bot | Your agent reachable from Telegram, Discord, Slack, etc. through the messaging gateway | hermes gateway process plus a platform bot token | Telegram setup |
| Profile | An isolated Hermes configuration: config, memory, skills, credentials, sessions | hermes profile create | Official profiles docs |
| Subagent | A short-lived child agent spawned by delegate_task to do part of one job | Inside a running turn | Official delegation docs |
The pieces combine: a Bot Mode bot is a profile, and that profile can also run its own messaging gateway so the same bot answers in Telegram.
Where to find it — and why the Bots tab might be missing
- Open Hermes Desktop and switch the left sidebar from Sessions to Bots. While the Bots tab is active, a Routines pane docks beside the conversation.
- Bot Mode is a bundled Desktop plugin. If the tab is gone, check Capabilities → Plugins → Bots; switching it off removes the roster and Routines pane live without touching your profiles, sessions, or cron jobs.
- Bot Mode was bundled starting with the v0.20.3 tag (August 17, 2026). An older Desktop build will not have it — update Desktop first.
- Bot Mode is a Desktop feature. The terminal CLI, TUI, and web dashboard have no roster view, but they reach the same bots through profiles (see CLI parity below).
Creating a bot
Click New Agent in the roster. The quick path is three fields — Name, Title, Description — and the bot introduces itself as the first message of its new Bot Chat. Advanced exposes:
- Clone from an existing profile (config, skills, SOUL.md, memory) or start fresh; Create empty skips bundled skills.
- Model & provider pin — different bots can run different models side by side; leave it unset to inherit.
- Custom SOUL.md for persona and standing instructions.
- Per-skill, per-toolset, and per-MCP-server enablement.
- Copy API keys from the main profile (on by default). Static API keys are copied; OAuth logins such as Anthropic, OpenAI Codex, and xAI are not — sign the bot in separately with
hermes -p <name> auth add <provider>.
Each bot has one canonical Bot Chat that is meant to last forever. Typing /new or /reset there is rerouted to /compact (fresh working context, same conversation). Ordinary sessions on the same profile still get a normal /new.
What each bot owns
Because a bot is a profile, it has its own copy of everything a profile isolates. This is also why a bot does not “know” what your main agent remembers — see Hermes memory for how per-profile memory works.
| Owned per bot | Notes |
|---|---|
| Config and model | Optional model pin; otherwise inherited from the launch profile |
| Memory (MEMORY.md, USER.md) | Separate from every other bot |
| Skills, toolsets, MCP servers | Chosen at creation or later via Edit Profile; see Hermes skills |
| Credentials | Static keys copied at creation; OAuth logins signed in per bot |
| Chat history | The canonical Bot Chat plus any ordinary sessions |
| Routines | Hermes cron jobs named [bot:<name>] <routine>; runs land in the bot's own chat |
| Look | Avatar, title, description stored in profile metadata, so every connected Desktop shows the same bot |
Group chats and bot-to-bot messages
- @mentions: type
@researcher have a look at thisin any chat. The mentioned bot writes its own message with themessage_agenttool — your text is not forwarded verbatim — and the reply comes back attributed. - Direct messages: every canonical Bot Chat carries
message_agent. Delivery is queued; aqueuedacknowledgement confirms admission, not a finished reply. - Group chats: rooms hold 2–6 bots. One message triggers at most 3 serial rounds of member turns with a cap of 10 messages per send, and the room settles when a full round stays silent. Put
stopnext to a mention (stop @bot) to hold that member. - Across machines without Desktop:
hermes peerlets bots on one gateway message bots on another gateway directly.
# Register another machine's gateway as a peer$hermes peer add spark --url http://spark.lan:8377 --key <API_SERVER_KEY>$hermes peer list$# Send a DM whose body comes from a file$hermes peer dm spark/researcher < ~/.hermes/cache/scratch/dm.txt
How many bots can run at once
Each local bot runs in its own backend process. Desktop keeps at most Settings → Advanced → Warm Bot Backends alive at once — default 3, roughly 60 MB each. Idle backends are reaped after 10 minutes by default. Opening a bot while every slot is busy waits up to 30 seconds and then fails with timed out waiting for a free local slot; raise the setting if you run large group chats.
The official docs note that an exited (1) line in desktop.log right after an idle-reap message is that cleanup, not a crash. Earlier Desktop builds could spawn a backend per profile on every roster refresh; the v0.21.2 release (September 11, 2026) lists that “spawn storm” as fixed.
Bots on other machines and in Hermes Cloud
Register several backends under Settings → Connections — the local runtime, remote gateways, SSH hosts, or Hermes Cloud instances — and the roster shows bots from all of them. Duplicate names get device handles such as @research-homelab. A bot's chats, memory, and routines stay on the machine that owns its profile; Desktop relays messages between connections while it is running. The Create on picker in New Agent creates a bot directly on another connected machine.
Bot Mode does not keep bots online by itself. A bot whose profile lives on your laptop stops when the laptop sleeps. For always-on bots, the profile has to live on an always-on machine — see Hermes hosting options.
CLI parity
| In Bot Mode | From a shell |
|---|---|
| Chat with a bot | hermes -p <bot> chat |
| A bot's files, skills, memory | ~/.hermes/profiles/<bot>/ |
| Routines | hermes cron list (jobs named [bot:<name>] …) |
| Create / inspect bots | hermes profile create, hermes profile list |
Timeline
- Started as a separate public-beta Desktop plugin in the NousResearch/Hermes-Bot-Mode repository.
- v0.20.3 (August 17, 2026): the Bot Mode plugin is bundled with Hermes.
- v0.21.0 (August 31, 2026): headlined as built in and default-on, alongside
hermes peerbot-to-bot DMs and cron jobs that keep memory between runs. - v0.21.2 (September 11, 2026): backend spawn-storm fixes for Bot Mode rosters.
Primary sources
- Bot Mode — official docs
- Hermes Desktop — official docs
- Profiles — official docs
- Connecting Desktop to many Hermes instances — official docs
- Hermes Agent v0.21.0 release notes
- Hermes Agent v0.21.2 release notes
HermesAgentAI.org is an independent educational documentation resource and community guide. It is not affiliated with, sponsored by, or endorsed by Nous Research or FlyHermes. Hermes Agent is released under the MIT License by Nous Research.
Where to go next
Install the app that Bot Mode lives in, and connect it to remote backends.
Why each bot remembers different things and how to inspect it.
Give each specialist bot only the skills it needs.
Run always-on bots on Nous Research's managed hosting.