Appearance
The TUI & Desktop App
The CLI is the workhorse, but Hermes has two other surfaces that solve specific problems the CLI doesn't: the TUI (Terminal UI) gives you a split-pane dashboard with file explorer and tool output visible alongside the conversation, and the Desktop app is a native Electron GUI for when you want drag-and-drop, a command palette, and a session list you can click through. This lesson covers both and when to reach for each.

What you'll learn
- The TUI (
hermes --tui) splits the terminal into Chat, Explorer, and Inspect panes, useful for multi-file work and watching tool output live - The Desktop app (
hermes desktop) is a native Electron GUI with Cmd+K palette, session list, drag-and-drop files, and per-profile remote gateway login - Neither replaces the CLI, each surface is better at specific things, and you'll switch between them depending on the task
The problem
The CLI is a single stream of text. You type, Hermes responds, tool output scrolls past. This works fine for focused tasks, but it breaks down when you need to watch tool output while reading the conversation, or when you're working across multiple files and want to see the file tree without typing ls every time. The TUI and Desktop app solve different versions of this problem.
Options & when to use each
| Surface | Strengths | Weaknesses | Best for |
|---|---|---|---|
| CLI | Fastest, works over SSH, pipe-friendly, minimal overhead | Single text stream, no visual file previews | Quick tasks, scripts, remote servers, cron jobs |
| TUI | Split-pane dashboard, file tree, tool output visible alongside chat | Terminal-only (ANSI colors), no image previews | Multi-file work, debugging, watching long-running tasks |
| Desktop app | Rich GUI, Cmd+K palette, drag-and-drop files, session list, clickable sessions, VS Code themes, native notifications, live subagent watch-windows | Requires desktop install, higher RAM, can't run headless | Session management, reviewing past work, working with files visually, remote gateway login |
The important thing: these aren't separate products. They're three views of the same agent core. A session started in the CLI can be resumed in the Desktop app. A skill created in the TUI is available in the CLI. The config, memory, sessions, and skills are shared across all three.
Build it
The TUI
Launch it:
Start the terminal interface to get the three-pane dashboard layout. This command allocates your current terminal window to the TUI until you exit the session.
bash
hermes --tuiThe screen splits into three panes:
- Chat Pane (left) , the conversation. Same as the CLI, but with the conversation visible alongside the other panes.
- Explorer Pane (top right) , a tree view of the current working directory. Files update in real time as Hermes creates or modifies them.
- Inspect Pane (bottom right) , tool command input, standard output, and status of system calls. This is where you watch
duorgrepoutput scroll by while the conversation continues in the left pane.
Keyboard shortcuts:
| Key | Action |
|---|---|
Tab | Toggle focus between Chat input and Explorer pane |
Ctrl+O | Open the memory configuration overlay |
Esc | Close any active modal |
Make the TUI your default:
bash
hermes config set display.interface tuiThemes:
Customize the visual appearance by setting a global skin value. This configuration persists across all future TUI sessions automatically.
bash
hermes config set display.skin monokaiPick a theme from the available options with /skin monokai in-session or hermes config set display.skin <name>.
To see available themes: /skin with no argument in the TUI.
The Desktop App
Launch it:
Start the Electron-based application from your terminal. If the daemon is not already running in the background, this command spins it up.
bash
hermes desktopOr hermes gui , same thing.
The Desktop app provides:
- Streaming chat , responses appear token by token, same as the CLI
- Session list , click any past session to resume it. No need to remember session IDs
- Cmd+K palette , search for any command, session, or setting. The fastest way to navigate
- Drag-and-drop files , drop a file into the chat window to attach it to the conversation
- Status-bar model picker , click the current model name to switch. Shows the active model at a glance
- Rebindable shortcuts , customize keybindings in Settings
- Native notifications , get notified when a long-running task completes, even if the app is in the background
- Live subagent watch-windows , when Hermes delegates a task to a subagent, a panel opens showing the subagent's conversation in real time
- VS Code Marketplace themes , apply any VS Code theme to the Desktop app
- Per-profile remote gateway login , connect a thin local GUI to a heavy remote agent running on a server. Sign in with OAuth or username/password
Image needed (screenshot): The Hermes Desktop app showing the session list in the sidebar, an active conversation in the main pane, and the Cmd+K palette open with a search query. Suggested filename:
02-hermes-desktop.png
What goes wrong
| Mistake | How you notice it | The fix |
|---|---|---|
| TUI shows corrupted borders or strange characters | Misaligned panes, garbage characters in the frame | Your terminal doesn't support Unicode or true color. Set LANG=en_US.UTF-8 and use a modern terminal (Alacritty, Kitty, iTerm2, Windows Terminal) |
| Desktop app sync lock, shows stale sessions or missing skills | Sessions from the CLI don't appear in the Desktop app, or vice versa | Multiple instances tried to write to ~/.hermes/state.db at once. Close one instance before opening another. The database is SQLite and doesn't handle concurrent writes from separate processes |
| TUI feels sluggish on a slow connection | Panes update with visible delay, typing feels laggy | The TUI needs a real terminal, not a high-latency SSH connection. For remote work, use the CLI over SSH or the Desktop app with remote gateway login instead |
| Desktop app shows a blank window on Linux | The app launches but the window is empty or white | Missing GPU drivers or Wayland compatibility issue. Try launching with --disable-gpu or switch to X11. The Desktop app is Electron-based and inherits Electron's GPU requirements |
Confirm it worked
Validate the visual interfaces by triggering a live filesystem update within the dashboard. You should see the explorer pane react immediately without requiring manual refresh.
bash
# 1. Launch the TUI and verify all three panes are visible
hermes --tui
# 2. In the TUI, run a task that creates a file:
# "Create a file called test.txt with the current date and time"
# Confirm the Explorer pane updates to show the new file
# 3. Exit the TUI (/quit), then launch the Desktop app:
hermes desktop
# 4. In the Desktop app, open Cmd+K and search for the session you just created
# Confirm you can resume it from the session listIf you can see the same session in both the TUI and the Desktop app, the shared session store is working correctly across surfaces.
Next: Project Context Files , teaching Hermes about your project so it doesn't need to be told twice.