[Feature]: Add a deterministic /to <bot> command for direct Bot routing in Desktop sessions
Feature Description
Hermes Desktop should provide a deterministic command that routes a prompt directly to a specific Bot profile from any regular Desktop session.
For example:
/to research Compare these two products and cite the sources.
/to production Turn the approved analysis into a presentation.Optional user-defined aliases could provide shorter commands:
/research Compare these two products and cite the sources.
/production Turn the approved analysis into a presentation.The command should:
- resolve the target against the Bot Mode roster;
- start the target profile's backend automatically if it is idle;
- execute the prompt with the target profile's own model, memory, skills, tools, and permissions;
- keep the user in the originating session;
- return the target Bot's response to that originating session with clear attribution.
This is not a profile switch. The current profile and session should remain active. It is also not a natural-language reference that depends on an LLM deciding whether to call message_agent.
Motivation
A user can work in a normal session owned by one Bot profile and need a specialist Bot for one task. The current options add friction or change the interaction model:
- open the Bots pane and click the target Bot, which opens or wakes its canonical Bot Chat;
- switch profiles and create a separate session;
- use an
@mention, which is a semantic reference and can depend on session capability and model behavior; - ask the current agent in natural language to contact another Bot, which is not a deterministic command and historically depends on where
message_agentis available; - build a local Desktop plugin for each installation.
A first-class direct-routing command would make multi-profile Bot setups easier to use. It would also preserve separate topic sessions: a coordinating Bot could delegate a specific request to a specialist without moving the user to another profile or mixing all work into one canonical Bot Chat.
Proposed Solution
Add a built-in Desktop slash command such as:
/to <bot-handle> <prompt>Suggested behavior:
- Show Bot handles in slash-command autocomplete.
- Resolve the target through the live, source-qualified Bot Mode roster.
- Reject unknown or ambiguous targets with a clear error and suggestions.
- Dispatch through the structured Bot Mode delivery path rather than through a generated shell command.
- Cold-start the target backend when necessary. The user should not need to click the Bot first.
- Preserve the originating session as the reply route.
- Show an immediate delivery acknowledgement, then append the attributed response when the target finishes.
- Preserve the target profile's normal authorization, approval, model, tool, and isolation rules.
- Support local profiles first. The routing contract should remain source-qualified so connected machines can be supported safely.
Custom aliases such as /research could be an optional extension through the broader custom-command system. The core requirement is one stable built-in command that works without configuration.
Acceptance Criteria
- A user can run
/to <bot> <prompt>from a regular Hermes Desktop session owned by any profile. - The target Bot can be idle when the command is sent; Hermes starts it automatically.
- The current profile and current session do not change.
- The target runs with its own profile configuration and isolation boundaries.
- The response returns to the originating session and identifies the responding Bot.
- Routing does not depend on the current LLM interpreting an
@mentionor choosing to call a tool. - No shell command is assembled from the Bot handle or prompt text.
- Unknown, unreachable, or ambiguous targets fail clearly.
- Tests cover local routing, idle-backend startup, reply correlation, same-named targets on different connections, and authorization failures.
Alternatives Considered
@bot mentions
Mentions are useful for natural-language handoffs, but they are not a command. They also involve mention middleware and agent/tool behavior. The requested workflow is deterministic: the user explicitly selects the target Bot and expects the prompt to be routed there.
Switch profile, then create a new session
This talks directly to the target profile, but it moves the user away from the originating session and splits a single workflow across chats.
Open the target Bot Chat
This requires navigation and can mix unrelated delegated tasks into one canonical conversation.
Ask the current agent to use message_agent
This depends on model interpretation and on the session exposing the tool. A user command should route directly without requiring an intermediate agent decision.
Custom Desktop plugin
A plugin can implement aliases, but every multi-Bot user would have to recreate routing, roster resolution, startup, reply correlation, and safety checks. These are core Bot Mode concerns and are safer as a built-in capability.
Additional Context
This request is Desktop-specific and narrower than a general custom-command framework or messaging-platform routing.
Related issues:
- #94018 and #101556 cover
@mention/message_agenthandoffs from regular Desktop sessions. - #25335 requests general custom slash commands and aliases.
- #52860 requests slash-command profile routing through a messaging gateway.
- #65936 requests
/profile <name>switching on messaging platforms. Switching profiles is different from routing one prompt while keeping the current session active.
Environment where the need was identified:
- Hermes Agent v0.21.3 (2026.9.14)
- Hermes Desktop on Windows 11
- Multiple local Bot Mode profiles
Source: NousResearch/hermes-agent