May 28, 2026 · 7 min read
Series: AI Junior Developer — Part 2 of 6
In Post 1, I laid out the vision: an AI junior developer that monitors tickets, fixes bugs, and opens PRs while I sleep. Today we build the brain — the orchestrator that ties everything together.
That orchestrator is Hermes Agent.
If you are new to this series, start with Part 3: Setting Up Claude Code — The Brain Behind the Agent to see how the coding layer works, then continue with Part 4: Building the Agent Team to learn how supervisor, coder, reviewer, and QC agents collaborate.
Think of Hermes as the project manager. It decides what to do, when to do it, and who to tell. It runs on cron, spawns subagents, and delivers results to Telegram. Claude Code does the coding. Hermes runs the show.
Let’s set it up from zero.
What Hermes Agent Actually Is
Post 4 in this series covers how to assemble a full agent team. Hermes Agent is an open-source AI agent framework by Nous Research. It’s the same category as Claude Code or OpenAI Codex — autonomous agents that use tool calling to interact with your system. But Hermes is provider-agnostic (works with any LLM), multi-platform (Telegram, Discord, Slack, 10+ others), and has persistent memory across sessions.
What matters for our use case: Hermes has cron jobs and delegation. Cron runs on a schedule, checks for new tickets, and fires off the code agent. Delegation spawns subagents for parallel work.
Step 1: Install Hermes
One command:
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
Verify:
hermes doctor
You should see all green. If not, hermes doctor --fix auto-repairs most issues.
First run:
hermes
This drops you into interactive chat. You’re talking to an AI agent in your terminal. Type /help to see all slash commands.
Step 2: Configure Your Provider
I use DeepSeek V4 Pro via Ollama Cloud. You pick whatever works for your budget.
hermes setup model
This opens an interactive picker. Choose your provider → choose your model. Or set directly:
hermes config set model.default "deepseek-v4-pro"
hermes config set model.provider "ollama-cloud"
API keys go in ~/.hermes/.env, not config.yaml:
hermes config env-path # shows where .env lives
Edit that file, add your API keys. Done.
Test: run hermes chat -q "Hello, what model are you?" and it should respond.
Step 3: Connect Telegram
This is how our agent will notify us when a ticket is fixed.
hermes gateway setup
Select Telegram. You’ll need:
- A bot token from @BotFather
- Your chat ID (send a message to your bot, then check
https://api.telegram.org/bot<TOKEN>/getUpdates)
Once configured:
hermes gateway start # start the gateway service
hermes gateway status # verify it's running
Now send a message to your bot on Telegram. Hermes responds. You can use all the same tools from Telegram that you can from the terminal — including spawning Claude Code.
Set your home channel (where notifications go):
/sethome
Step 4: Enable Required Tools
We need terminal access (to spawn Claude Code), cron (for scheduling), and delegation (for subagents):
hermes tools enable terminal
hermes tools enable cronjob
hermes tools enable delegation
hermes tools enable web # for hitting Jira/GitHub APIs
Check status:
hermes tools list
Important: /reset after enabling tools. Changes only take effect on new sessions.
Step 5: Verify It All Works
Let’s test the full pipeline before we wire up Claude Code. From Telegram, send your bot:
Run: echo "Hermes is alive" && date
Hermes should execute the command and return the output. If this works, the terminal tool is functional and we can spawn Claude Code from cron.
Architecture So Far
┌─────────────┐
│ Telegram │◀──── Hermes delivers results here
└─────────────┘
▲
┌──────┴──────┐
│ Hermes │ orchestrator: cron + delegation + tools
│ Agent │
└──────┬──────┘
│ (soon: spawns Claude Code)
▼
┌─────────────┐
│ Terminal │ shell access, git, make, pytest
└─────────────┘
We haven’t connected Claude Code yet (that’s Post 3), but the foundation is solid. Hermes can:
- Run on schedule (cron)
- Execute shell commands (terminal tool)
- Deliver results anywhere (Telegram)
- Spawn subagents (delegation)
Quick Config Reference
Here’s what your ~/.hermes/config.yaml should look like after setup:
model:
default: "deepseek-v4-pro"
provider: "ollama-cloud"
agent:
max_turns: 90
terminal:
backend: local
timeout: 300
delegation:
max_iterations: 50
max_concurrent_children: 1 # one ticket at a time
All manageable from CLI: hermes config edit opens it in your editor.
Troubleshooting
“Gateway not responding”
Check logs: grep -i error ~/.hermes/logs/gateway.log | tail -20
Restart: hermes gateway restart
“Tool not available”
Run hermes tools → check if terminal/web/cron are enabled → /reset
“Model not responding”
Run hermes doctor → check provider credentials in .env
SSH session closes, gateway dies
Enable linger: sudo loginctl enable-linger $USER
What We Just Built
We have an AI orchestrator that can:
- Accept commands from Telegram
- Execute shell commands
- Run on a schedule
- Delegate work to subagents
- Deliver results to any platform
Next post: [Post 3] Setting Up Claude Code — CLAUDE.md mastery, skills, subagents, and MCP. This is where the agent actually learns to code.
Series: “AI Junior Developer” — Part 2 of 6
Discover more from Susiloharjo
Subscribe to get the latest posts sent to your email.