⭐ Get the Agent OS + join 3,400+ founders inside the AI Profit Boardroom → Join AIPB ($69/mo)

GoldieBench Blog · 10 min read

Hermes Agent Backend: Every Type Explained, And The Models Worth Putting Behind It

A Hermes Agent backend decides where commands run and which model thinks. See all seven terminal backends, how to switch, and the benched models to pair.

Hermes Agent Backend: Every Type Explained, And The Models Worth Putting Behind It — illustrated hero

A Hermes Agent backend is the layer that does the work behind the chat, and the main one is the terminal backend, which decides where the agent's shell commands run.

Hermes Agent is the free, open-source AI agent from Nous Research, and its docs list seven terminal backends: local, Docker, SSH, Modal, Daytona, Vercel Sandbox and Singularity.

The word "backend" is also used for the model provider, the web search provider, the browser provider, the memory provider, and Hermes itself running as a backend for other apps.

I took every backend fact on this page from the official Hermes docs and the read-only help output on my own install, which is version 0.21.4.

Below you'll get each backend type, the command that sets it, the security and cost trade-offs, and then a later section on which model to run behind it.

Hermes Agent backend types at a glance

Backend typeWhat it decidesDocumented optionsHow you set it
TerminalIt decides where shell commands run.The options are local, docker, ssh, modal, daytona, vercel_sandbox and singularity.You run hermes config set terminal.backend docker.
ModelIt decides which model does the thinking.The options include Nous Portal, OpenRouter, Anthropic, OpenAI, Bedrock, Ollama, LM Studio and custom endpoints.You run hermes model.
WebIt decides who serves search and page extraction.The options include Firecrawl, SearXNG, Brave, DuckDuckGo, Exa, Parallel, Tavily and Perplexity.You run hermes tools or set web.backend.
BrowserIt decides which browser the agent drives.The options include Browser Use, Browserbase, Firecrawl, Camofox, Lightpanda and local Chromium.You run hermes tools and open Browser Automation.
MemoryIt decides where extra long-term memory lives.The options include Honcho, OpenViking, Mem0, Holographic, RetainDB, ByteRover and Supermemory.You run hermes memory setup.
Hermes as a backendIt decides how other apps reach your agent.The options are the API server, ACP, MCP serve and hermes serve.You run the matching command.

Hermes is released under the MIT licence, so the software is free and the only costs come from the services you plug into those slots.

The terminal backend: where commands run

The docs say each terminal backend determines where the agent's shell commands actually execute.

BackendWhere commands runIsolationThe docs say it's best for
localThey run on your machine directly.There is none.It's best for development and personal use.
dockerThey run in one persistent Docker container.It is full, with namespaces and dropped capabilities.It's best for safe sandboxing and CI/CD.
sshThey run on a remote server over SSH.It is a network boundary.It's best for remote dev and powerful hardware.
modalThey run in a Modal cloud sandbox.It is a cloud VM.It's best for ephemeral cloud compute and evals.
daytonaThey run in a Daytona workspace.It is a cloud container.It's best for managed cloud dev environments.
vercel_sandboxThey run in a Vercel Sandbox.It is a cloud microVM.It's best for cloud execution with snapshot-backed persistence.
singularityThey run in a Singularity or Apptainer container.It uses namespaces.It's best for HPC clusters and shared machines.

The default is local, and my own config is still set to it.

How to switch your Hermes Agent backend

You check the current terminal backend with hermes config get terminal.backend.

You change it with hermes config set terminal.backend docker, and you swap in any of the other six names.

The value is saved in ~/.hermes/config.yaml under the terminal: block, so you can edit the file by hand too.

If a new backend fails, you set the value back to local and run hermes doctor.

BackendWhat it needs before you switch
localIt needs nothing.
dockerIt needs Docker Desktop or Docker Engine running, and Podman works with HERMES_DOCKER_BINARY=podman.
sshIt needs TERMINAL_SSH_HOST and TERMINAL_SSH_USER in ~/.hermes/.env.
modalIt needs MODAL_TOKEN_ID and MODAL_TOKEN_SECRET, or a ~/.modal.toml file.
daytonaIt needs DAYTONA_API_KEY.
vercel_sandboxIt needs VERCEL_TOKEN, VERCEL_PROJECT_ID and VERCEL_TEAM_ID.
singularityIt needs the apptainer or singularity binary on your path.

How each terminal backend behaves

Local

Commands run with your real home folder, so tools like git, gh and npm find the logins they already use.

The docs warn that the agent has the same filesystem access as your user account.

Docker

Hermes starts one long-lived container on first use and sends every terminal, file and code call into it with docker exec.

A package the agent installs once is still there on the next command, and it's still there after you restart Hermes.

Setting container_persistent: false gives every chat its own fresh container.

