Learn Hermes Agent Fundamentals The CLI and Daily Driving Hermes

The CLI and Daily Driving Hermes

Intermediate 🕐 22 min Lesson 3 of 9
What you'll learn
  • Use hermes chat flags (-q, --model, --toolsets, -s) to control a single run
  • Resume sessions with -c/--continue and --resume/-r, and isolate experiments with -w worktree mode
  • Use hermes -z for pure scripted output suitable for piping into other tools
  • Navigate slash commands including /busy for controlling queue/steer/interrupt behavior
  • Recognize that core tools (web search, terminal, file editing) are active by default with zero configuration
  • Build basic input habits: multi-line entry, interrupting, and clipboard image paste

The Core Commands

You already met hermes and hermes --tui in the last lesson. The full hermes chat command underneath them takes several useful flags:

hermes chat -q "your question here"     # One-shot, non-interactive
hermes chat --model "provider/model"    # Override the model for this run
hermes chat --toolsets "web,terminal"   # Load only specific toolsets
hermes chat -s skill1,skill2            # Preload specific skills
hermes chat --verbose                   # Show debug output

Session continuity has two forms. hermes -c (or --continue) resumes your most recent session. hermes --resume <session_id> (or -r) resumes a specific one by ID, useful once you have more than one conversation thread going.

If you want an isolated sandbox to experiment in without touching your real working directory, hermes -w starts an interactive session inside a fresh git worktree. Combine it with a one-shot query using hermes -w -z "prompt".

The Purest Scripted Form

For programmatic use -- piping Hermes output into another script, for example -- there is a stripped-down mode:

hermes -z "your prompt"

This gives you the final response text and nothing else: no banner, no spinner, no tool-call previews on stdout or stderr. If you ever want to call Hermes from a shell script and parse its output, -z is the form to reach for.

Slash Commands

Inside an interactive session, typing / brings up autocomplete (press Tab to cycle through options). The ones you will reach for constantly:

  • /help -- view all available commands
  • /tools -- list what capabilities are currently active
  • /model -- switch model providers mid-session
  • /save -- preserve the current conversation
  • /title SessionName -- name the session so it is easy to find later
  • /status -- show current state
  • /sessions -- browse other sessions without leaving the current one
  • /skills browse -- explore installed skills (more on skills in Hermes Agent Advanced)

There is also a busy-state control: /busy queue|steer|interrupt|status lets you decide what happens when you send a new message while the agent is still working on the last one -- queue it, redirect ("steer") the current work, interrupt outright, or just check status.

Managing Sessions from Outside the Chat

hermes sessions list                       # Browse all past sessions
hermes sessions rename <id> <new title>    # Give an old session a clearer name

This is useful once you have been using Hermes for a while and have a dozen old conversations you want to find again without scrolling through all of them inside the TUI.

Your Agent Already Has Tools -- Nothing to Configure Yet

Before you touch any configuration file, it is worth knowing that a fresh Hermes install is not a blank slate. Web search, terminal command execution, and file editing are enabled by default. From Hermes' own quickstart guide, try this in a session with no setup beyond Lesson 2:

What's my disk usage? Show the top 5 largest directories.

The agent will actually run terminal commands to answer that, not just describe how you might find out yourself. The deeper mechanics of toolsets -- enabling and disabling specific ones, writing code the agent can execute, building custom toolsets -- are covered later in Hermes Agent Advanced. For now, the important fact is simpler: your agent can already act, not just talk, with zero configuration.

Input Habits Worth Building Early

  • Multi-line input: press Alt+Enter, Ctrl+J, or Shift+Enter to add a newline without sending the message.
  • Pasting multi-line text: Hermes auto-detects a multi-line paste and sends it as a single message rather than firing off each line separately.
  • Interrupting: begin typing a new message to stop the agent's current operation -- you do not need to wait for it to finish before redirecting it.
  • Pasting images: Ctrl+V (or Cmd+V on macOS) attaches a clipboard image directly into the conversation.

Changing How the CLI Looks (Optional)

Separate from your agent's personality (covered in Lesson 5), Hermes also has purely visual themes called skins -- banner colors, spinner faces, response-box styling. Check the current skin and see options with:

/skin

Switch to a built-in one with, for example, /skin ares. Built-in options include default, ares, mono, slate, daylight, warm-lightmode, poseidon, sisyphus, and charizard. To make a choice permanent, set it in config.yaml:

display:
  skin: default

This is entirely cosmetic and entirely optional -- skip it if you do not care how the terminal looks.

What You Should Be Comfortable With Now

By the end of this lesson you should be able to start a session, resume an old one by name, send a scripted one-off query from a shell script, find your way around slash commands, and trust that your agent can already act on its environment without any configuration. The next lesson goes into configuration properly -- where settings live, how they layer, and how to run more than one agent identity side by side with profiles.

Key takeaways
  • hermes -z gives pure scripted output (no banner, no spinner) -- the right form for piping Hermes into other scripts or tools
  • /busy queue|steer|interrupt|status controls what happens when you message the agent while it is still working on something else
  • A fresh Hermes install already has web search, terminal access, and file editing enabled -- you do not need to configure toolsets before your agent can act, not just talk
  • hermes -w opens an isolated git worktree session, useful for experimenting without touching your real working directory
  • Skins (/skin) are purely cosmetic and separate from personality (SOUL.md, covered in Lesson 5) -- do not confuse the two systems