The CLI and Daily Driving Hermes
- 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.
- 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