Hermes session sync — continue on any device

Last updated 2026-09-17 · MIT licensed · free for personal self-hosting

Hermes is the host Agent Context Sync was originally built for, so its adapter is the most complete one — including named profiles and the project pool.

Where Hermes keeps its sessions

Item Value
Archive root %LOCALAPPDATA%\hermes (Windows) / ~/.hermes (macOS, Linux)
Main store state.db (SQLite) under that root
Named profiles profiles/<name>/state.db — one session set per profile
Projects one projects.db per profile, synced into the shared project pool

The adapter scans every store under that root, so however many profiles you run in Hermes, that many session streams get synced.

Connecting it

  1. Open the setup help page, pick Hermes, and download the client package (the server address is pre-filled).
  2. On first run, execute install-deps.bat (Windows) or ./install-deps.sh (macOS / Linux) — it builds a virtualenv with mcp inside.
  3. Register with the command the page generates — your workspace API key is already filled in. The client starts as HERMES_SYNC_AGENT=hermes.
  4. Restart Hermes.

On first start it pulls incrementally; if the server has nothing yet it pushes your local data to complete the pairing; after that it syncs every 5 minutes.

Behaviour worth knowing

  • SQLite transactions only — writes commit atomically, so a session can never end up half-written. Your existing local history is never rewritten.
  • Profile isolation — the owning profile lives in the profile_name column and agent attribution in agent_type, so profiles never bleed into each other.
  • Delegated sessions fold in — sub-agent conversations are folded back into the parent session with a badge: the main thread stays readable and every branch stays traceable.
  • No migration step — history that predates the client is pushed whole on first pairing; there is nothing to export or import by hand.

Across devices, across agents

Install the Hermes client on two machines, point both at the same workspace, and a conversation you started at the office is already in the list when you sit down at home — just keep typing. You can also hand the thread to another agent (OpenCode, Oh My Pi, …): every agent reads and writes the same pool.