Skip to content

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.

Owl mascot

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

SurfaceStrengthsWeaknessesBest for
CLIFastest, works over SSH, pipe-friendly, minimal overheadSingle text stream, no visual file previewsQuick tasks, scripts, remote servers, cron jobs
TUISplit-pane dashboard, file tree, tool output visible alongside chatTerminal-only (ANSI colors), no image previewsMulti-file work, debugging, watching long-running tasks
Desktop appRich GUI, Cmd+K palette, drag-and-drop files, session list, clickable sessions, VS Code themes, native notifications, live subagent watch-windowsRequires desktop install, higher RAM, can't run headlessSession 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 --tui

The screen splits into three panes:

  1. Chat Pane (left) , the conversation. Same as the CLI, but with the conversation visible alongside the other panes.
  2. Explorer Pane (top right) , a tree view of the current working directory. Files update in real time as Hermes creates or modifies them.
  3. Inspect Pane (bottom right) , tool command input, standard output, and status of system calls. This is where you watch du or grep output scroll by while the conversation continues in the left pane.

Keyboard shortcuts:

KeyAction
TabToggle focus between Chat input and Explorer pane
Ctrl+OOpen the memory configuration overlay
EscClose any active modal

Make the TUI your default:

bash
hermes config set display.interface tui

Themes:

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 monokai

Pick 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 desktop

Or 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

MistakeHow you notice itThe fix
TUI shows corrupted borders or strange charactersMisaligned panes, garbage characters in the frameYour 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 skillsSessions from the CLI don't appear in the Desktop app, or vice versaMultiple 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 connectionPanes update with visible delay, typing feels laggyThe 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 LinuxThe app launches but the window is empty or whiteMissing 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 list

If 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.