How to Deploy Hermes Agent: A UK Business Complete Guide (2026)
Deploy Hermes Agent for a UK business using the current Linux setup, gateway service, scoped tools, monitoring, security controls and recovery testing.
Co-founder of Ampliflow. Builds AI automation, websites, SEO/AEO, and growth systems for UK SMEs.

- 01Where to deploy Hermes Agent
- 02What you need before installing Hermes Agent
- 03Installing Hermes Agent on a Linux server
- 04Locking down the toolset before the first real task
- 05Monitoring and the recovery playbook
Hermes Agent runs as a long-lived Linux service that connects to a model, a messaging gateway, and your tools. A serious deployment for a UK business needs four things: a stable server, a hardened install with systemd auto-restart, a properly scoped toolset, and a recovery plan for provider or infrastructure failure. We have run Hermes in production since March 2026 — this is what we wish we had known on day one.
Last updated: May 2026 · Covers Hermes Agent v0.13 · Includes the 30 April outage post-mortem · Based on 40+ days of live production data — see the 40-day production cost teardown for the full numbers
TL;DR:
- Oracle's free-eligible Ampere capacity can support a narrow pilot where capacity is available; keep a paid fallback
- Use systemd with
Restart=alwaysand exponential backoff — anything else means the agent dies silently after the first transient error - Attach Hermes to WhatsApp via the Baileys bridge for founder-friendly notifications
- Lock down the toolset before the first real task — never run with broad shell access
- Build the recovery playbook before you need it (we will publish ours below)
If you are reading this to decide whether to maintain Hermes yourself or have it built properly, use the guide as a due-diligence checklist. For a managed business system, start with AI automation, Apps & MVPs, or get unstuck so we can scope the first useful deployment.
Contents
- Where to deploy Hermes Agent
- What you need before installing Hermes Agent
- Installing Hermes Agent on a Linux server
- Setting up systemd auto-restart (the most important step)
- Connecting WhatsApp (the founder-friendly channel)
- Locking down the toolset before the first real task
- Monitoring and the recovery playbook
- Auto-updates without breaking things
- How Ampliflow deploys Hermes for UK clients
Where to deploy Hermes Agent
Choose stability over compute. Hermes does not need GPU. It needs uptime.
text +-----------------------------------+
| YOUR SERVER (Linux) |
| Oracle Free Tier £0/mo OR |
| Hetzner CX22 £4/mo |
| |
| +-----------------------------+ |
| | systemd unit | |
| | Restart=always | |
| | Exponential backoff | |
| +-------------+---------------+ |
| v |
| +-----------------------------+ |
| | Hermes Gateway | |
| | (long-lived process) | |
| +-------------+---------------+ |
| | |
+----------------|------------------+
|
+----------------------+----------------------+
v v v
MODEL PROVIDER MESSAGING CHANNELS SCOPED TOOLSET
Anthropic / WhatsApp / Telegram File read,
OpenAI / / Slack / CLI web fetch,
Z.AI / skills (NO
Local Ollama shell exec
by default)
| | |
+----------------------+----------------------+
v
MONITORING + RECOVERY
Healthchecks.io ping
journald logs
Auto-update v2 cron
Recovery playbookMost UK businesses considering Hermes are choosing between four hosting options. The trade-offs:
| Option | Cost basis | Availability evidence to check | Best for |
|---|---|---|---|
| Oracle Cloud Free Tier (Ampere A1, 1 OCPU, 6GB) | £0 when eligible capacity is available | No capacity guarantee; we run paid x86 for our own deployment | Narrow pilots with a paid fallback |
| Small paid VPS | Current provider quote | Published SLA, support and backup terms | A pilot that needs predictable capacity |
| AWS / GCP / Azure managed compute | Current cloud estimate | Service, region and architecture-specific SLA | When policy or existing cloud operations favour that provider |
| Your office / on-premise server | Hardware, power and operations | Your measured network, power and recovery design | When a documented requirement favours local infrastructure |
The measured deployment began on 3 April 2026. It used paid Oracle x86 compute because other web, monitoring and file workloads shared the host. For a narrow Hermes-only pilot, Oracle's free-eligible Ampere allowance can be tested where capacity is available; it is not a production guarantee.
Real measured uptime: 93.5% across 40 days, with the 6.5% downtime concentrated in a single 62-hour incident in late April that taught us the recovery patterns documented further down. Without that incident, uptime would have been 99.7%. Full numbers in the 40-day production cost teardown.
For a narrow pilot, Oracle's free-eligible capacity is worth testing. Size the host from measured memory, storage and availability requirements, and keep a paid fallback because free capacity may be unavailable.
The Oracle Cloud deployment guide covers the specific Oracle setup steps, region choice and network rules. This pillar covers the cross-host deployment patterns.
What you need before installing Hermes Agent
Five prerequisites, in order of how often they catch people out.
1. A Linux server you can SSH into
Use a Linux distribution and version supported by the Hermes release you are installing. The commands below assume Ubuntu or Debian. Windows development may use WSL2, but a production service needs a host with deliberate uptime, patching and recovery ownership.
You need root access (or sudo) for the systemd configuration. SSH access is mandatory; "I'll just edit through the web console" works for thirty seconds and breaks every recovery procedure.
2. A model provider with appropriate capacity
Hermes can route to different model providers. Choose one that the installed Hermes version supports, then compare quality, latency, cost, data handling and rate limits on the actual workflow. A local model can reduce external data transfer, but it does not remove the need for security, access and retention controls.
Pick one route for the pilot and document the configuration. Switching providers may be straightforward at the connector level, but prompts, tools, limits and output quality still need retesting.
3. A domain name (optional but useful)
If you want a dashboard, scheduled webhooks or external API access, a domain can provide a stable endpoint. A managed tunnel can avoid opening a public inbound port, but it still needs authentication, access policy and recovery testing.
4. A messaging channel, if the workflow needs one
Hermes can deliver replies and notifications through supported messaging channels. Choose the channel your operator already monitors, then check the connector's current support status, account terms, authentication and audit trail before production use.
You will need a phone number that can be linked to WhatsApp Business or personal WhatsApp. We use a dedicated number for the agent rather than the founder's primary number — the audit trail is cleaner.
5. A .env template ready before you start
Hermes reads configuration from ~/.hermes/config.yaml and environment variables. Have the provider and channel credentials you intend to configure ready before you run hermes setup. Keep credentials out of the repository and shell history.
Installing Hermes Agent on a Linux server
- 01Provision and patch the host
- 02Install with least privilege
- 03Add secrets outside source control
- 04Configure restart and monitoring
- 05Test recovery before real work
The install itself is one line. The hardening around it is the rest of this guide.
SSH to your server. Then:
bashcurl -fsSL https://hermes-agent.nousresearch.com/install.sh | bashThis is the current command in the official installation guide, reviewed on 12 August 2026. A per-user install places the code under ~/.hermes/hermes-agent/ and the launcher under ~/.local/bin/. For a server, use a dedicated unprivileged service user and grant only the administrative steps the install actually needs.
If you prefer not to pipe an internet script into Bash, follow the official manual/developer installation path and inspect the release before running it.
After install, run:
bashhermes setupThis launches the full configuration wizard. Provider-only and channel-only setup are also available through hermes model and hermes gateway setup.
Verify the install:
bashhermes --version
hermes doctor
hermes gateway statushermes doctor checks the installation and configuration. hermes gateway status reports the default gateway service. The exact version is whatever the current supported release reports; do not use this guide to pin an old version.
Setting up systemd auto-restart (the most important step)
The single difference between a Hermes deployment that survives and one that dies on day three is the systemd unit configuration.
Naive systemd units use Restart=on-failure. The Hermes gateway can exit cleanly (status 0) after a fatal error, which on-failure does not catch. The agent appears stopped for hours before anyone notices.
Use Hermes' current service installer instead of copying a hand-written unit that can drift from the application:
bashhermes gateway install
hermes gateway start
hermes gateway status
sudo loginctl enable-linger $USERThe official messaging gateway guide recommends a system service for a headless VPS that must return at boot without relying on lingering:
bashsudo hermes gateway install --system
sudo hermes gateway start --system
sudo hermes gateway status --systemUse journalctl --user -u hermes-gateway -f for the user service or journalctl -u hermes-gateway -f for the system service. Test a process exit and host reboot before calling the recovery path complete.
Connecting WhatsApp (the founder-friendly channel)
For UK SME owners, WhatsApp is the channel that gets read. Email gets ignored. Slack is for the team.
After the gateway is running, link WhatsApp:
bashhermes whatsapp linkThis prints a QR code in your terminal. Open WhatsApp on your phone, go to Settings → Linked Devices → Link a Device, and scan the code. The bridge connects within thirty seconds.
We use a dedicated phone number for the agent rather than a founder's primary number. Reasons:
- Cleaner audit trail (every message in the agent's WhatsApp history was either to or from the agent)
- The founder's primary WhatsApp does not get linked to a server they may forget about
- If the agent needs to be paused or rolled back, the founder's normal WhatsApp keeps working
- Compliance is easier — the agent's WhatsApp is a business asset with documented access
Once linked, you can ask Hermes anything in a WhatsApp message:
textYou: Daily ops summary please
Hermes: [returns the summary you configured in your skills]For the in-depth use cases beyond simple replies — scheduled summaries, lead capture from voice notes, escalation patterns — see the companion piece on WhatsApp AI Agent with Hermes.
Locking down the toolset before the first real task
A Hermes agent with broad shell access is not a deployment — it is an incident waiting to happen. Lock the toolset down before the agent runs anything in production.
Hermes ships with a permissive default toolset for development: file system access, shell execution, web fetch, browser automation, model invocation. For production:
Disable tools you do not need
Edit ~/.hermes/config.yaml:
yamltools:
enabled:
- web_fetch
- file_read
- whatsapp_send
- cron
- skills
disabled:
- shell_exec # Disable until you need it
- file_write # Re-enable explicitly per scoped path
- browser_automation
- sudoScope file_write to specific directories
If the agent needs to write files (for outputs, reports, logs), scope the write access to specific directories rather than allowing global write:
yamltools:
file_write:
enabled: true
allowed_paths:
- /home/ubuntu/hermes-outputs/
- /tmp/hermes-scratch/
forbidden_paths:
- ~/.ssh/
- ~/.hermes/config.yaml
- /etc/Use skills to constrain shell access
If the agent needs shell execution for specific tasks (running a deploy script, querying a database), wrap them in skills rather than enabling raw shell_exec. A skill is a named, scoped operation with a clear interface. The agent calls run_daily_report rather than executing arbitrary shell commands.
The dedicated piece on Hermes Agent custom skills covers the skill-writing patterns we use in production.
Network egress restrictions
For UK businesses with sensitive data, restrict the agent's outbound network access. The agent needs to reach:
- Your model provider (Anthropic API, OpenAI API, etc.)
- Configured third-party APIs (the ones you explicitly allow)
- WhatsApp servers (
web.whatsapp.com,*.whatsapp.net)
Everything else can be blocked at the firewall level. We use Oracle's network security lists (or ufw on a non-cloud server) to maintain an explicit allowlist. This eliminates an entire class of compromise — even if the agent is tricked into trying to exfiltrate data, it has nowhere to send it.
The Hermes Agent security and GDPR piece covers the deeper compliance posture for FCA-regulated firms, NHS suppliers, and GDPR-sensitive UK businesses.
Monitoring and the recovery playbook
The most important piece of operational documentation we have for Hermes is the recovery playbook. It exists because of the 30 April 2026 outage.
What happened on 30 April 2026
Our Hermes deployment went down at approximately 02:14 UTC and stayed down for 62 hours. The root cause: the gateway received an unhandled exception from a model provider rate-limit response, exited with status 0, and Restart=on-failure (which we were using at the time) did not retry. The agent was offline through the bank holiday weekend before anyone noticed.
The fix was a series of changes that became the recovery patterns documented in this section. We publish them because most Hermes guides leave this part out.
What to monitor
For a single-instance deployment, the minimum viable monitoring:
- Service uptime check every 60 seconds. Either
systemctl --user is-active hermes-gateway.servicefrom a cron, or a Healthchecks.io / UptimeRobot pinger if you want offsite alerting. We use Healthchecks.io free tier (£0/mo) — the agent itself sends a heartbeat every two minutes; if the heartbeat is missed for 10 minutes, Healthchecks notifies us via WhatsApp through a separate channel. - Log monitoring for fatal errors.
journalctl --user -u hermes-gateway.service -p err --since "5 minutes ago"run on a cron. Pipe any output to your alert channel. - Disk space check. Hermes logs grow. Configure logrotate at
/etc/logrotate.d/hermes:
text~/.hermes/logs/*.log {
daily
rotate 14
compress
delaycompress
missingok
notifempty
copytruncate
}- Memory usage. Hermes occasionally leaks memory under specific load patterns. We check RSS every 5 minutes and restart the service if it exceeds 4 GB on a 6 GB machine. The leak fix is in v0.14, but the watchdog stays as a belt-and-braces measure.
The Hermes Agent monitoring and uptime guide covers the full monitoring stack we run in production, including the auto-update v2 script that survived a 98-commit upgrade in early May.
The recovery playbook
If Hermes goes down, use this playbook:
- First, check it is actually down:
systemctl --user status hermes-gateway.service. If it isfailedorinactive, proceed. - Restart the service:
systemctl --user restart hermes-gateway.service. Wait 30 seconds. Re-check status. If it comes up cleanly, look at recent logs for the cause but proceed with normal operations. - If the restart fails repeatedly, check the model provider: most "Hermes is broken" incidents are actually "Anthropic is down" or "rate limit exceeded." Check status.anthropic.com or your provider's equivalent.
- If the provider is healthy and Hermes still will not start, roll back: Hermes auto-update keeps backups in
~/.hermes/backups/pre-update-*.zip. Restore the most recent:~/.hermes/hermes-agent/venv/bin/hermes import --force ~/.hermes/backups/pre-update-YYYY-MM-DD-*.zipthen restart the service. - If rollback also fails, file an issue: use github.com/NousResearch/hermes-agent. The Nous team responds fast; we have had hour-turnaround on critical issues.
The whole playbook fits on one A4 page. Print it. Tape it next to the laptop you SSH from. The five minutes you spend now save you 62 hours later.
Auto-updates without breaking things
Hermes ships updates roughly weekly. Auto-updating without a verification step has burned us. Auto-updating with a verification step is fine.
Our auto-update setup runs at 03:00 London time daily:
- Snapshot current state (
hermes export ~/.hermes/backups/pre-update-$(date -I).zip) - Capture pre-update Git SHA (
git rev-parse HEADin the Hermes source dir) - Run
hermes update --yes(the--yesflag avoids hanging on interactive prompts) - Re-run any local patches (we have two custom patches for WhatsApp voice replies — these get reapplied after every upgrade)
- Verify the gateway starts (
systemctl --user restart hermes-gateway.service && sleep 30 && systemctl --user is-active hermes-gateway.service) - If verification fails: roll back via
hermes import --forceof the snapshot, restart, send WhatsApp alert - Write status to
~/.hermes/.auto-update-status.jsonfor the dashboard
The full script is roughly 100 lines of bash and lives in ~/.hermes/bin/auto-update.sh. We trigger it from a systemd timer:
ini# ~/.config/systemd/user/hermes-auto-update.timer
[Unit]
Description=Daily Hermes auto-update
[Timer]
OnCalendar=*-*-* 03:00:00 Europe/London
Persistent=true
[Install]
WantedBy=timers.targetThe Persistent=true line ensures that if the server was offline at 03:00, the update runs as soon as it comes back online. Without it, an overnight reboot means an entire day of skipped updates.
How Ampliflow deploys Hermes for UK clients
A four-stage rollout, every time. We do not skip stages.
Stage 1 — Foundation pilot (week 1)
Single Oracle Free Tier instance, single skill (a daily ops summary that reads three data sources and sends a WhatsApp summary at 08:00). The founder uses Hermes for a week. Every issue the founder hits becomes a config change or a CLAUDE.md-equivalent rule.
By Friday, the agent's daily summary is reliable enough that the founder reads it before opening their laptop.
Stage 2 — Skill expansion (weeks 2-3)
We add three to five more skills based on the founder's most repeated weekly tasks. Common patterns: lead summary from CRM exports, content moderation of overnight messages, weekly P&L reconciliation, scheduled invoice chasing.
Each skill is scoped, audit-logged, and reviewed before deployment. The agent does nothing without explicit human approval for the first two weeks of each new skill.
Stage 3 — Channel expansion (week 4)
If the WhatsApp loop is working, we add additional channels: Telegram for the founder's family/personal time separation, Discord for community-management businesses, Slack for businesses with internal teams. Each channel gets its own permissions and skills.
Stage 4 — Specialist harnesses (week 5+)
When operational boundaries genuinely differ, separate instances can isolate permissions, data and failure impact. Do not split the system by department by default; start with the smallest workflow and add isolation when the risk model requires it.
Isolation reduces blast radius and clarifies audit logs.
This is the same pattern we use for Claude Code rollouts — the specialist-harness model works across both tools.
Build it yourself or have it implemented?
Build Hermes yourself if you already have a technical owner, clear recovery discipline, and enough time to maintain the deployment. The guide above gives you the minimum production pattern.
Ask for implementation help when Hermes needs to connect to live business systems, handle customer messages, write into your CRM, or feed a management dashboard. In that case, the deployment is no longer just a server. It becomes an operational system with permissions, fallbacks, monitoring, and human approval rules.
For UK teams that want the outcome rather than another tool to maintain, start with AI automation. If Hermes is part of a wider internal product, see Apps & MVPs. If the main problem is visibility across enquiries, calls, tasks and revenue, see AmpliDash.
Frequently asked questions
Do I need a powerful server to run Hermes Agent?
No. Hermes is not GPU-bound. Reasoning happens at the model provider's side; your server runs the orchestrator, the gateway, the messaging bridges, and the tool calls.
Oracle Cloud Free Tier (1 OCPU Ampere A1, 6 GB RAM) handles a founder-led business comfortably. Our own production deployment is on a slightly larger paid x86 shape because we co-locate other services; see the 40-day teardown for the real numbers.
Can I run Hermes Agent on Windows?
Not natively. Hermes is Linux-first. You can install via WSL2 with Ubuntu for development, but production deployments should target a real Linux server (Oracle, Hetzner, DigitalOcean, AWS Lightsail, Linode). The systemd configuration this guide describes does not work in WSL.
Is Hermes Agent free?
The Hermes Agent software is open source. You still pay for the model provider or self-hosting, plus infrastructure and operational ownership. Model and hosting costs depend on the provider, traffic, context size, connected services and region. Oracle publishes a Free Tier, but capacity and availability must be checked for the account and region rather than assumed for production.
Can Hermes Agent be used within a UK GDPR-compliant system?
Hermes does not classify data or make a deployment compliant by itself. The controller must document purpose and lawful basis, processors, access, retention, security, rights handling and any international transfers. A scoped toolset and appropriate provider terms are technical controls, not a compliance certificate. The Hermes security and GDPR piece covers deployment hardening; the ICO guidance covers the legal framework.
What happens if my model provider goes down?
The gateway logs the failure and the systemd unit's exponential backoff prevents tight restart loops. Once the provider recovers, Hermes resumes automatically. For mission-critical deployments, you can configure a fallback model provider in ~/.hermes/config.yaml — Hermes will failover automatically if the primary returns a sustained 5xx for more than 60 seconds.
Can I run multiple Hermes Agents on one server?
Yes. Each agent runs as a separate systemd service with its own ~/.hermes/ directory. We commonly run two — a "primary" handling daily operations and a "test" used to validate config changes before they touch production. Resource overhead is minimal because each gateway is small (~200 MB RAM at idle).
How do I share a Hermes Agent with my team?
For founder-only use, link a single WhatsApp account. For team use, the dashboard at port 9119 (SSH-tunneled, never exposed publicly) provides a web chat interface. For organisations that need proper multi-tenant access, deploy a separate Hermes instance per user — the resource cost is small and the audit clarity is worth it.
What is the difference between Hermes Agent and Claude Code?
Different problems. Claude Code is a developer's terminal-native coding agent — it lives where engineers write code. Hermes Agent is a server-resident automation agent — it runs scheduled jobs, holds conversations across sessions, and integrates with messaging channels. Many UK businesses run both: Claude Code for shipping software, Hermes for shipping operational outcomes.
Is Hermes Agent worth it vs commercial alternatives like n8n or Make.com?
For straightforward automations (CRM webhooks, basic notifications), n8n and Make.com are simpler and cheaper to operate. For agents that need to reason, hold context across sessions, learn from interactions, and use tools dynamically, Hermes is in a different category. The 40-day production cost teardown walks through the cost comparison with real numbers.
Related reading
- Hermes Agent Skills: Build Custom Extensions (UK Guide 2026)
- ↑ What is Hermes Agent? A UK Business Guide — the foundational pillar this deployment guide sits under
- ↔ Hermes Agent on Oracle Cloud Free Tier — UK Guide — the specific Oracle setup steps for a £0/month pilot
- ↔ Hermes Agent Security & GDPR for UK Business — the compliance posture for FCA-regulated firms, NHS suppliers, and GDPR-sensitive deployments
- ↔ Hermes Agent Monitoring, Uptime & Reliability in Production — the full monitoring stack we run, including auto-update v2
- ↔ How to Install Claude Code — UK Business Guide — the Claude Code-side equivalent of this guide, for the developer workflow that complements Hermes operational automation
What should you do next?
The install takes an hour. Getting Hermes to do real, trustworthy work for your business takes a fortnight of iteration on skills, channels, and recovery patterns.
If you want help deciding whether Hermes fits the workflow, bring the process, systems, risks and operational owner. We will start with the smallest useful deployment boundary.