rohitg00/agentmemory · info

Hermes uses YAML config. Automated merge isn't implemented y

Error message

Hermes uses YAML config. Automated merge isn't implemented yet — manual install required.

What it means

agentmemory's connect command supports multiple agent CLIs. For Hermes, no automated config merge is implemented because Hermes uses YAML configuration (unlike the JSON files of other adapters), so the adapter's install() deliberately emits this warning plus a manual-instruction note and returns a skipped/manual result. It is expected behavior, not a bug.

Source

Thrown at src/cli/connect/hermes.ts:24

const HERMES_DIR = join(homedir(), ".hermes");
const HERMES_CONFIG = join(HERMES_DIR, "config.yaml");
const DOCS = "https://github.com/rohitg00/agentmemory/tree/main/integrations/hermes";

export const adapter: ConnectAdapter = {
  name: "hermes",
  displayName: "Hermes Agent",
  category: "native",
  docs: DOCS,
  protocolNote:
    "→ Using MCP. Hooks are also available — see https://github.com/rohitg00/agentmemory/tree/main/integrations/hermes.",

  detect(): boolean {
    return existsSync(HERMES_DIR);
  },

  async install(_opts: ConnectOptions): Promise<ConnectResult> {
    p.log.warn(
      "Hermes uses YAML config. Automated merge isn't implemented yet — manual install required.",
    );
    p.note(
      [
        `Add to ${HERMES_CONFIG}:`,
        "",
        "  mcp_servers:",
        "    agentmemory:",
        "      command: npx",
        '      args: ["-y", "@agentmemory/mcp"]',
        "",
        "  memory:",
        "    provider: agentmemory",
        "",
        `Full guide: ${DOCS}`,
      ].join("\n"),
      "Hermes manual install",
    );

View on GitHub (pinned to e04ba88819)

Solutions

  1. Copy the YAML snippet shown in the p.note() output into your Hermes config file (path shown as HERMES_CONFIG in the note).
  2. Restart Hermes so it picks up the MCP server entry.
  3. Check agentmemory releases/changelog for a newer version that may have added automated Hermes YAML merge.
  4. If you maintain the repo, contribute a YAML merge implementation in src/cli/connect/hermes.ts modeled on the JSON adapters.

Example fix

# before (automated attempt fails to fully wire)
agentmemory connect hermes
# -> warning: manual install required

# after (manual edit of the printed path)
# add to ~/.hermes/config.yaml (path shown in the note):
mcp:
  servers:
    agentmemory:
      command: agentmemory
      args: ["mcp"]
Defensive patterns

Strategy: fallback

Validate before calling

import { existsSync } from "node:fs";
const hermesDir = join(process.env.HOME ?? "", ".hermes");
if (!existsSync(hermesDir)) {
  console.error("Hermes not detected; connect will only print manual instructions.");
}

Type guard

type ConnectResult = { kind: "installed" } | { kind: "skipped"; reason: string } | { kind: "manual" };
function needsManualInstall(r: { kind: string }): boolean {
  return r.kind !== "installed";
}

Try / catch

const result = await runAdapter(hermesAdapter, opts);
if (result.kind !== "installed") {
  console.log("Manual step required: copy the printed YAML snippet into your Hermes config, then restart Hermes.");
}

Prevention

When it happens

Trigger: Running `agentmemory connect hermes` (or selecting Hermes in the interactive connect flow) — install() always takes this path because automated YAML merging is not implemented; it fires regardless of config contents.

Common situations: Users on fresh setups or after Hermes config changes expecting `connect` to fully wire Hermes; it never will until automated YAML support is added. Users must copy the printed snippet into HERMES_CONFIG by hand.

Related errors


AI-assisted analysis of rohitg00/agentmemory@e04ba88819 (2026-08-30). Data as JSON: /api/errors/2d5e0197ab76b7d0. Report an issue: GitHub.