Hermes Terminal UI is a feature of 📝Hermes Agent that provides its modern terminal front-end, backed by the same Python runtime as the classic CLI and sharing its agent, sessions and 📝slash commands. It runs as a Node.js subprocess launched from the Python CLI and attaches to the profile's shared 📝Hermes Gateway over a local WebSocket, starting a gateway when none is running.
It exists to give the same agent a cleaner, more responsive surface: the banner paints before the app finishes loading, so the terminal never feels frozen at startup, and pickers and approval prompts render as modal panels rather than inline flows.
It is for anyone running Hermes interactively in a terminal. The docs call it the recommended way to do so, while the classic CLI, with multiline editing, slash-command autocomplete and interrupt-and-redirect, remains the shipped default.
Key Capabilities
- Non-blocking input — messages can be typed and queued before the session is ready, and the first prompt sends the moment the agent comes online.
- Rich overlays — the model picker, session picker, and approval and clarification prompts all render as modal panels instead of inline flows.
- Flicker-free rendering — alternate-screen rendering with differential updates means no flicker while streaming and no scrollback clutter after quitting.
- Shared sessions — the TUI and classic CLI both write to
~/.hermes/state.db, so a session started in one can be resumed in the other. - Live section panels — thinking and tool calls stream expanded by default, 📝subagent output stays collapsed, and
/detailsreshapes each at runtime.
Getting Started
- Install Node.js 20 or later;
hermes doctorverifies it. - Run
hermes --tui; the first launch installs the TUI's Node dependencies. - Resume the latest session with
hermes --tui -c, or a specific one with-r <id>. - Set
display.interface: tuiin~/.hermes/config.yamlto make the TUI the default. - Run
hermes --clito drop back to the classic CLI for a single invocation.
Related
- 📝Hermes Dashboard — its Chat tab runs an embedded TUI attached to the dashboard's own gateway.
