blog · Artikel auf Englisch
Hermes Agent and Snotra compared
Hermes Agent 0.22 brought a signed desktop app and local models in one click, so it now runs where Snotra runs: on your own computer, with a model of your choice. The two still answer different questions. What each one is built for, what it lets the agent do unasked, and what each one lacks.
On October 13, Nous Research released Hermes Agent 0.22. Two things in the release notes caught my eye. The desktop app is now a signed package, an MSIX for Windows on x64 and ARM64 and a notarized build for Apple Silicon Macs. And Hermes now installs llama.cpp itself, picks the right engine for your hardware and runs an open model “entirely on your machine”, with no account and no key.
That puts Hermes on the same spot Snotra wants to fill: an open-source agent on your own computer, with a cloud model or a local one. I build Snotra, so I wanted to know where the two actually differ. This is what I found, as of Hermes 0.22.4 and Snotra 1.27.1, going by each project’s documentation, release notes and, for Snotra, its code. If I got something about Hermes wrong, tell me in the Discussions and I will correct it.
What Hermes is built for
Hermes started as a terminal agent and a messaging gateway, and that is still its center. You install it with a one-line script, configure it in ~/.hermes/config.yaml, and talk to it in a terminal interface or from one of 28 messaging platforms: Telegram, Signal, Slack, WhatsApp, e-mail, Microsoft Teams and many more. The gateway runs as a background service, so the agent is reachable while your laptop is closed, if it runs on a server.
The project calls it “the self-improving AI agent”. After a task with several steps, an error or a correction from you, Hermes writes or patches a skill on its own, so the next similar task goes better. It keeps a small memory about you and the environment, schedules jobs from a sentence like “every monday 9am”, and hands work to up to ten subagents at once. The desktop app came in June and sits on top of all that.
Snotra is the opposite shape. It is a desktop app and nothing else: a window with your folder in a file tree on one side and the chat on the other. There is no terminal, no CLI and no gateway. It is built for someone who sits in front of a folder of notes, offers or data and wants the agent to work in it while they watch.
Hermes is also a far bigger project. It has around 256,000 stars on GitHub, a company behind it and hundreds of contributors. Snotra has one developer, me, and started in May.
Side by side
The rows are what I would look at when choosing any agent that works on files on your computer. Defaults are what you get after installing, before you change a setting.
| Hermes Agent 0.22 | Snotra 1.27 | |
|---|---|---|
| License | MIT | Apache 2.0 |
| Behind it | Nous Research, hundreds of contributors | One developer |
| Main interface | Terminal and messaging apps; desktop app since June | Desktop app only |
| Platforms | Linux, macOS, Windows; desktop signed for Windows (x64, ARM64) and Apple Silicon | macOS (Apple Silicon, signed), Windows (x64, unsigned), Linux (x64) |
| Providers | About 45, from Nous Portal and OpenRouter to Bedrock | OpenAI, Anthropic, Gemini, Ollama, any OpenAI-compatible server |
| Local model | Managed llama.cpp in one click, or a custom endpoint | In the settings, with templates for Ollama, LM Studio, MLX-LM, llama.cpp and vLLM |
| File edits | Without asking | Ask every time |
| Shell commands | On; a second model judges the risk and asks only when unsure | Off until you switch them on; then every run asks |
| Isolation | None by default; Docker, SSH or cloud sandboxes as an option | OS sandbox on macOS and Linux; none on Windows |
| Undo | Checkpoints and /rollback, off by default | None; a file replaced as a whole goes to the trash first |
| Memory | Two files of 2,200 and 1,375 characters, written by the agent | A file per project and a global one, 8,000 characters each, every write approved |
| Skills | Agent Skills; the agent writes and refines its own | Agent Skills; written when you ask for one |
| Scheduled jobs | Yes | No |
| Subagents | Up to 10 in parallel | No; several chats work in parallel |
| Messaging | 28 platforms | None |
| Browser | Browser agent with computer use | Web search (Tavily key) and fetching a page as text |
| MCP | Yes, plus hosted connectors through Nous | Local and remote over HTTP, no OAuth |
| Account and telemetry | No account needed; telemetry opt-in; desktop trial model and connectors go through Nous | No account, no telemetry |
Running a local model
Until 0.22, a local model in Hermes was a custom endpoint: a base_url pointing at Ollama, vLLM or llama-server, with flags such as --jinja or --tool-call-parser hermes on the server side. Its documentation asks for at least 64K context for agent work. The new local runtime takes most of that off your hands. Hermes downloads and maintains llama.cpp for CPU, CUDA, Metal, Vulkan or ROCm, rates models against your hardware and starts the one you pick. If you have no local model yet, that is the easier start of the two.
Snotra doesn’t run a model; it connects to one you already run. In Settings › Models you choose Ollama or an OpenAI-compatible server, a template fills in the address for LM Studio, MLX-LM, llama.cpp or vLLM, and Load models asks the server what it has. If Ollama or LM Studio is already on your machine, that takes a minute, and you keep managing models in the tool you know. The steps, with screenshots, are in Setting up your first model.
Neither app makes a small model good at tool calls. What I measured with 8B models in Snotra is in What local models taught me about my agent harness, and nothing there is specific to Snotra.
What the agent may do unasked
This is where I disagree with Hermes most, so I want to describe its defaults precisely.
Out of the box, Hermes runs commands on the local backend, which its documentation describes as “Commands run directly on your machine with no isolation.” Approvals for shell commands default to smart: a second, auxiliary model assesses each command, lets low-risk ones through, denies clearly dangerous ones and asks you about the rest. A hard blocklist (rm -rf /, fork bombs, mkfs) holds even in YOLO mode, which switches the questions off. File tools are a different story. write_file and patch have no approval prompt at all; only protected paths such as SSH keys, .env files and cloud credentials are refused. Checkpoints that would let you roll changes back exist, but are opt-in.
For a developer in a Git repository, that is a reasonable trade. For a folder of documents without version control, it means the agent edits your files and you find out afterwards, with no undo unless you switched it on beforehand. And whether a command is “low risk” is decided by a language model, the same kind of thing that just proposed the command. I would not leave that judgment to a model when the folder holds work I can’t restore.
Snotra starts from the other end. In the default mode, Smart, the agent reads inside the folder without asking and asks before every change, with a card that shows what it wants to write. Shell commands and Python are off when you install it; switching them on takes a confirmation in a system dialog, and then each run shows the full command before it runs. On macOS and Linux those commands run in a sandbox that can write only inside the folder and reach only the domains on the card. Auto drops the questions, for one chat or one folder, and also needs a system dialog. Paths outside the folder ask in every mode, Auto included.
The price is that Snotra interrupts you a lot, and on Windows it has no sandbox at all yet. If you want an agent that keeps working while you are away, Snotra is the wrong tool, and Hermes with a Docker or cloud backend is a sensible one.
One more point for a fair account. The GitHub Advisory Database lists around fifty entries for the hermes-agent package this year, most of them unreviewed and rated low, a few rated high and one critical. That says as much about how many people look at Hermes as about its code. Snotra has no published advisory, and far fewer people have looked at it.
Memory and skills
Hermes is proud of its learning loop, and it is the feature Snotra lacks most visibly. After a task, a background review can turn what worked into a skill, and the next time the agent loads that skill instead of working it out again. Its memory is small on purpose, two files that go into the prompt at the start of each session, and a full-text search over past sessions fills in the rest.
Snotra has the parts but not the loop. It reads skills in the same Agent Skills format from .agents/skills/, writes one when you ask for it, and keeps a memory per project and a global one that it may also fill on its own. Every write to memory or to a skill is a change to a file, so it goes through a card like any other. Nothing improves itself behind your back. Hermes can do the same if you set skills.write_approval, but it is not the default.
What Snotra doesn’t do
No scheduled jobs, no subagents, no messaging. Snotra only works while its window is open and you are there to answer. No browser automation either; it can search the web with your own Tavily key and fetch a page as text, nothing more.
Fewer platforms. There is no Intel Mac build and no ARM build for Windows or Linux, and the current Windows release is unsigned, so SmartScreen warns on first launch (#19); signing is being tested. Remote MCP works without OAuth only. There is no undo for the agent’s changes, and the list of what a chat changed is gone after a restart.
And it is one person’s project, with all that implies for how fast things change and who answers when something breaks.
Which one to pick
Take Hermes if you want an agent that runs on its own: on a server, reachable from your phone, doing jobs on a schedule and getting better at the ones it repeats. Give it a Docker backend and turn on checkpoints and you have a sound setup.
Take Snotra if you sit in front of a folder that matters and want to see every change before it lands. It does less, on purpose, and asks more.
Both are free and open source. Pointing both at a copy of the same folder, with the same model, will tell you more in an hour than this article.
Trying it
Snotra runs on macOS, Windows and Linux: download it here, or read the source on GitHub. Hermes Agent is at github.com/NousResearch/hermes-agent.
If you use Hermes on documents rather than code, do you run it with checkpoints switched on?