sha256:a4e6fce39afb5c748b80c9adde00497bb99a90abdc963b132f87a14875ab1bcb
Last pushed
2 days by dockerpublicbot
Type
Sandbox Kit
Manifest digest
sha256:a4e6fce39afb5c748b80c9adde00497bb99a90abdc963b132f87a14875ab1bcb
schemaVersion: "2"
kind: sandbox
name: hermes-agent
displayName: Hermes Agent
description: The self-improving AI agent by Nous Research — creates skills from experience, supports 200+ models via OpenRouter, and runs anywhere
sandbox:
image: docker.io/sbx/hermes-agent-image:latest
entrypoint:
- sh
command:
default:
- /home/agent/.local/bin/hermes-start.sh
interactive:
- /home/agent/.local/bin/hermes-start.sh
agentInstructions:
filename: AGENTS.md
permissions:
network:
allow:
- openrouter.ai
- '*.openrouter.ai'
- api.openai.com
- api.anthropic.com
- platform.claude.com:443
- models.dev
- opencode.ai
- github.com
- api.github.com
- raw.githubusercontent.com
- api.githubcopilot.com
- hermes-agent.nousresearch.com
credentials:
- service: anthropic
apiKey:
name: ANTHROPIC_API_KEY
proxyManaged: true
inject:
- domain: api.anthropic.com
header: x-api-key
format: '%s'
oauth:
tokenEndpoint:
host: platform.claude.com
path: /v1/oauth/token
resourceHosts:
- api.anthropic.com
sentinels:
accessToken: sk-ant-oat01-proxy-managed
refreshToken: sk-ant-ort01-proxy-managed
credentialFile:
path: ~/.claude/.credentials.json
structure:
claudeAiOauth:
accessToken: '{{.AccessToken}}'
expiresAt: '{{.ExpiresAt}}'
refreshToken: '{{.RefreshToken}}'
scopes: '{{.Scopes}}'
- service: openai
apiKey:
name: OPENAI_API_KEY
proxyManaged: true
inject:
- domain: api.openai.com
header: Authorization
format: Bearer %s
- service: openrouter
apiKey:
name: OPENROUTER_API_KEY
proxyManaged: true
inject:
- domain: openrouter.ai
header: Authorization
format: Bearer %s
environment:
variables:
HERMES_HOME: /home/agent/.hermes
setup:
startup:
- command:
- sh
- /home/agent/.local/bin/hermes-anthropic-auth.sh
user: "1000"
description: Resolve which of the anthropic/openai/openrouter credentials are genuinely bound, record the result for the entrypoint and `sbx exec` shells, and pin the active provider in config.yaml when only an Anthropic OAuth login is bound