Setting docker_network: false runs the container with no network at all.

Container backends default to 1 CPU core and 5 GB of memory, and you can raise both.

SSH

Hermes keeps one shell alive on the remote host, so the working directory and environment variables survive between commands.

The tools page recommends SSH for security, because the agent can't modify its own code from a different machine.

Modal, Daytona and Vercel Sandbox

These three are cloud sandboxes, and each needs its own account.

They save your files between sessions when persistence is on, and the docs say they don't save running processes.

Daytona caps disk at 10 GiB, and Vercel Sandbox supports the node24, node22 and python3.13 runtimes.

Singularity

This backend exists for HPC clusters and shared machines where Docker isn't available.

The model backend: which provider does the thinking

The second meaning of a Hermes Agent backend is the model provider.

You add a provider with hermes model in your terminal, which is the full wizard for logins and keys.

You switch between providers you've already added with /model inside a chat.

Provider backendHow you set it
Nous PortalYou run hermes setup --portal on a new install, or pick it in hermes model.
OpenRouterYou add OPENROUTER_API_KEY to ~/.hermes/.env.
AnthropicYou pick it in hermes model, with a login or an API key.
OpenAI APIYou add OPENAI_API_KEY, and the provider name is openai-api.
AWS BedrockYou pick AWS Bedrock in hermes model, and it uses your standard AWS credentials.
OllamaYou choose Custom endpoint and enter http://localhost:11434/v1.
LM StudioYou pick LM Studio in hermes model, and its server starts on port 1234.
Custom endpointYou set provider: custom and a base_url for any OpenAI-compatible server.

The docs call Nous Portal the recommended way to run Hermes, because one login covers 300+ models and the Tool Gateway.

The docs warn that Ollama starts with a small context window, so you set context_length for a local model.

You can add a backup chain with hermes fallback, which switches provider when the main model fails.

The AWS route has its own page, Hermes Agent on Bedrock.

Web, browser and memory backends

Hermes has two web tools, web_search and web_extract, and Firecrawl is the default backend for both.

The docs also list SearXNG, Brave Search, DuckDuckGo, Exa, Parallel, Tavily, Perplexity, Keenable, xAI and OpenAI Native.

A fresh install works with no key, because requests rotate across the free tiers of Exa, Parallel, Firecrawl and Keenable.

You can split the work with web.search_backend and web.extract_backend.

The browser toolset has its own backends, which are Browser Use, Browserbase, Firecrawl, Camofox, Lightpanda, your own Chrome over CDP and a local Chromium.

I explain that toolset in the Hermes Agent browser guide.

Memory has a built-in layer in MEMORY.md and USER.md, and that layer is always on.

You can add one external provider with hermes memory setup, and I rank them in the best Hermes Agent memory.

Using Hermes Agent as a backend

The last meaning flips the direction, because Hermes becomes the backend for another app.

ModeHow you start itWhat connects to it
API serverYou set API_SERVER_ENABLED=true and API_SERVER_KEY in ~/.hermes/.env, then run hermes gateway.Any OpenAI-compatible frontend connects on port 8642.
ACP serverYou run hermes acp.Editors such as VS Code, Zed and JetBrains connect over stdio.
MCP serverYou run hermes mcp serve.Other agents such as Claude Code and Cursor connect over stdio.
Backend serverYou run hermes serve.The Hermes desktop app and remote clients connect on port 9119.
Subscription proxyYou run hermes proxy start.Apps that only need the raw model connect to it.

The API server speaks the OpenAI Chat Completions and Responses formats, and the docs name Open WebUI, LobeChat and LibreChat as frontends.

The agent answers with its full toolset, so the frontend gets terminal, files, web search, memory and skills behind it.

The hermes serve command binds to 127.0.0.1 by default, and a public bind always requires an auth provider.

Security trade-offs: local versus Docker

BackendIsolationDangerous command check
localIt has none, because it runs on the host.The check is on.
sshIt is a remote machine.The check is on.
dockerIt is a container.The check is skipped, because the container is the boundary.
singularityIt is a container.The check is skipped.
modal, daytona, vercel_sandboxThey are cloud sandboxes.The check is skipped.

On local, Hermes checks commands against a list of dangerous patterns and asks you before it runs a match.

On Docker, the container starts with all Linux capabilities dropped, no privilege escalation and a limit of 256 processes.

The docs recommend docker, modal, daytona or vercel_sandbox for production gateway deployments.

A prompt only protects you when a human is there to read it, and a container protects you when nobody is watching.

Any secret you list in docker_forward_env can be read by code inside the container, so forward as few as you can.

Performance and cost

The local backend has no sandbox to start, so nothing sits between the agent and your shell.

