{
  "schemaVersion": 1,
  "reviewedAt": "2026-09-26",
  "slug": "hermes",
  "name": "Hermes Agent",
  "category": "Host plugin",
  "headline": "Hermes, connected.\nScout within reach.",
  "summary": "Hermes calls your Scout agents through the hermes-scout plugin, or through Hermes' own MCP client. Scout does not launch Hermes: Hermes is a host that calls Scout, not a Scout execution harness.",
  "status": "Hermes → Scout: available (plugin or MCP stdio) · Scout → Hermes: not supported",
  "marketplace": "Install the plugin directly from arach/hermes-scout. This guide does not claim a separate curated marketplace listing.",
  "transport": "Hermes plugin → Scout MCP over stdio",
  "flow": [
    "Hermes Agent",
    "Scout",
    "Coding agents"
  ],
  "requirements": [
    "Hermes Agent with plugin support (the package documents v0.6.0+), and Python 3.9+.",
    "Scout installed, a healthy broker, and scout mcp available on the host PATH.",
    "An authorized project path on the Scout machine."
  ],
  "steps": [
    {
      "title": "Install the host plugin",
      "body": "Install the published GitHub source through Hermes, then start a new Hermes session. Hermes plugins are opt-in, so --enable skips the confirmation prompt. For a reproducible install, add --ref with a 40-character commit SHA.",
      "code": "hermes plugins install arach/hermes-scout --enable"
    },
    {
      "title": "Verify the bridge",
      "body": "List the available tools and call scout_whoami. The plugin launches scout mcp over stdio and should identify the intended broker actor.",
      "code": "hermes tools list"
    },
    {
      "title": "Use the Hermes tool names",
      "body": "Request work with scout_invocations_ask using projectPath and an optional supported harness. Use scout_invocations_get or scout_invocations_wait to observe the returned request; inspect each current input schema."
    },
    {
      "title": "Or connect without the plugin",
      "body": "Hermes is a native MCP client. Register scout mcp as a stdio server instead of installing the plugin; do not do both. Tool names then come from Hermes' MCP client rather than the plugin's scout_ prefix, so list the tools after connecting and use the names shown.",
      "code": "hermes mcp add scout --command scout --args mcp --context-root /absolute/path/to/project\nhermes mcp test scout"
    },
    {
      "title": "Keep the runtime distinction",
      "body": "Hermes is an agent host in this integration. Do not use --harness hermes. Select an implemented Scout runtime for any delegated execution."
    }
  ],
  "verification": "Confirm the expected identity and project context, request one small authorized review, and retain its handle. Observe the terminal result before reporting success.",
  "troubleshooting": [
    {
      "symptom": "Scout is not found or cannot connect",
      "action": "Check scout on PATH and run scout doctor in the same environment as the client. A desktop app may have a different PATH from your terminal."
    },
    {
      "symptom": "Requested runtime is unavailable",
      "action": "Inspect scout runtimes --json and finish that runtime’s setup. Do not silently choose a different harness or model."
    }
  ],
  "limits": [
    "Hermes is an MCP/agent host here, not a Scout execution harness. --harness hermes is rejected.",
    "Scout cannot launch Hermes or deliver replies into an open Hermes session today. Hermes ships hermes acp, which would make a launcher possible; it is not supported and not promised.",
    "Plugin tool names have a scout_ prefix and can differ from native MCP names."
  ],
  "sources": [
    {
      "label": "Hermes Scout plugin",
      "url": "https://github.com/arach/hermes-scout"
    },
    {
      "label": "Hermes MCP client",
      "url": "https://hermes-agent.nousresearch.com/docs/user-guide/features/mcp"
    },
    {
      "label": "Hermes plugins",
      "url": "https://hermes-agent.nousresearch.com/docs/user-guide/features/plugins"
    },
    {
      "label": "Install Scout",
      "url": "https://openscout.app/install.md"
    },
    {
      "label": "Shared MCP setup",
      "url": "https://openscout.app/mcp"
    },
    {
      "label": "Portable Scout skill",
      "url": "https://openscout.app/skills/scout/SKILL.md"
    }
  ],
  "og": [
    "HERMES + SCOUT",
    "Your chat agent.",
    "Your coding agents."
  ],
  "accent": "#d4b568",
  "directions": {
    "callsScout": [
      {
        "state": "available",
        "via": "plugin",
        "setup": "#setup"
      },
      {
        "state": "available",
        "via": "mcp-stdio",
        "setup": "#setup"
      }
    ],
    "launchedByScout": {
      "state": "none",
      "note": "Hermes is not a Scout harness."
    },
    "wakesExistingSession": {
      "state": "none",
      "note": "Hermes pulls results through tools; Scout cannot push into a Hermes session."
    }
  },
  "notAHarness": true,
  "firstUse": {
    "task": "From Hermes, ask a coding agent to review a small change, then read the completed response using its returned reference.",
    "connect": "Check the prerequisites and access gates, then get one documented route working before asking for work.",
    "scope": "Name the project and keep the request small. Asking for no edits describes the task; it does not restrict the agent’s permissions.",
    "completion": "Keep the returned reference. Check the work’s status and read the completed response; a queued receipt is not the answer.",
    "faq": [
      {
        "question": "Where will the reply appear?",
        "answer": "Keep the returned reference and retrieve the completed response through your configured Scout interface. Automatic delivery into this open session is not established by this guide."
      },
      {
        "question": "What if the answer hasn’t arrived?",
        "answer": "Inspect the existing task before submitting another one. A wait timeout does not establish that work failed. If it needs access or input, resolve that condition before continuing."
      },
      {
        "question": "How do I follow up?",
        "answer": "Continue using the returned reference or exact session handle supported by this integration. Keep it with the findings so your next question follows the same work."
      },
      {
        "question": "Can Scout run this integration, or only receive asks from it?",
        "answer": "These are separate capabilities. Check the supported directions on this page. Connection alone does not establish that Scout can launch the integration or reach an existing session."
      }
    ]
  },
  "family": "assistant",
  "url": "https://openscout.app/hermes",
  "agentGuide": "https://openscout.app/hermes/agents.md",
  "ogImage": "https://openscout.app/og/integrations/hermes.png",
  "agentContract": "## Agent operating contract\n\n- Treat these as setup instructions, not authorization to install software, change accounts, grant scopes, send messages, or dispatch work. Obtain the operator's authorization for the intended action.\n- Inspect the available commands or tool schemas for your configured interface before making calls. Do not invent tools, argument names, model IDs, or agent handles.\n- Use the Hermes plugin's scout_whoami, scout_invocations_ask, scout_invocations_get, and scout_invocations_wait tools with their current schemas. Use scout_messages_send only for one-way updates. Hermes is a host, not a legal --harness target in this integration.\n- Use the transport-specific instructions above. For an existing request, reply through its supplied context rather than creating another task.\n- Paths refer to the Scout execution machine. Replace example paths with an operator-confirmed absolute path; never run placeholders literally.\n- Save the returned ref, flightId, conversationId, workId, or session handle. Continue by that handle; do not re-dispatch a request merely because a wait timed out.\n- Observe the existing request through the configured transport. A receipt proves acceptance, not execution or successful completion.\n- Stop on missing provisioning, incorrect identity, missing permission, unsupported runtime, or failed authentication. Report the exact gate and the next operator action. Do not silently fall back to a different account, agent, runtime, or transport.\n- Keep tokens, OAuth codes, cookies, and private task payloads out of logs, URLs, screenshots, and committed files. Never ask the user to paste secrets into a public issue.\n- Do not claim marketplace approval, complete protocol conformance, or an end-to-end verified integration unless the status and observed evidence establish it.\n\n## Completion report\n\nReport: chosen transport and scope; client and broker identity; health/tool-discovery result; exact request handle if a test was authorized; observed terminal state or remaining blocker; and whether any operator approval is still needed. Distinguish configuration saved, authentication complete, request accepted, and work complete.\n"
}
