How I Run Two AI Agents Together — hermes and Claude Code Role Split in Practice
hermes as the chat entry point, Claude Code for coding and wiki editing — a role structure I figured out running both on my home server
I’m currently running two AI agents at the same time. Claude Code on my laptop, hermes on my home dev server. At first I thought “why not just pick one?” — but after using both, it turned out differently. They’re each good at different things.
What they are — and how they differ
hermes is NousResearch’s agent framework. It has a Discord gateway built in, so you give it a bot token and Discord chat becomes agent input directly. Run it on a home server and it’s up 24/7. When I throw something into Discord from my phone, hermes is the one catching it.
Claude Code is a local CLI. Code editing, wiki digesting, file manipulation — it’s what I open a session with and sit down to work alongside directly.
Under the hood, both work on the same principle. Drop into a project folder and they read CLAUDE.md or AGENTS.md to recalibrate their behavior according to those rules. hermes manages Memory and Skills at the profile level, Claude Code splits things into global vs. project-level locations — but the mechanism of “read the environment, narrow your behavior” is the same.
Where the roles split
After actually using both, the division of labor emerged naturally.
What hermes handles: the chat entry point where I throw thoughts from my phone, per-channel conversation context in Discord, cron-based auto-collection running on the server. Because each thread gets its own session, I use channels like #random-thoughts, #trading_mvp, and #hansaiam as independent conversation rooms.
What Claude Code handles: coding work, wiki queries and editing, digest sessions. All the CLAUDE.md files, skills, and hooks live here, so it makes sense for Claude Code to be the wiki’s brain.
This loop is already running: chat via hermes → sessions get collected into raw/notes/_auto/ → digest with Claude Code → wiki absorption. Whatever I throw into Discord ends up in the wiki.
One trap I hit during setup
When configuring hermes, don’t use short paths. If you write just tool_search, it looks like it passes config check — but what actually happens is a stray block gets created at the top level and the real setting never changes. You need the full path like tools.tool_search.search_default_limit to get the value where you actually want it. Learned this firsthand.
Also: one Discord bot token = one instance. If you run hermes locally while it’s also running on the server, they’ll conflict. If you’re running it full-time on a server, keep your local copy for git management only and never start both at the same time — that’s a hard rule.
Why this setup works
The core of it is that both agents share the same second vault, but their roles don’t overlap. hermes handles the entry point and collection; Claude Code handles organization and editing. git connects the two. hermes pushes sessions from the server, I pull on my laptop and run digest. One vault, but accessed by separate agents for separate roles.
If you’re already using Discord, getting that chat to automatically accumulate in a wiki is something you can set up in a day with hermes + second.
← Prev: Discord & Wiki Loop Bot Build Log Background: Why I moved hermes to Discord Deep dive: Second Brain automation setup · Agent context gaps and second brain integration