The Docker backend reuses one running container, and the SSH backend reuses one connection and one shell.

Every command has a 180 second timeout by default.

The docs warn that slow shell startup files add delay to every command, because the agent starts many shells.

Local, Docker, SSH and Singularity cost nothing beyond your own hardware or server.

Modal, Daytona and Vercel Sandbox are paid cloud services with their own pricing, and your model provider bills separately.

If you want the agent to keep working on these backends after you log off, read Hermes Agent background tasks.

Which model to put behind your Hermes Agent backend

Hermes Agent doesn't ship its own model, so the model backend you pick decides how good the agent is.

I use GoldieBench to shortlist that model, and I want to be straight about what the board measures.

GoldieBench gives each model the same one-shot prompt to build a game, a page, a simulation or a visual, then scores the rendered result from 0 to 10.

It doesn't test terminal backends, Docker sandboxes or tool calling, so there is no GoldieBench score for local versus Docker.

The scores do show how well a model handles hard, multi-step build work, which is the closest public signal I have for an agent's brain.

ModelLive GoldieBench averageBuilds scoredHow it reaches Hermes
Claude Opus 58.2750It runs through a cloud provider backend.
GPT-5.6 Sol8.1650It runs through a cloud provider backend.
MiniMax M37.9747It runs through a cloud provider backend.
Kimi K37.8950It runs through a cloud provider backend.
GLM-5.27.7747It runs through a cloud provider backend.
Qwable 5 27B Coder7.1441It runs on your own machine through a custom endpoint.

Those numbers are the live averages on each model page when I checked on 12 October 2026.

How I'd pair a model with each backend

A heavy terminal job inside Docker involves many decisions in a row, so I'd put a frontier model such as Claude Opus 5 behind it.

A cheap job that runs all day is a better fit for a lower-cost model such as MiniMax M3.

A private job on the local backend pairs naturally with a local model from the local board, such as Qwable 5 27B Coder.

The live page describes Qwable as MLX-only, so it reaches Hermes through a custom OpenAI-compatible endpoint and not through a hosted provider.

A local model is free to run, and it's slower and weaker than the frontier models in that table.

My wider picks are in the best LLMs for Hermes Agent and the best local model for Hermes Agent.

My simple decision rule

I'd stay on local while I'm the only person who talks to the agent.

I'd move to Docker the day a second person can message it.

I'd use SSH when I want the agent on a server that never sleeps.

I'd pick the model after the terminal backend, because safety comes before speed.

The rest of my stack is in the best Hermes Agent setup, and the toolsets that sit on top are in the best Hermes Agent tools.

Also On Our Network

Pick the room first and the brain second, and you'll have the right Hermes Agent backend.

FAQ

What is a Hermes Agent backend?

It most often means the terminal backend, which decides where the agent's shell commands run. The Hermes docs list seven: local, docker, ssh, modal, daytona, vercel_sandbox and singularity. The word also covers the model provider, web provider, browser provider and memory provider.

How do I switch the Hermes Agent backend?

Run hermes config set terminal.backend followed by a name such as docker. The value is saved under terminal.backend in ~/.hermes/config.yaml. For the model provider run hermes model, and for web and browser providers run hermes tools.

Is the Docker backend safer than local?

Yes. On local the agent has the same file access as your user account. On Docker, commands run inside a container with all capabilities dropped, no privilege escalation and a 256 process limit.

Does Hermes Agent come with its own model?

No. Hermes Agent runs on whichever model backend you connect, such as Nous Portal, OpenRouter, Anthropic, OpenAI, Bedrock, Ollama or a custom endpoint. Julian uses GoldieBench scores to shortlist the model and then tests it on his own work.

Which model is best behind a Hermes Agent backend?

For long terminal jobs Julian picks Claude Opus 5, which averages 8.27 on GoldieBench. For cheap repeated jobs he looks at MiniMax M3 at 7.97, and for private local work he looks at Qwable 5 27B Coder at 7.14.

Does GoldieBench test Hermes terminal backends?

No. GoldieBench scores one-shot builds such as games, pages and simulations from 0 to 10. It does not measure Docker, SSH or any other terminal backend, so the scores only help you choose the model.

Can Hermes Agent be a backend for another app?

Yes. The API server exposes Hermes as an OpenAI-compatible endpoint on port 8642 for frontends such as Open WebUI. Hermes also runs as an ACP server with hermes acp and as an MCP server with hermes mcp serve.

The same stack Julian uses

Run this stack yourself.

Every demo on this bench was built inside the Agent Operating System — one prompt, one shot, single HTML file out. The Agent OS, the prompts, the templates, the weekly walkthroughs and 3,400+ founders shipping with it every day all live inside the AI Profit Boardroom.

3,400+founders
258documented wins
38countries
$69/momonthly