Docker image for the Hermes Agent by Nous Research with auto-configured credentials.
The official install is an interactive curl | bash wizard. This image runs it headless at build time and initializes your API keys and config.yaml from environment variables on first start.
docker run -it --rm \
--name hermes \
-v ./hermes_data:/root/.hermes \
-v ./workspace:/workspace \
-e MODEL=anthropic/claude-sonnet-4 \
-e ANTHROPIC_API_KEY=sk-ant-... \
prateekrajgautam/hermes-agent:latest chat
docker run -it prateekrajgautam/hermes-agent:latest chat
docker run -p 127.0.0.1:9119:9119 \
-e API_SERVER_ENABLED=true \
-e API_SERVER_KEY=your-secret \
prateekrajgautam/hermes-agent:latest gateway
# Open http://localhost:9119
curl http://localhost:8642/v1/chat/completions \
-H "Authorization: Bearer your-secret" \
-d '{"model":"hermes-agent","messages":[{"role":"user","content":"Hello"}]}'
| Variable | Default | Description |
|---|---|---|
MODEL | anthropic/claude-sonnet-4 | Default model |
PROVIDER | auto | auto, anthropic, openrouter, openai-codex, nous-api, custom, … |
TERMINAL_BACKEND | local | local, docker, ssh, modal, daytona, … |
API_SERVER_ENABLED | true | Enable API server (requires gateway) |
API_SERVER_KEY | — | Required for API/web access |
ANTHROPIC_API_KEY | — | Anthropic key |
OPENROUTER_API_KEY | — | OpenRouter key |
OPENAI_API_KEY | — | OpenAI key |
NOUS_API_KEY | — | Nous Portal API key |
GOOGLE_API_KEY / GEMINI_API_KEY | — | Google AI Studio keys |
Set keys at runtime with -e, or persist them in ~/.hermes/.env inside the data volume.
docker-compose.yml file
services:
hermes:
image: prateekrajgautam/hermes-agent:latest
container_name: hermes
restart: unless-stopped
tty: true
stdin_open: true
ports:
- "127.0.0.1:9119:9119" # Web dashboard
- "127.0.0.1:8642:8642" # API server
volumes:
- ${HERMES_DATA_DIR:-./hermes_data}:/root/.hermes
- ${HERMES_WORKSPACE:-./workspace}:/workspace
environment:
- MODEL=${MODEL:-anthropic/claude-sonnet-4}
- PROVIDER=${PROVIDER:-auto}
- API_SERVER_ENABLED=${API_SERVER_ENABLED:-true}
- API_SERVER_KEY=${API_SERVER_KEY}
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}
- OPENROUTER_API_KEY=${OPENROUTER_API_KEY:-}
- NOUS_API_KEY=${NOUS_API_KEY:-}
command: chat # or 'gateway' for web access
.env file
MODEL=anthropic/claude-sonnet-4
PROVIDER=auto
API_SERVER_ENABLED=true
API_SERVER_KEY=change-me-in-production
ANTHROPIC_API_KEY=sk-ant-...
OPENROUTER_API_KEY=sk-or-...
HERMES_DATA_DIR=./hermes_data
HERMES_WORKSPACE=./workspace
| Mode | Command | Ports | Use Case |
|---|---|---|---|
| Chat (TUI) | chat | — | Terminal interface |
| Gateway | gateway | 9119, 8642 | Web dashboard + API + messaging |
| Dashboard | dashboard | 9119 | Web UI only |
On every container start:
~/.hermes/.env (existing keys preserved)~/.hermes/config.yaml from MODEL/PROVIDER/TERMINAL_BACKEND if absenthermes <command> (default: chat)127.0.0.1 (localhost only)API_SERVER_KEY bearer tokenAPI_SERVER_KEY before exposing ports publiclyContent type
Image
Digest
sha256:45547073f…
Size
1.6 GB
Last updated
16 days ago
docker pull prateekrajgautam/hermes-agent