iiRecord
Agentic AI Atlas · Hermes ACP Adapter
presentation:hermes.acpa5c.ai
II.
Presentation JSON

presentation:hermes.acp

Structured · live

Hermes ACP Adapter json

Inspect the normalized record payload exactly as the atlas UI reads it.

File · agent-stack/hermes/hermes-acp.yamlCluster · agent-stack
Record JSON
{
  "id": "presentation:hermes.acp",
  "_kind": "Presentation",
  "_file": "agent-stack/hermes/hermes-acp.yaml",
  "_cluster": "agent-stack",
  "attributes": {
    "displayName": "Hermes ACP Adapter",
    "agentVersionId": "agentVersion:hermes:ge-0-0-0",
    "presentationKind": "ide-integration",
    "description": "JSON-RPC stdio server wrapping the synchronous AIAgent into an async\nprotocol for IDE integration (VS Code, Zed, JetBrains). Stdout reserved\nfor ACP JSON-RPC transport, stderr for human-readable diagnostics. Bridges\nsynchronous AI callbacks to asynchronous ACP notifications via\nasyncio.run_coroutine_threadsafe(). One of three programmatic integration\nprotocols (alongside TUI Gateway JSON-RPC and OpenAI-compatible API Server).\n",
    "keyFiles": [
      "acp_adapter/entry.py",
      "acp_adapter/server.py",
      "acp_adapter/session.py",
      "acp_adapter/events.py",
      "acp_adapter/permissions.py",
      "acp_adapter/tools.py",
      "acp_adapter/auth.py"
    ],
    "bootSequence": [
      "Entry point invocation (acp_adapter.entry.main())",
      "Version/configuration parsing",
      "Environment loading from ~/.hermes/.env",
      "HermesACPAgent construction",
      "Server initialization with acp.run_agent()"
    ],
    "coreComponents": {
      "HermesACPAgent": "Protocol implementation -- session creation, prompt execution, model switching",
      "SessionManager": "Thread-safe session state -- identifiers, agent instances, history, cancellation",
      "EventBridge": "Translates callbacks (tool progress, step, reasoning) into ACP notifications",
      "PermissionSystem": "Maps approval prompts to ACP permission requests (allow_once, allow_always)"
    },
    "sessionPersistence": "~/.hermes/state.db -- survives process restarts, supports fork by deep-copying history",
    "protocols": {
      "ACP": "JSON-RPC over stdio for IDE clients",
      "TUI_Gateway": "JSON-RPC over stdio/WebSocket for custom hosts",
      "API_Server": "HTTP + SSE for OpenAI-compatible frontends"
    },
    "ourEquivalent": "Our adapter-hermes (packages/adapters/hooks/adapter-hermes/) provides\nhook normalization for Hermes events. Our transport layer\n(packages/adapters/transport/) bridges stdio/JSON-RPC for different\nharnesses. ACP represents Hermes' IDE integration surface; we achieve\nsimilar through Claude Code's native IDE integration and our\nhooks-adapter architecture that normalizes across all harnesses.\n"
  },
  "outgoingEdges": [
    {
      "from": "presentation:hermes.acp",
      "to": "layer:11-presentation",
      "kind": "realizes",
      "attributes": {}
    },
    {
      "from": "presentation:hermes.acp",
      "to": "agent:hermes",
      "kind": "part_of",
      "attributes": {}
    }
  ],
  "incomingEdges": []
}