Overview
Alejandro AO walks through a complete, end-to-end setup of Hermes Agent as an always-on AI personal assistant running on a VPS. The tutorial covers provisioning a cheap Hetzner server (€5/month), using an AI coding agent (Pi/Codex/Claude Code) to install and secure the VPS automatically via a reusable skill, connecting Hermes to Telegram for mobile access, brain-dumping workflows so the agent can suggest automations, setting up cron jobs for recurring research tasks, and managing everything through the built-in Hermes dashboard. The key idea: let an AI agent set up another AI agent, rather than doing manual server administration.
1 What Is Hermes Agent?
Hermes Agent is a self-improving AI agent designed to be always-on. Unlike coding assistants that only work while you're at the computer, Hermes runs continuously on a server and is accessible from anywhere through messaging platforms.
- Multiple communication channels — Telegram, Discord, Slack, WhatsApp, and more. You talk to it like a personal assistant (PA), not a coding tool
- Always on — runs on a VPS or home server, so your computer can be off and the agent keeps working
- Rich integrations via skills — comes with ~85 skills built-in, including productivity integrations (Notion, PowerPoint, Shopify), finance tools, and more
- ~25 built-in toolsets — web search, browser automation, terminal, file operations, code execution, vision, text-to-speech, cron jobs, sub-agents, and cross-platform messaging
2 Architecture Overview
Alejandro provides a clear overview of how Hermes processes every message in a standard ReAct loop:
- Message received — the agent receives your message from Telegram (or any platform)
- System prompt built — for each thread, Hermes dynamically constructs a system prompt containing: available tools, loaded skills, current memory about you, project context, and platform context
- LLM reasoning — the system prompt + message go to the language model, which either calls a tool or generates a response
- Tool loop — if a tool is called, the result feeds back to the LLM, repeating until a final response is ready
- Memory update — after responding, the agent updates its memory if you shared preferences, workflow details, or personal information
- Future sessions benefit — that updated memory is injected into future system prompts, so the agent gets better over time
Conversations in Telegram stay in the same thread by default unless you explicitly ask Hermes to restart the thread.
3 Provisioning a VPS on Hetzner
Alejandro chooses Hetzner as the VPS provider, praising its developer experience and affordability. He also mentions OVH and DigitalOcean as alternatives.
Server specs
- Plan: €5/month (cost-optimized)
- RAM: 4 GB
- Storage: 40 GB
- Traffic: 20 TB
- Billing: per-hour with monthly cap — if you shut down mid-month, you only pay for the hours used
- OS: Ubuntu
- Networking: IPv4 + IPv6
SSH key setup
Before creating the server, generate an SSH key pair:
ssh-keygen -t ed25519 -C "hetzner-vps"
Save it in ~/.ssh/ with a descriptive name (e.g., hetzner_vps_key). Copy the public key content and paste it into the Hetzner SSH key field during server creation.
4 Cloud Config & Initial Security
During server creation, Alejandro uses Hetzner's Cloud Config (cloud-init) to pre-configure the server on first boot:
- User creation — creates a named user (e.g., "alejandro") with
sudogroup access and/bin/bashshell - SSH authorized keys — injects the public key so the user can SSH in immediately
- Package updates —
package_update: truerunsapt updateon first boot - Baseline packages — installs
curl,git,ufw, andfail2ban - Firewall rules — runs
ufw allow OpenSSHandufw --force enableon install
After the server is created (takes a few seconds), connect via SSH:
ssh -i ~/.ssh/hetzner_vps_key alejandro@<SERVER_IP>
5 Agent-Driven VPS Setup with Pi + Codex
This is the core innovation of the tutorial: using an AI coding agent to install and configure the entire VPS instead of running commands manually. Alejandro installs Pi (a minimalist coding agent) on the fresh VPS and gives it a reusable VPS setup skill.
Installing Pi
- Install Pi from
pi.dev— it auto-installs Node.js as a dependency - Source
~/.bashrcafter installation so thepicommand is available - Log in with a ChatGPT subscription (or another provider) — Alejandro uses GPT-5.5 on low/no reasoning
- Install the
pi-web-accessextension for web research capabilities
The VPS setup skill
Rather than typing individual commands, Alejandro copies the raw content of his hermes-vps-setup skill and pastes it directly into Pi with the instruction: "Help me set up this new VPS. Current user has sudo privileges."
The skill orchestrates the entire setup in phases:
- Phase 1 — Inspection: detects OS, current user, SSH status, and privileges
- Phase 2 — Baseline security: updates packages, installs tools (git, curl, tmux), configures UFW firewall (allows SSH, HTTP, HTTPS), enables fail2ban, disables root SSH, disables password SSH (after confirming key access works)
- Phase 3 — Runtime dependencies: installs Docker Compose, Node.js, FFmpeg, and Playwright browser dependencies
- Phase 4 — Agent user: creates a dedicated
agentuserwith a home directory containing.hermes/for Hermes installation
6 VPS Security Hardening & Hermes Installation
During Phase 2, the agent performs critical security hardening with interactive confirmation:
- Firewall (UFW) — allows only SSH, HTTP, and HTTPS traffic. HTTP/HTTPS needed for the dashboard
- Fail2ban — protects against brute-force SSH attacks by banning repeat offenders
- Disable root SSH login — eliminates the most common attack vector
- Disable password SSH login — the agent asks for explicit confirmation first: "I found an SSH authorized key for Alejandro, so I should be safe to disable password SSH login. This reduces brute force risk, but if your SSH key does not work, it could lock you out. Please confirm."
Hermes installation
After security hardening, the agent installs Hermes under the agentuser account. It reports back:
- Hermes installed successfully at
/home/agentuser/.hermes/hermes-agent - Playwright Chromium installed for browser tools
- Hermes can update and modify itself because the CLI binary runs directly from the source code
hermes doctorshows expected pre-setup warnings (missing Telegram/Discord config)
The next step requires an interactive terminal — the setup wizard can't run inside Pi, so you SSH in directly.
7 Hermes Setup Wizard — Configuration Deep Dive
Switch to the agentuser and run the interactive setup wizard:
sudo -u agentuser -i bash -c "cd ~/.hermes/hermes-agent && ./bin/hermes setup"
Select "Full setup" and configure each option:
Inference provider
Options include OpenRouter, Anthropic, OpenAI, and Hugging Face Inference Providers. Alejandro chooses Hugging Face:
- Create a HF access token at
huggingface.co→ account → new token - Important: enable "Make calls to inference providers" permission
- Base URL:
router.huggingface.co/v1 - Model: MiniMax M2.7 — affordable and very good quality
- Fallback provider: optional, skipped in this tutorial
Text-to-speech
Default is Edge TTS (free). Alejandro recommends ElevenLabs for premium, human-like voice quality if you have a subscription.
Terminal backend
Keep local since the VPS setup skill already containerized everything with the dedicated agent user.
Maximum iterations
Default is 60, Alejandro sets it to 90 — enables more complex workflows while preventing infinite loops that drain tokens.
Tool progress mode
Options: every tool call, new tools only, or none. Alejandro prefers "new" — if the agent calls web search 10 times, you only see the notification once.
Context compression
Hermes auto-compresses conversation when reaching a percentage of the context window:
- MiniMax M2.7 has ~200K tokens → set to 0.90 (compress at 90%)
- For 1M-token models → set to 0.5 or lower
- Smaller context windows need higher thresholds to avoid premature compression
Session reset mode
- Inactivity timeout: 1440 minutes (24 hours — daily reset recommended)
- Daily reset hour: 4 AM local time ("I'm rarely working at 4 AM")
- The agent retains memory of previous sessions, so resetting just clears the active conversation thread
Tools selection
Alejandro enables: web search, browser automation, terminal, file operations, code execution, text-to-speech, skills, memory, session search, clarifying questions, task delegation (sub-agents), cron jobs, and cross-platform messaging. He skips vision/image generation.
Search provider
Options: self-hosted Firecrawl (via Docker — more complex), Exa, or cloud Firecrawl. Alejandro uses a Firecrawl API key for simplicity.
8 Telegram Integration
With Hermes configured, the next step is connecting it to Telegram as the primary communication channel.
Gateway setup
Switch to agentuser and run:
sudo -u agentuser -i bash -c "cd ~/.hermes/hermes-agent && ./bin/hermes setup gateway"
Select Telegram with spacebar, then hit enter.
Creating a Telegram bot
- Open Telegram and search for @BotFather
- Send
/newbot - Give it a display name (e.g., "Bobby")
- Create a unique username ending in
bot - Copy the bot token and paste it into the Hermes setup
Restricting access
Without restrictions, anyone could message your bot and access your personal AI agent. To lock it down:
- Search for @userinfobot in Telegram
- Send
/startto get your personal Telegram user ID - Paste the ID as the allowed user in the Hermes gateway config
- Set it as the home channel (your primary conversation destination)
Running as a system service
When asked, select "system service" — this ensures the Telegram gateway starts automatically on boot and runs in the background permanently. After setup, go to your bot in Telegram, hit /start, and you're connected.
9 Brain Dump Workflow
Alejandro demonstrates a powerful onboarding pattern: brain-dumping your entire workflow into Hermes and asking it what it can help with.
His prompt: "I'm going to tell you a few things about my workflows, so can you tell me where you can help me out and how we can work together?"
After describing his daily workflow, Hermes suggested help with:
- Video production pipeline — research, scripting, metadata generation
- Quick side project scaffolding — "If I have an idea for a web application, just have Hermes build it"
- General research — on-demand deep dives into any topic
- Cron job automations — recurring scheduled tasks (shown next)
10 Cron Jobs — Automated Research
Alejandro creates a recurring cron job directly through Telegram chat — no terminal needed:
His prompt: "Create a cron automation that runs every three days. On each run, research developments for the past 3-5 days in AI research and product launches, open source AI models, etc. Identify tutorial ideas and for each run produce a concise summary, 5-10 tutorial ideas. Prioritize ideas that are hands-on, reproducible, open-source friendly, and likely to perform well with the Hugging Face community."
What Hermes did
- Created the cron job with a unique ID
- Scheduled to run every 3 days
- Output delivery: Telegram DM
- Offered to run it once immediately to preview the output
The first run took about 4 minutes, producing tutorial ideas with sources split across multiple Telegram messages. From now on, Alejandro receives this research brief every 3 days automatically.
11 Dashboard Setup & Management
The final piece is the Hermes web dashboard — a management UI accessible at the VPS's IP address.
Enabling the dashboard
Alejandro goes back to his Pi session (which has full context of the VPS setup) and asks it to set up the dashboard service. Since the VPS setup skill already includes dashboard instructions, Pi knows exactly how to configure it:
- Sets up the dashboard as a system service
- Secures it with HTTP basic authentication (username + password)
- Makes it accessible at
https://<SERVER_IP>
Dashboard features
Once logged in, the dashboard provides:
- Connected platforms — shows Telegram (and any other platforms configured)
- Sessions — active sessions (Telegram conversations + cron job runs)
- Models — current main model (MiniMax M2.7 via Hugging Face)
- Logs — real-time agent logs for debugging
- Cron jobs — view, trigger, pause, or delete scheduled automations. You can also create cron jobs directly from the dashboard UI
- Skills — browse all 85 available skills
- Toolsets — 26 active toolsets with their status
- Plugins & profiles — manage extensions and configurations
- Configuration — model settings, context length (auto-detected), all configuration keys
- API keys — view which keys are configured
- Documentation — embedded iframe of the Hermes docs
- Kanban — experimental multi-task orchestration for sub-agents (teased for a follow-up video)
Alejandro's minimalism note
He notes that Hermes ships with ~85 skills and ~25 toolsets active from the start — more than he personally prefers. As a fan of Pi (a minimalist agent), he'd prefer starting with almost no tools and gradually adding ones he needs. But he acknowledges this "batteries included" approach works well for most users.
🎯 Key Takeaways
🔑 Key Takeaways
- €5/month is enough — a Hetzner VPS with 4 GB RAM and 40 GB storage can run the Hermes agent (not the models — those run on third-party inference providers like Hugging Face)
- Let an AI agent set up your AI agent — using Pi/Codex/Claude Code with a VPS setup skill eliminates manual server administration and applies security best practices automatically
- Security is non-negotiable — the skill configures UFW firewall, fail2ban, disabled root SSH, and key-only authentication. These aren't optional extras
- Dedicated agent user — Hermes runs under a separate
agentuseraccount, isolating it from your personal user for security - Restrict Telegram access — always set your personal user ID as the allowed user to prevent strangers from using your AI assistant
- Brain dump your workflow — describe your daily work to Hermes and let it suggest where it can help. The agent is surprisingly creative in finding automation opportunities
- Cron jobs via chat — create recurring automations through natural language in Telegram. No terminal required, no crontab syntax to remember
- Context compression matters — set it higher (0.9) for smaller context windows like MiniMax's 200K, lower (0.5) for million-token models
- The dashboard is a management hub — view sessions, logs, cron jobs, skills, plugins, and configurations all in one secured web UI
- Pi for setup, Hermes for daily use — use a trusted coding agent (with full VPS context) for initial setup and troubleshooting, then switch to Hermes for daily assistant tasks
🔗 Resources & Links
- Written Tutorial — Alejandro's full written guide for Hermes Agent VPS setup
- VPS Setup Skill (SKILL.md) — the reusable skill that automates VPS provisioning, security hardening, and Hermes installation
- Hermes Agent Documentation — official docs for setup, configuration, skills, and integrations