Living with Hermes Agent on a small ARM server
Most coding agents I’ve tried live inside an editor and forget everything when the window closes. Hermes Agent, from Nous Research, works the other way round. It runs on the server, in a terminal, and it keeps notes between sessions. Mine runs on the same ARM box that hosts my Docker stacks, so when I ask why a container keeps restarting, it can go and look.
What it does for me
A typical session starts with a loose request. Move this site behind a different proxy. Add a field to an admin page. Find out why an upload fails on phones. Hermes reads the repo, runs commands, edits files, builds, and then tells me what changed and what it checked.
The part I didn’t expect to care about is memory. It keeps a short file of facts about my setup: where each stack lives, how a given project deploys, which conventions I’ve asked for. That file is loaded at the start of every session, so I no longer explain my folder layout every morning.
Skills are the other half. A skill is a markdown file with a procedure in it, like how one specific site gets deployed, what to check before touching a proxy config, or which words to keep out of public copy. Hermes loads the ones that match the task before it starts, and it can patch them when it learns something the hard way. They follow the agentskills.io format, so the same files work with other agents that read it.
Delegation
For bigger jobs it can spawn subagents, each with its own context and one piece of the work. I use that for anything that would otherwise flood the main conversation, such as reading a long log or auditing a folder full of compose files. When a task needs a long, iterative coding loop, I have it drive Claude Code in a tmux session instead. Hermes plans and checks the result. The other agent does the grinding.
Where I keep control
It asks before running anything destructive, and I leave that on. Passwords never pass through the chat: logins come from a vault and the agent only ever sees a handle. It doesn’t commit or push unless I ask. That’s the same set of rules I’d give a new contractor with shell access, nothing more dramatic.
Rough edges
Memory has a hard size limit. That’s a good thing, but it means stale facts need pruning or they crowd out the useful ones. Skills drift too. A procedure that was right in spring can be wrong by autumn, and the agent will follow it with full confidence until something breaks. I treat both like documentation: worth having, worth rereading.
It’s also only as careful as the checks you ask for. “Build it and tell me it works” gets you a build. “Build it, open it at phone width, and show me the screenshot” gets you a much better afternoon.
Getting started
Install is one script:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
hermes setup
Setup walks you through picking a model provider. The docs cover the parts I haven’t used much yet, like the messaging gateway, scheduled jobs, and MCP servers. My advice is to start with one repo you know well. You’ll learn what it gets right faster when you can tell right away that it’s wrong.