How-To Guide
Hermes Agent CLI Commands: Complete Guide
Use the current Hermes Agent CLI for chat, models, config, profiles, skills, MCP, gateways, sessions, cron jobs, diagnostics, and safe updates.
Quick answer
Start with hermes --version, hermes doctor, and hermes chat -q "Reply with exactly: ok". Use hermes for interactive chat; hermes model, config, profile, skills, tools, mcp, sessions, gateway, and cron for administration; and slash commands such as /model, /compress, /new, and /help inside a session. Verify changes in the real workflow, and do not copy obsolete commands such as hermes start, hermes logs, or hermes memory search from old guides.
The Hermes Agent CLI is the canonical control surface for interactive chat, one-shot automation, model selection, profiles, skills, MCP servers, gateways, sessions, cron jobs, memory, diagnostics, and updates. This guide replaces obsolete command examples with the current command tree and shows the verification step that matters after each change. Use the installation guide for first setup, the dashboard guide for private browser-based monitoring, and FlyHermes pricing when you want the outcome without maintaining the CLI host, gateway, or provider stack.
Managed cloud · API costs included · Skill library · Cancel anytime
Before you start:
- ☑Hermes Agent installed from the official installer or an intentional source checkout
- ☑A terminal where
hermes --versionresolves the expected binary - ☑One configured model provider or OAuth login for chat smoke tests
Steps
- 1
Verify the installed CLI before configuring anything
Run
hermes --version,hermes doctor, andhermes status --all. Usehermes config pathandhermes config env-pathto confirm which profile's configuration and secret file the current command will read. - 2
Start interactive chat or run one command
Run
hermesorhermes chatfor the interactive terminal, andhermes chat -q "Reply with exactly: ok"for a non-interactive smoke test. Add--quietfor scripts,--model <model>for one run, or--provider <provider>when the route must be explicit. - 3
Resume, name, or isolate a session
Use
hermes --continuefor the most recent session,hermes --resume <session>for a specific session, andhermes sessions listorhermes sessions browseto find older work. Use--worktreewhen a coding agent needs an isolated Git worktree. Inside chat, use/title,/compress,/new, and/resume;/compressreduces context while/newstarts clean. - 4
Configure the model and inspect the active route
Use
hermes modelfor the provider/model picker,hermes login --provider nousorhermes login --provider openai-codexfor supported OAuth routes, andhermes config set <key> <value>for an explicit setting. Runhermes config checkafter an update andhermes config migrateonly when the check reports missing or outdated options. - 5
Manage skills, tools, MCP servers, and plugins
Use
hermes skills list,hermes skills search <query>, andhermes skills install <id>for skills;hermes tools listfor toolsets;hermes mcp listandhermes mcp test <name>for MCP; andhermes plugins listfor plugins. Tool changes require a new session, while a newly configured MCP server may need/reload-mcpor a process restart. - 6
Separate profiles and credential pools
Use
hermes profile list,hermes profile create <name>, andhermes -p <name> ...when projects need isolated config, secrets, memory, skills, sessions, or bots. Usehermes auth listandhermes auth addfor authorized credential pools; a pool rotates credentials but does not merge subscriptions or billing entitlements. - 7
Operate gateways and scheduled jobs with proof
Use
hermes gateway status,hermes gateway start, andhermes gateway restartfor messaging services. Usehermes cron list,hermes cron status, andhermes cron runs <job>for scheduled work. A connected gateway or completed cron row is only a checkpoint—send one real message or inspect the external artifact before declaring success. - 8
Inspect memory and session state without inventing commands
Use
hermes memory statusto inspect the memory provider andhermes sessions statsto inspect the SQLite session store. Search historical conversations through session search in an active Hermes conversation, and keep durable facts in memory rather than treating full transcripts as memory. - 9
Update and troubleshoot safely
Run
hermes update --checkbeforehermes update, then verifyhermes doctor,hermes gateway status, and one real workflow. Read~/.hermes/logs/agent.log,gateway.log, orerrors.logdirectly when diagnosing services; there is no generalhermes logs --level debugcommand in the current CLI.
Pro Tips
- 💡Run
hermes <command> --helpbefore copying an old blog command; the CLI evolves quickly. - 💡Type
/helpor/commandsinside a chat to inspect in-session commands rather than guessing. - 💡Use
/compress, not/compact, when a long conversation needs context reduction. - 💡Use
hermes --continueorhermes -cto resume recent work andhermes sessions browsewhen you need a specific older session. - 💡Use a separate profile when projects need different secrets, memories, skills, files, or bot tokens.
- 💡After enabling a toolset, start a new session so the tool schema and prompt cache stay consistent.
- 💡Use
hermes doctorfor dependency/config health; use the exact gateway, cron, MCP, or provider command for the failing subsystem. - 💡Keep secrets in the profile
.env, never in chat prompts, shell history, screenshots, or committed config.
Troubleshooting
❌ `hermes` command not found
✅ Open a new shell or reload the correct shell profile, then inspect which hermes. On macOS also check ~/.local/bin is on PATH. Do not reinstall until you know whether the existing binary is merely outside the current PATH.
❌ A copied command returns unknown command or option
✅ Run hermes --help and hermes <command> --help. Commands such as hermes start, hermes stop, hermes logs, hermes config show, and hermes memory search appear in older pages but are not the current general CLI. Use hermes gateway start/stop, hermes config, session search, and direct log files instead.
❌ `hermes chat` hangs or fails before the first response
✅ Run hermes doctor, inspect /provider or hermes config, then try hermes chat -q "Reply with exactly: ok". If using Ollama, verify the model server separately. If a provider returns 401/402/429, fix authentication, credits, or rate limits before changing gateway settings.
❌ The CLI works but Telegram, Discord, or Slack does not
✅ Run the same profile with hermes -p <profile> chat -q "Reply with exactly: ok", then inspect hermes gateway status, platform allowlists, topic/thread routing, and ~/.hermes/logs/agent.log. Finish with one message in the exact destination.
❌ A config or tool change is ignored
✅ Use /new after tool/skill changes, /reload-mcp after MCP changes, and restart the gateway after service config or source-code changes. Long-running processes can keep stale modules and connections in memory.
❌ The CLI and dashboard show different versions or profiles
✅ Compare which hermes, hermes --version, hermes config path, the dashboard backend process, and HERMES_HOME. Restart the stale layer; do not delete profiles or sessions to fix version skew.
FAQ
What are the most useful Hermes Agent CLI commands?
Start with hermes, hermes chat -q, hermes doctor, hermes model, hermes config, hermes profile list, hermes skills list, hermes mcp list, hermes sessions list, hermes gateway status, and hermes cron list.
How do I resume a Hermes Agent session?
Use hermes --continue for the most recent session or hermes --resume <session> for a specific one. Use hermes sessions list or hermes sessions browse to find the session first.
What is the difference between Hermes CLI commands and slash commands?
CLI commands run from your shell and manage Hermes as an application. Slash commands such as /model, /compress, /new, and /tools run inside an active conversation and affect that session or supported gateway surface.
How do I see Hermes Agent logs?
Inspect files under ~/.hermes/logs/, especially agent.log, gateway.log, and errors.log. Use hermes gateway status, hermes cron runs, or hermes mcp test for subsystem-specific evidence. The current CLI does not provide a general hermes logs --level debug command.
Does the CLI share state with the gateway and Web UI?
They can share the same profile-scoped Hermes home, but verify the active profile and HERMES_HOME. A service launched under another profile or stale environment can legitimately show different config, sessions, memory, or version.
Should I use the CLI or Hermes Dashboard?
Use the CLI for setup, exact commands, automation, and low-level diagnosis. Use the self-hosted Dashboard for private configuration and monitoring. Use FlyHermes when you want managed browser/mobile access and uptime without maintaining the host and gateway.
How do I update Hermes Agent from the CLI?
Run hermes update --check, protect important state, then run hermes update. Follow with hermes config check, hermes doctor, hermes gateway status, and one real end-to-end workflow test.
Related setup and cost guides
Install Hermes Agent
Use the official installer, configure one provider, and prove the first CLI response.
Update Hermes Agent safely
Preview updates, protect state, repair partial dependency failures, and verify the real runtime.
Create Hermes Agent skills
Turn repeatable CLI workflows into focused, tested skills.
Schedule Hermes Agent cron jobs
Create, run, diagnose, and verify scheduled work from the CLI.
Hermes Agent profiles guide
Isolate config, secrets, memory, skills, sessions, and messaging bots.