durmem keeps your agents on track.

Hermes

Connect Hermes to durmem with an MCP server entry in ~/.hermes/config.yaml. Hermes has no durmem plugin manifest, and durmem setup does not configure Hermes. This is an MCP-only setup: the bundle's config snippet does not register or enable lifecycle hooks, and this guide does not configure Hermes hooks. Follow the shared loom-coding discipline manually.

Configure the shared store#

Hermes uses the same ~/.loom/stores.toml registry as your other harnesses. If the registry is not set up, run durmem login for the hosted service, or durmem login --base https://durmem.ai for a private server, then follow the prompts; see Install and set up. Do not use durmem setup for Hermes: it configures Codex, Claude Code, or OpenCode, not Hermes.

The store name used below must match a section in ~/.loom/stores.toml. Keep its endpoint and keys in that file; do not put credentials in Hermes config or command arguments.

Install the Hermes bundle#

Install Hermes, then identify the Python interpreter it uses. The example uses the usual Linux path; replace it with the absolute path on your machine.

The complete Hermes bundle is distributed in the invitation-only durmem/durmem-private repository, under plugins/hermes/julius-loom. Hosted users do not automatically have access to that repository. If you cannot access it but have installed the durmem CLI, you can still configure an MCP-only connection from the runtime in ~/.loom/cli; use the absolute path to its loom_mcp.py in the config below. That runtime does not include Hermes skills or config.snippet.yaml.

If you can access the full bundle, keep its plugins/hermes/julius-loom directory at a stable path; the examples below call it /absolute/path/to/julius-loom.

The bundle contains the MCP runtime, skills/ (shared durmem skills and the Hermes-specific loom-install skill), shared hook scripts, and config.snippet.yaml. The installed ~/.loom/cli directory contains only MCP runtime files; it supports the MCP-only route above, not Hermes skills or the config snippet. Hermes does not expand ~ in MCP arguments, so use the absolute path to ~/.loom/cli/loom_mcp.py there.

Use the same Python 3.12 interpreter for Hermes's command and this preflight. The durmem runtime needs pyzmq, fastembed, cryptography, and mcp>=1.26.0,<2. The bundle's requirements.txt lists pyzmq, cryptography, and mcp; check_env.py also checks fastembed. The preflight starts the MCP server and may install missing packages into the interpreter's user environment, so run it with the interpreter and environment you intend to use:

/home/<you>/.hermes/hermes-agent/venv/bin/python /absolute/path/to/julius-loom/check_env.py

For the MCP-only CLI runtime, replace the final path with the absolute path to ~/.loom/cli/check_env.py.

If the preflight moves a stale shadow loom/ directory aside and asks you to rerun, run the command again and check for success. For a hosted store, the durmem server runs remotely; you do not need to compile or install a server program on this machine.

Configure and verify MCP#

Add the following to ~/.hermes/config.yaml, replacing both paths and <store-name>. Use absolute paths: Hermes does not expand ~ in MCP arguments. The config snippet in the bundle contains the same blocks.

mcp_servers:
  loom:
    command: /home/<you>/.hermes/hermes-agent/venv/bin/python
    args:
      - /absolute/path/to/julius-loom/loom_mcp.py
      - --default-store
      - <store-name>
    enabled: true

memory:
  memory_enabled: false
  user_profile_enabled: false
  provider: ''

<store-name> is a section in ~/.loom/stores.toml. Keep --default-store; do not pass --config or --db. The memory block disables Hermes's built-in prose memory so durmem remains the memory integration.

If you have the full bundle, copy its skills to Hermes's local skill directory, then start a fresh Hermes session. Hermes documents ~/.hermes/skills/ as this directory. Skip this step when using only ~/.loom/cli, which has no skills:

mkdir -p ~/.hermes/skills
cp -R /absolute/path/to/julius-loom/skills/. ~/.hermes/skills/
hermes skills list --source local

The last command should list the copied durmem skills. After restarting Hermes, check the MCP connection with hermes mcp list and hermes mcp test loom; then make a read-only durmem tool call, such as describing the configured store. The MCP test checks transport and tool discovery; the read verifies that a durmem call succeeds. Do not include store keys or tokens in a prompt or report.

You can also run the bundle's loom-install skill to check the runtime and configured store. The shared hook files are included for source parity only: the config snippet does not register Hermes lifecycle hooks.

Update or remove#

To update, obtain the newer bundle, copy its skills again, restart Hermes, and rerun loom-install. Hermes uses copies of the skills, so updating the bundle alone does not update them.

To disconnect durmem, remove the mcp_servers.loom block from ~/.hermes/config.yaml and restart Hermes. This leaves your stores and ~/.loom/stores.toml unchanged.