- Published on
Hermes: the agent that runs my setup while I sleep, and learns from every correction

- Authors

- Name
- Nadim Tuhin
- @nadimtuhin
On this page
This is one piece of my AI coding agent setup. It covers the agent that keeps the rest of the setup running.
The problem
Interactive agents only work while I am there. But a lot of what keeps the setup healthy is boring, repetitive and happens best at 3 AM: updating CLIs, syncing model lists, checking repos for security PRs, noticing that some job silently stopped.
And there was a second problem. Every agent I used forgot everything between sessions. I would correct the same mistake on Monday and again on Thursday.
Hermes solves both for me. It is an open source agent with a scheduler, persistent memory and skills.

Scheduled jobs
A cron job in Hermes is a prompt on a schedule. Hermes runs it with its tools and skills, and reports back. These are the ones that matter for the coding setup:

Keep tools fresh
- Every night: update the Claude Code, Codex, Pi and 9Router CLIs.
- Every morning: a few jobs check for newly available free models and add them to the right 9Router combos.
- Every week: a Homebrew update and a safe cleanup.
Watch the repos
- Every six hours: scan my public repos for open security PRs.
- Every day: an open source housekeeping audit across my public projects, and a prune of stale local clones.
Watch itself
- Every thirty minutes: an autoheal job looks for scheduled jobs that stalled or failed and restarts them.
All of it runs through 9Router too, so scheduled jobs get the same failover as my interactive agents. A rate limit at 3 AM does not mean a missed job.
Skills: the part that compounds
A skill is a short markdown file: when to use it, the steps, the commands, and a pitfalls section. Hermes loads the relevant skill when a task matches it.

The habit that changed everything: when an agent gets something wrong and I correct it, the correction goes into the skill, not just into the chat. The chat is gone tomorrow. The skill is there every time that kind of task comes up again.

A few hundred skills later, the pitfalls sections are the most valuable files on the machine. They hold every "do not do it that way, here is why" I have learned the hard way, in a form an agent actually reads.
The same idea works outside Hermes. My public Claude Code repos are built on it:
- claude-hooks: standing engineering rules, a scanner that blocks AI filler, and a check after every edit.
- claude-workflows: slash commands that add structure without burning tokens.
- agent-skills: a TDD backlog loop with subagents in parallel waves.
- claude-token-optimizer: Claude Code startup context from about 11K tokens to 800.
Memory and profiles
Skills are for procedures. Memory is for the small set of facts that apply to every session: who I am, how I like to work, the rules that never change. It is deliberately tiny, because it is loaded every time.
Profiles keep different areas apart. Each profile has its own memory, skills and scheduled jobs, so context from one part of my life does not leak into another.
The one rule
Hermes drafts. I send. It can message me, but it never sends anything to anyone else on my behalf: no emails, no posts, no messages. That rule is in memory, in the skills that touch messaging, and in how the jobs are written.
Automation that can speak for you will eventually say something you did not mean. Drafts cost me a minute to review. A wrong message sent costs much more.
Where it fits
Hermes can be launched interactively through 9agent like any other agent, in the PC terminals I reach through Herdr. But most of its value comes from the hours when I am not connected at all.