Hermes Switch UI — Slash Command Resolution

How /command input is dispatched — client-side handlers vs. agent passthrough

User types / in Composer (chat- composer.tsx) ① TYPE Slash menu opens DEFAULT_SLASH_COMMANDS filtered list + descriptions ② MENU User selects Enter / click / arrow keys command string resolved ③ SELECT known command? ④ DISPATCH yes no (passthrough) CLIENT-SIDE HANDLERS — never reach the agent /new new chat session navigate fresh session /clear clear message history reset visible thread /model open model selector custom browser event /skin open theme picker appearance settings /save save conversation persist session locally /skills browse skills page navigate /skills /plugins list plugins navigate /plugins /mcp MCP server panel navigate /mcp /help show shortcuts modal keyboard shortcut help Passthrough text forwarded as-is to hermes-agent gateway hermes-agent receives /custom-text model responds normally PASSTHROUGH Legend user input / UI client-side handler (stays in browser) passthrough to agent dispatch decision

Client-side handlers

  • · /new — navigate to fresh session
  • · /clear — reset visible message thread
  • · /model — open model selector (custom event)
  • · /skin — open appearance settings (custom event)
  • · /save — persist current conversation
  • · /skills /plugins /mcp — navigate panels
  • · /help — show keyboard shortcuts modal

Passthrough

  • · Any /text not in DEFAULT_SLASH_COMMANDS
  • · Forwarded to hermes-agent as plain message
  • · Model receives the literal text including /
  • · Useful for custom agent commands

Menu UX

  • · / must be the very first character
  • · Continue typing to filter the list
  • · Arrow keys to navigate, Enter to select
  • · Escape dismisses without action
  • · Composer text cleared after panel command