This page covers connecting Hermes to Loom, which is a manual configuration: Hermes has no plugin manifest and loom setup does not configure it.
Hermes integrates Loom through one mcp_servers.loom entry in ~/.hermes/config.yaml. The package wires MCP only and registers no lifecycle hooks, so follow the loom-coding discipline manually unless you configure Hermes hooks separately.
Install Hermes first, following Hermes's own installation instructions; this page assumes it is installed with its Python at ~/.hermes/hermes-agent/venv/bin/python.
Get the Hermes bundle. While the release repository is not public, use the ~/.loom/cli folder installed by the loom command installer as <bundle>; it covers the MCP connection only (see the note below). Below, <bundle> is the path of that folder.
Once the release repository is public you can instead clone it:
git clone https://github.com/yadongli/julius-loomThe full bundle is then the folder <clone>/plugins/hermes/julius-loom. It contains loom_mcp.py, zmq_client.py, loom_embed.py, check_env.py, skills/ and config.snippet.yaml.
Not verified: public availability of the Loom repository; cloning currently asks for credentials.
Install the dependencies into the Python that Hermes will run (see the note after the config), then check them:
<python> -m pip install pyzmq fastembed 'mcp>=1.26.0,<2'
<python> <bundle>/check_env.py~/.loom/venv has no pip, so use your own virtual environment (or Hermes's) for this step.
Keep the mcp pin ('mcp>=1.26.0,<2'). An unpinned install gets mcp 2.x, and the server then fails to start: from v0.674 with the line loom_mcp.py needs mcp>=1.26,<2 (mcp 2.x is not supported): install it with pip install 'mcp>=1.26,<2'`, and on earlier releases with No module named 'mcp.server.fastmcp'. If you create a new virtual environment on Debian or Ubuntu, install the python3-venv package first (without it python3 -m venv fails because ensurepip` is missing).
Add the following to ~/.hermes/config.yaml, replacing <you>, <bundle> and <store-name> (use an absolute path; a ~ is not expanded in args):
mcp_servers:
loom:
command: /home/<you>/.hermes/hermes-agent/venv/bin/python
args:
- <bundle>/loom_mcp.py
- --default-store
- <store-name>
enabled: true
memory:
memory_enabled: false
user_profile_enabled: false
provider: ''<store-name> is a section name from your ~/.loom/stores.toml, for example coding. The connection is never set here: the endpoint and keys come only from that section.
Use --default-store, not --config. The two flags are mutually exclusive, and --config ~/.loom/stores.toml alone starts the server but tool calls then fail with loom config '<path>' must set endpoint; db= stores are no longer supported. Giving both flags makes the server start and list its tools, then exit on the first tool call with loom_mcp: --default-store and --config are mutually exclusive.
Copy the bundle's skills/ where Hermes discovers them and restart Hermes.
Not verified: which directory Hermes loads skills from, so no exact copy command is given here.
The memory block turns off Hermes's built-in prose memory, because Loom runs exclusively over MCP.
Restart Hermes, then ask:
List my Loom stores and describe which store is the default.The agent finds the default with loom_list_stores or loom_current_default_store, then calls loom_describe_store, which needs a store argument. The expected answer is the section you passed to --default-store.
<python> <bundle>/loom_mcp.py --help prints the launch options and exits normally, and a bad flag prints its usage error and exits, in both cases before any server is started (v0.674 or later).
A wrong section name does not fail at startup. It fails on the first tool call with loom store 'X' not in /home/<you>/.loom/stores.toml. Available stores: ...; fix the name in config.yaml and restart Hermes.
You can also run the bundled loom-install skill, which checks the runtime and every configured store.
Change the <store-name> value in config.yaml, or edit the section's endpoint in stores.toml. Never create a private per-harness connection setting.
Copy the upgraded skills, restart Hermes so it discovers them, rerun loom-install, and follow any final restart instruction. A git pull alone does not refresh copied skills or verify the MCP configuration.
Delete the mcp_servers.loom block from ~/.hermes/config.yaml and restart Hermes. Your stores and ~/.loom/stores.toml are unaffected.