Skip to content

How to self-host Hermes Agent

Run Hermes, the memory-rich Python agent with FTS5-backed recall and skill chains, on hardware you own.

~15 minutes

Hermes is the memory-first profile: FTS5-backed recall, skill chains, and 17+ gateways. Where OpenClaw is the generalist and Khoj is the knowledge indexer, Hermes is the one that remembers.

What it needs

Hermes is Python and its recall layer is SQLite FTS5. That combination is comparatively light on disk but benefits from RAM as the memory store grows.

A Raspberry Pi 5 with 16 GB is a genuinely good Hermes host — the workload suits it better than it suits Khoj. A mini-PC with 16 GB is more comfortable again.

As an appliance profile

deputyctl profile switch hermes

Or select hermes in the picker when you first build the image. The Python runtime, native extensions and FTS5 build are baked in, so no pip install runs on your device — which matters more than usual here, since Python native extensions are exactly the kind of thing that breaks on a Pi at 2am.

Memory and recall

Hermes accumulates. That is the feature, and it has two consequences worth planning for.

Backups matter more. Losing the memory store means losing the thing that made it useful. Managed backup is client-side encrypted and off-device — see backup and restore.

Disk grows. Not fast, but monotonically. Check headroom occasionally on a 32 GB SD card.

Skill chains

Hermes composes skills into chains rather than treating each tool call as isolated. Adding your own goes through the plugin model rather than editing the image — see the plugin model and add a hook.

Choosing between the profiles

  • OpenClaw — the generalist, most channels, best first pick.
  • Hermes — when continuity across conversations is the point.
  • Khoj — when searching your own documents is the point.

You can switch without reflashing; the profile is a symlink and the switch is one command.

hermesself-hostedguide

← All guides

Search

Search index isn't built yet. Run npm run build to generate it (Pagefind writes to dist/pagefind/).