CLI Reference
Hermes Agent CLI
Hermes Agent ships with a full command-line interface. You can manage channels, plugins, models, and the gateway from your terminal — or talk to Hermes directly without a chat UI. Reference and recipes below.
Where the CLI Lives
The Hermes binary is hermes when you install via npm i -g or as a local npm i. When running in Docker, the CLI is inside the container — reach it with docker exec:
# Local install
hermes --help
# Docker install
docker exec -it hermes hermes --help
# Or, if you prefer a shell alias:
alias hermes='docker exec -it hermes hermes'Core Commands
| Command | Purpose |
|---|---|
hermes start | Launch the gateway process (foreground) |
hermes status | Show gateway status, connected channels, current model |
hermes logs | Stream gateway logs (-f to follow) |
hermes config get | Print current config |
hermes config set KEY VALUE | Update a config field (triggers SIGUSR1 reload for hot paths) |
hermes channels list | Show connected channels (telegram, discord, whatsapp, etc.) |
hermes channels enable NAME | Enable a channel from the configured list |
hermes channels login NAME | Run platform pairing for a channel (Telegram QR, Discord token check, etc.) |
hermes plugins list | Show installed plugins |
hermes plugins install NAME | Install a plugin from the registry or a local path |
hermes models list | Show configured model providers |
hermes chat send "..." | Send a message directly to the agent and print the reply |
hermes --tui | Launch the terminal UI (full-screen chat experience in your terminal) |
Talk to Hermes From Your Terminal
The fastest way to confirm Hermes is alive: hermes chat send. It sends a one-shot message to the agent and prints the reply, including any tool calls Hermes made:
hermes chat send "What time is it in Tokyo right now?"For an interactive session in your terminal — full chat history, streaming tokens, slash commands — use the TUI:
hermes --tui
# Or in Docker:
docker exec -it hermes hermes --tuiThe TUI is the same agent your Telegram users are talking to. Same memory, same tools. It's the easiest way to debug what the bot will do before you let real users hit it.
Channels: Pair, Enable, Disconnect
The channels subcommand is the workhorse for connecting to messaging platforms. Typical Telegram setup from the CLI:
# 1. Add the bot token to config
hermes config set channels.telegram.botToken "123:ABC..."
# 2. Enable the channel
hermes channels enable telegram
# 3. Run pairing (this is required when dmPolicy: pairing)
hermes channels login telegram
# 4. Confirm
hermes channels listFor Discord, replace telegram with discord. Same shape for whatsapp, wechat, and feishu. Each channel may need additional config — see Telegram setup, Discord setup, WhatsApp setup.
Plugins and Skills
Plugins extend Hermes with new tools. Install from the registry or a local path:
# Install from registry
hermes plugins install @hermes/web-search
# Install from local path
hermes plugins install -l /opt/hermes/plugins/my-plugin
# List installed
hermes plugins list
# Remove
hermes plugins uninstall @hermes/web-searchSkills are a higher-level abstraction over plugins — pre-packaged toolkits for specific use cases (research, coding, support). See Hermes skills guide.
Model Management
Switch the default model without editing config files:
# List configured providers
hermes models list
# Switch default model (hot-applies, no restart)
hermes config set models.default openrouter/anthropic/claude-sonnet-4.6
# Add a provider
hermes config set models.providers.openai.apiKey "sk-..."Hot-apply paths: channels.*, agents.*, and models.*. Other paths (plugins, gateway auth) need a restart.
Common CLI Recipes
Tail logs while debugging
hermes logs -f --grep ERRORTest a config change without rebooting
# Hot-apply path — channels.* and models.*
hermes config set channels.telegram.dmPolicy "pairing"
hermes channels list # confirm picked upOne-shot ask from a shell script
# Pipe into a script
ANSWER=$(hermes chat send "Summarize the latest AI news in 3 bullets")
echo "$ANSWER"Health probe
# Returns exit 0 if gateway is healthy, non-zero otherwise
hermes status --json | jq -e '.healthy'Hermes CLI on Managed Hosting
On managed Hermes hosting, the CLI is reachable via the gateway URL with your auth token:
# Set the gateway base + token from your dashboard
export HERMES_GATEWAY_URL="https://hermes-abc123.openclawlaunch.app"
export HERMES_AUTH_TOKEN="..."
# Then the CLI talks to it remotely
hermes status
hermes chat send "Hello"Troubleshooting
hermesnot found. Ensure your install added~/.npm-global/bin(or wherever npm puts global binaries) to$PATH. Or use the Docker exec form.- SIGUSR1 thrashing. Each
config seton a non-hot-applicable path triggers a gateway restart. Batch your changes or use hot-apply paths only. - Channel pairing hangs. Telegram pairing waits for you to respond on the bot side. If
hermes channels login telegramhangs, send a message to your bot from a Telegram client to complete the pair. - Permission denied on Docker exec. Add your user to the
dockergroup:usermod -aG docker $USERand re-login.
Skip the CLI — Use the Dashboard
Don't want to learn the CLI? On managed Hermes hosting everything above — channels, plugins, models, logs — is in the web dashboard. Click instead of type. From $3/mo.