After reading the architecture deep dive on Hermes three-layer memory, I wanted field data, not theory. In March 2026 I pointed the same Telegram gateway, the same OpenRouter model profile, and the same seed USER.md at three always-on candidates: a Raspberry Pi 5 (8GB) on my desk, a shared Linux VPS in Frankfurt, and a NUKCLOUD rented Mac Mini M4 (24GB) I treated as production. Hermes is MIT-licensed, gateway-first, and built so session context, skill markdown, and cross-session user facts compound over weeks. Nous Research crossed 160,000 GitHub stars on the repo for a reason: when the host stays up, the agent stops feeling like a disposable CLI. When the host fights you, users notice before your dashboards do. This article is my first-person thirty-day log: what improved, what broke, and which hosting shape I would bill to a real team. If you only need memory diagrams and CapEx math, read the companion piece; if you are choosing between cheap ARM, cheap x86, and metered Apple Silicon, stay here.
00Why I ran the same agent on three machines
Hermes Agent from Nous Research is not a chat skin. It is a long-lived gateway process that routes Telegram, Discord, Slack, and terminal sessions through one core, writes episodic history into SQLite with FTS5, distills skills into markdown, and injects MEMORY.md and USER.md at session start. The product promise is simple: agents should get better with use. That only works if state.db, skill folders, and outbound webhooks survive reboots, package upgrades, and noisy neighbors.
Community runbooks often default to a Mac Mini M4, but hobbyists (including me) try to dodge CapEx with a Pi or a five-to-twenty-dollar VPS first. I did exactly that, then rented cloud Mac time through the same console flow we document for dedicated Apple Silicon nodes. My success metric was not install success; it was whether a colleague messaging the bot on day twenty-eight got answers that referenced decisions from day three without me re-prompting.
I held model provider constant, rotated hosts weekly in the first pass, then ran all three in parallel for the final ten days with mirrored backup restores to compare recall latency fair. Daily load: roughly 40–80 gateway messages, two scheduled summarization windows, and one intentional skill-distillation task per week (deploy script, invoice parser, meeting notes template).
PainWhat hurt before the month ended
Every host ran the official installer. The pain showed up in persistence mechanics, not README steps. Below is the hosting table I wish I had on day one; numbers are from my logs, not marketing sheets.
| Host | Uptime I measured | Disk behavior | What users felt | My all-in monthly cost |
|---|---|---|---|---|
| Raspberry Pi 5 (8GB) | 94.2% (SD wear + thermal throttle) | microSD then USB SSD; FTS5 rebuilds spiked I/O | Recall worked, but 3–8s search delays; two overnight gateway stalls | ~$95 hardware + ~$3 power |
| Budget VPS (2 vCPU / 4GB / 80GB) | 99.1% ping, deceptive | NVMe, but noisy neighbor CPU steal | Fast install; summarization jobs exceeded 90s twice; Telegram webhook gap once | $12 plan + $0 egress until burst |
| Rented Mac Mini M4 (24GB cloud) | 99.97% contract window | Fast NVMe; tenant disk; clean reboot tests | Sub-second recall at day 30; zero user-visible gateway drops | Metered hours (~$89 effective) |
- Gateway continuity: Hermes is one process users treat like staff. Pi thermal cycles and VPS steal felt like mini outages even when ping looked fine.
- Memory integrity: Abrupt Pi power loss once left a half-written skill file; the Mac host survived three controlled reboots with FTS5 intact.
- Closed learning loop: Skill distillation is CPU-heavy. On the VPS, jobs queued behind neighbor burst; on the Pi, I capped concurrent tools to avoid OOM.
- Apple adjacency: I did not run local Metal inference on the Pi or VPS; if you plan to pair Hermes with on-box models, see the ds4 DeepSeek V4 Metal runbook—that path assumes unified memory Mac, not ARM SBC.
- Ops tax: The Pi demanded babysitting (fans, SD imaging, UPS). The VPS demanded monitoring steal. The rented Mac demanded only SSH and backup checks.
By day fifteen I stopped asking whether Hermes installs. I asked which host respects memory as stateful capital across weeks, not hours.
01Thirty days, week by week
Days 1–7 (Raspberry Pi): Install via curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash succeeded in eleven minutes. Telegram gateway came up fast. By day four the agent correctly recalled my timezone preference and a billing alias without me repeating them—proof the user model layer works even on ARM. By day six, state.db crossed 180MB and episodic search median rose from 420ms to 2.9s. Night two the gateway hung until I power-cycled; logs pointed to I/O wait on the SD card.
Days 8–14 (VPS): I migrated with tarball restore. Ping looked perfect. Human-facing quality improved for short prompts, but weekly summarization twice crossed 90 seconds and once timed out, leaving a stale episodic index until I manually re-ran maintenance. A Telegram webhook renewal failed after a provider maintenance window—exactly the long-connection fragility cheap pools hide behind uptime badges.
Days 15–21 (rented Mac Mini M4): I provisioned through order, pinned macOS minor version, and moved Hermes home to a dedicated Unix account. Recall median stabilized under 350ms even as state.db passed 420MB. Skill documents grew from 12 to 37 entries; injection scans rejected two noisy drafts as advertised in docs. This was the first week my non-technical teammate said the bot feels like it remembers meetings.
Days 22–30 (parallel soak): I kept Pi and VPS warm as shadow environments but routed production traffic to the cloud Mac. Shadow hosts still learned, but slower. On day 28 I asked the same question on all three: summarize a decision from day 9 about vendor payment terms. Pi and VPS answered with hedging or partial recall; the Mac cited the correct skill entry and episodic snippet in one pass. That was my buy signal.
DataNumbers I would put in a stakeholder slide
- Repository scale: Hermes Agent passed 160,000 GitHub stars by mid-2026 with MIT license and 200+ model providers documented in README.
- Memory entry bounds: Official docs cite roughly 2,200 characters per skill or fact entry with deduplication and injection scanning—my disk grew to 1.1GB total including skills by day 30 on the Mac host.
- Gateway surfaces: One gateway served Telegram plus Discord simultaneously in my test; downtime cost scales with every connected channel, not just CLI users.
- Measured recall latency (day 30, median of 50 queries): Pi 2.4s, VPS 1.1s (spiky), rented Mac Mini M4 0.31s.
- Cost cross-over: Pi CapEx near $95 plus ops time; VPS sticker $12/mo plus incident tax; cloud Mac metered near $89 for my hour profile—cheaper than buying a Mini if you need under three months of proof.
02Six steps I would repeat for a team pilot
These steps mirror what worked on the rented Mac host; adapt SKU sizing via pricing and your compliance needs.
-
01
Pick the host class honestly: Pi for personal lab only; VPS for gateway-only with cloud APIs; cloud Mac when recall latency and multi-channel uptime are production requirements.
-
02
Freeze baseline: Record OS version, timezone, dedicated Unix user, and backup targets for
state.db, skills, and markdown memory files before you connect Telegram. -
03
Install and pin: Run the official installer, verify CLI and TUI, pin a tested release tag—do not track main on a live gateway without staging.
-
04
Prove persistence: Write a test skill, reboot under control, confirm FTS5 and markdown files survive; if restore fails, fix disk before you invite users.
-
05
Wire gateways safely: Store tokens outside git; tunnel admin TUI over SSH; never expose management ports publicly.
-
06
Observe the learning loop for thirty days: Track
state.dbgrowth, summarization duration, and user complaints; reconcile cloud Mac meter against Pi CapEx and VPS incident time monthly.
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
hermes --version
hermes tui
03Decision matrix: Pi vs VPS vs rented Mac Mini M4
| Dimension | Raspberry Pi 5 | Budget Linux VPS | NUKCLOUD rented Mac Mini M4 |
|---|---|---|---|
| Best for | Home lab, single user | Gateway + cloud APIs only | Production memory + optional Metal |
| 24/7 reliability | Power, SD, thermals | Oversubscription, webhook fragility | Datacenter uptime, SSH always on |
| SQLite FTS5 at GB scale | Struggles on slow media | Variable I/O steal | Consistent sub-second in my test |
| Apple toolchain + Metal | Not available | Not available | Native on macOS SKU |
| Team sharing | Physical access | Informal SSH keys | Console tenant boundary |
| My verdict after 30 days | Keep for experiments | Keep for dev shadow only | Production default |
Shared VPS pools still tempt with low stickers, but bandwidth jitter, CPU steal, and long summarization jobs broke the closed learning loop exactly when memory started to feel intelligent. The Pi taught me Hermes works on ARM; it also taught me I do not want microSD next to production episodic search. For teams that need compounding memory without buying a Mac per engineer, NUKCLOUD multi-region bare-metal and cloud Mac nodes were the only host where I would stake a customer-facing Telegram bot after day thirty.
04Frequently asked questions
state.db, I hit I/O and thermal limits by week two. Treat Pi as a lab, not the memory host once other people depend on the bot.