Hermes
My always-on AI agent living on the homelab, connected to Discord so I can talk to it from any device and hand off tasks without touching a dashboard.
Status
live
Difficulty
intermediate
Time Required
20m
Last Tested
2026-06-01
What Hermes Is
Hermes is the AI agent I have running permanently on the homelab. It's connected to Discord, so I can fire off questions, trigger summaries, or hand off small tasks from my phone, laptop, or wherever — without SSH-ing into anything or opening a dashboard.
The name fits. It's the messenger layer between me and everything else running on the stack.
Discord Integration
Hermes lives in a private Discord server I use as a homelab control panel. There are channels for monitoring, alerts, n8n notifications — and one dedicated channel for talking directly to Hermes.
When I send a message there, it picks it up, processes it, and replies in thread. No cold start, no waiting for an external API. It runs on the local network and responds to Ollama or Claude depending on what I've configured for the task.
Setting Up the Discord Bot
- Go to the Discord Developer Portal and create a new application
- Under Bot, enable Message Content Intent and Server Members Intent
- Copy the bot token — this goes in your Hermes config
- Invite the bot with the
botOAuth2 scope andSend Messages+Read Message Historypermissions
Wiring It Up
DISCORD_TOKEN=your_bot_token
DISCORD_CHANNEL_ID=the_channel_id_hermes_listens_on
Hermes watches the configured channel and replies in thread to keep things clean. Any message it doesn't understand it'll say so, which is fine — the point isn't a perfect chatbot, it's a useful one.
What I Use It For
- Service status — "is Grafana up?" without opening another tab
- Summaries — ask for a summary of recent n8n workflow runs or monitoring alerts
- Quick lookups — anything I'd normally have to SSH or dig through logs for
- Reminders — lightweight task notes I can drop into the channel and pick up later
- Homelab questions — it has context about what I run, so answers are actually useful
Why Having It in Discord Matters
Everything else I track is already in Discord — monitoring alerts, n8n workflow notifications, Uptime Kuma alerts. Having Hermes there too means I don't need another app or interface. One Discord server covers alerts, status, and the ability to ask questions. That's a much tighter loop than tabbing between dashboards.
The other reason is mobile. I can ask Hermes something while I'm out and get a useful answer without VPN-ing in or waiting to get back to a computer.
Notes
This is a living setup. The Discord connection is stable; the LLM backend and tools wired to Hermes shift as I add things to the stack. The core idea stays the same: one always-on agent, accessible from anywhere, with enough context about the homelab to actually be useful.