Reference docs fixes: - cli-commands.md: remove non-existent --provider alibaba, add hermes profile/completion/plugins/mcp to top-level table, add --profile/-p global flag, add --source chat option - slash-commands.md: add /yolo and /commands, fix /q alias conflict (resolves to /queue not /quit), add missing aliases (/bg, /set-home, /reload_mcp, /gateway) - toolsets-reference.md: fix hermes-api-server (not same as hermes-cli, omits clarify/send_message/text_to_speech) - profile-commands.md: fix show name required not optional, --clone-from not --from, add --remove/--name to alias, fix alias path, fix export/ import arg types, remove non-existent fish completion - tools-reference.md: add EXA_API_KEY to web tools requires_env - mcp-config-reference.md: add auth key for OAuth, tool name sanitization - environment-variables.md: add EXA_API_KEY, update provider values - plugins.md: remove non-existent ctx.register_command(), add ctx.inject_message() Feature docs additions: - security.md: add /yolo mode, approval modes (manual/smart/off), configurable timeout, expanded dangerous patterns table - cron.md: add wrap_response config, [SILENT] suppression - mcp.md: add dynamic tool discovery, MCP sampling support - cli.md: add Ctrl+Z suspend, busy_input_mode, tool_preview_length - docker.md: add skills/credential file mounting Messaging platform docs: - telegram.md: add webhook mode, DoH fallback IPs - slack.md: add multi-workspace OAuth support - discord.md: add DISCORD_IGNORE_NO_MENTION - matrix.md: add MSC3245 native voice messages - feishu.md: expand from 129 to 365 lines (encrypt key, verification token, group policy, card actions, media, rate limiting, markdown, troubleshooting) - wecom.md: expand from 86 to 264 lines (per-group allowlists, media, AES decryption, stream replies, reconnection, troubleshooting) Configuration docs: - quickstart.md: add DeepSeek, Copilot, Copilot ACP providers - configuration.md: add DeepSeek provider, Exa web backend, terminal env_passthrough/images, browser.command_timeout, compression params, discord config, security/tirith config, timezone, auxiliary models 21 files changed, ~1000 lines added
63 lines
2.3 KiB
Markdown
63 lines
2.3 KiB
Markdown
# Hermes Agent — Docker
|
|
|
|
Want to run Hermes Agent, but without installing packages on your host? This'll sort you out.
|
|
|
|
This will let you run the agent in a container, with the most relevant modes outlined below.
|
|
|
|
The container stores all user data (config, API keys, sessions, skills, memories) in a single directory mounted from the host at `/opt/data`. The image itself is stateless and can be upgraded by pulling a new version without losing any configuration.
|
|
|
|
## Quick start
|
|
|
|
If this is your first time running Hermes Agent, create a data directory on the host and start the container interactively to run the setup wizard:
|
|
|
|
```sh
|
|
mkdir -p ~/.hermes
|
|
docker run -it --rm \
|
|
-v ~/.hermes:/opt/data \
|
|
nousresearch/hermes-agent
|
|
```
|
|
|
|
This drops you into the setup wizard, which will prompt you for your API keys and write them to `~/.hermes/.env`. You only need to do this once. It is highly recommended to set up a chat system for the gateway to work with at this point.
|
|
|
|
## Running in gateway mode
|
|
|
|
Once configured, run the container in the background as a persistent gateway (Telegram, Discord, Slack, WhatsApp, etc.):
|
|
|
|
```sh
|
|
docker run -d \
|
|
--name hermes \
|
|
--restart unless-stopped \
|
|
-v ~/.hermes:/opt/data \
|
|
nousresearch/hermes-agent gateway run
|
|
```
|
|
|
|
## Running interactively (CLI chat)
|
|
|
|
To open an interactive chat session against a running data directory:
|
|
|
|
```sh
|
|
docker run -it --rm \
|
|
-v ~/.hermes:/opt/data \
|
|
nousresearch/hermes-agent
|
|
```
|
|
|
|
## Upgrading
|
|
|
|
Pull the latest image and recreate the container. Your data directory is untouched.
|
|
|
|
```sh
|
|
docker pull nousresearch/hermes-agent:latest
|
|
docker rm -f hermes
|
|
docker run -d \
|
|
--name hermes \
|
|
--restart unless-stopped \
|
|
-v ~/.hermes:/opt/data \
|
|
nousresearch/hermes-agent
|
|
```
|
|
|
|
## Skills and credential files
|
|
|
|
When using Docker as the execution environment (not the methods above, but when the agent runs commands inside a Docker sandbox), Hermes automatically bind-mounts the skills directory (`~/.hermes/skills/`) and any credential files declared by skills into the container as read-only volumes. This means skill scripts, templates, and references are available inside the sandbox without manual configuration.
|
|
|
|
The same syncing happens for SSH and Modal backends — skills and credential files are uploaded via rsync or the Modal mount API before each command.
|