II.
Presentation JSON
Structured · livepresentation:hermes.acp
Hermes ACP Adapter json
Inspect the normalized record payload exactly as the atlas UI reads it.
{
"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": []
}