This page documents all hermes terminal commands — the subcommands you run from your shell to configure, manage, and interact with Hermes Agent.
Scope: Covers the command-line interface (CLI) exposed by the hermes executable. For slash commands used inside interactive chat sessions (like /help, /model, /tools), see Interactive Chat.
Related resources include the Environment Variables Reference() (comprehensive environment config) and the CLI Commands Reference() (authoritative usage guide).
All Hermes commands start with the hermes executable, which is installed as a Python console script invoking hermes_cli.main:main() hermes_cli/main.py3-44
Before parsing CLI arguments, the entrypoint checks for profile selection using arguments or the sticky default profile and sets HERMES_HOME accordingly so all config and state reads respect the active profile. Profiles are isolated directories containing their own config.yaml, .env, memory, and skills hermes_cli/main.py123-142
The CLI also sets the process title to hermes for better visibility in system monitors like top or htop hermes_cli/main.py68-105
Sources: hermes_cli/main.py1-44 hermes_cli/setup.py1-12 hermes_cli/doctor.py1-5 hermes_cli/status.py105-112
hermes uses Python's argparse subparsers for command nesting. Below is the top-level hierarchy of commands and select subcommands.
Sources: hermes_cli/main.py5-44 website/docs/reference/cli-commands.md36-89 hermes_cli/setup.py4-9 website/docs/user-guide/features/skills.md39-42 hermes_cli/plugins_cmd.py1-8 hermes_cli/config.py9-15
Global flags modify behavior across multiple commands:
| Option | Description | Code Reference |
|---|---|---|
--version, -V | Show version and exit. | website/docs/reference/cli-commands.md23 |
--profile <name>, -p | Select profile for this invocation. Overrides the sticky default set by hermes profile use. | website/docs/reference/cli-commands.md24 |
--resume <session>, -r | Resume a previous session by ID or title. | website/docs/reference/cli-commands.md25 |
--continue [name], -c | Resume the most recent session, or the most recent session matching a title. | website/docs/reference/cli-commands.md26 |
--worktree, -w | Start in an isolated git worktree for parallel-agent workflows. | website/docs/reference/cli-commands.md27 |
--yolo | Bypass dangerous-command approval prompts. | website/docs/reference/cli-commands.md28 |
--tui | Launch the TUI instead of the classic CLI. Equivalent to HERMES_TUI=1. | hermes_cli/main.py145-157 |
--cli | Force the classic prompt_toolkit REPL. | hermes_cli/main.py153-154 |
Sources: hermes_cli/main.py145-157 website/docs/reference/cli-commands.md19-34
hermes chatThe primary command for interactive or one-shot conversations with the agent.
hermes chat [options] website/docs/reference/cli-commands.md97-98cli.py:main() which sets up the interactive loop using prompt_toolkit cli.py60-93-q "<query>": Send a single query and exit (non-interactive mode) website/docs/user-guide/cli.md26--model <model_id>: Override the default model website/docs/user-guide/cli.md29--toolsets <toolset1,toolset2>: Specify enabled toolsets website/docs/user-guide/cli.md36Sources: cli.py1-13 website/docs/reference/cli-commands.md95-103 website/docs/user-guide/cli.md21-52
hermes modelManages the default LLM provider and model.
model section in ~/.hermes/config.yaml hermes_cli/config.py5-15Sources: hermes_cli/models.py1-20 hermes_cli/config.py1-15
hermes gatewayRuns or manages the messaging gateway service.
gateway/run.py handles the main daemon lifecycle, including platform adapter initialization and session management gateway/run.py1-14run, setup, install, start, stop, status hermes_cli/main.py8-13Sources: gateway/run.py1-56 hermes_cli/main.py8-13
hermes configManages configuration and environment variables.
config.yaml → .env → defaults website/docs/user-guide/configuration.md53-60~/.hermes/.env while keeping other settings in config.yaml hermes_cli/config.py4-6edit, get, set, unset, wizard hermes_cli/config.py9-15Sources: hermes_cli/config.py1-15 website/docs/user-guide/configuration.md30-64
hermes setupThe interactive setup wizard for first-time configuration or re-configuration.
--portal flag for Nous Portal OAuth integration hermes_cli/setup.py182-190HERMES_HOME is created and saves configuration to config.yaml and .env hermes_cli/setup.py138-150Sources: hermes_cli/setup.py1-30 hermes_cli/setup.py138-150
This diagram shows how a user-requested provider string is resolved into active credentials and a functional LLM client.
Sources: hermes_cli/auth.py156-176 hermes_cli/runtime_provider.py1-25 agent/auxiliary_client.py116-132
The hermes doctor and hermes status commands provide system health visibility.
Sources: hermes_cli/doctor.py1-5 hermes_cli/status.py105-112 hermes_cli/status.py130-131
Refresh this wiki
This wiki was recently refreshed. Please wait 2 days to refresh again.