Sign inSign up

prateekrajgautam/hermes-agent

By prateekrajgautam

•Updated 16 days ago

Image
0

122

prateekrajgautam/hermes-agent repository overview

⁠Hermes Agent Docker

Docker image for the Hermes Agent⁠ by Nous Research with auto-configured credentials.

⁠Why?

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.

⁠Quick 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

⁠How to Access

⁠1. Terminal Chat (default)
docker run -it prateekrajgautam/hermes-agent:latest chat
⁠2. Web Dashboard (port 9119)
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
⁠3. OpenAI-Compatible API (port 8642)
curl http://localhost:8642/v1/chat/completions \
  -H "Authorization: Bearer your-secret" \
  -d '{"model":"hermes-agent","messages":[{"role":"user","content":"Hello"}]}'

⁠Environment Variables

VariableDefaultDescription
MODELanthropic/claude-sonnet-4Default model
PROVIDERautoauto, anthropic, openrouter, openai-codex, nous-api, custom, …
TERMINAL_BACKENDlocallocal, docker, ssh, modal, daytona, …
API_SERVER_ENABLEDtrueEnable 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

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

⁠Access Methods

ModeCommandPortsUse Case
Chat (TUI)chat—Terminal interface
Gatewaygateway9119, 8642Web dashboard + API + messaging
Dashboarddashboard9119Web UI only

⁠How It Works

On every container start:

  1. Writes provided API keys to ~/.hermes/.env (existing keys preserved)
  2. Creates ~/.hermes/config.yaml from MODEL/PROVIDER/TERMINAL_BACKEND if absent
  3. Execs hermes <command> (default: chat)

⁠Security

  • Dashboard binds to 127.0.0.1 (localhost only)
  • API server requires API_SERVER_KEY bearer token
  • Change the default API_SERVER_KEY before exposing ports publicly
  • Use SSH tunnel or reverse proxy for remote access

Tag summary

Content type

Image

Digest

sha256:45547073f…

Size

1.6 GB

Last updated

16 days ago

docker pull prateekrajgautam/hermes-agent