Skip to content

Agent Architecture

Hermes Agent

Hermes is a CLI plus desktop host whose architecture centers on a learning loop: it creates and improves skills from experience, persists knowledge, searches past conversations, and can run away from the user's laptop through remote or messaging channels.

Source reviewed #30Checked 2026-07-06
Run type
CLI + Desktop
Adapter
json-stdio
Source
OSS · NousResearch/hermes-agent
Stars
★ 242k

Archive Context

This page is one host entry inside the full architecture archive and keeps multi-surface products visible instead of collapsing them into a single run type.

42 host archive
Host page
hermes
Run cohort
CLI: 30 + Desktop: 9
Archive route
/agents

Host Surface Perspectives

The host is the primary architecture boundary. Each runnable surface below separates what the host owns from what agent-connector can safely install for Hermes Agent.

2 surface entries

CLI

cli
Host entry
A terminal command owns the process, current working directory, stdin/stdout, shell environment, and project file discovery.
Host owns
The CLI host owns agent loop timing, approval prompts, tool execution, session files, and how hook or MCP subprocesses are launched.
Connector role
agent-connector can only write the host's documented CLI config, prompt, memory, hook, MCP, or package files and point them at the home binary. Current wired connector surfaces: MCP server, Hooks, Skills, Memory, Action affordances.
Implementation consequence
A CLI surface is byte-addressable and smoke-testable from a temporary HOME, but terminal UI behavior still belongs to the host process. No visible host-native gap is currently tracked for this surface.

Desktop

desktop
Host entry
A desktop app or standalone editor owns window state, sign-in, project indexing, embedded terminal behavior, and local product storage.
Host owns
The desktop host owns orchestration UI, model routing, approval UX, background jobs, and any cloud or app-store managed extension points.
Connector role
agent-connector can write documented workspace/global config and content files, but it does not replace the desktop runtime or UI shell. Current wired connector surfaces: MCP server, Hooks, Skills, Memory, Action affordances.
Implementation consequence
Desktop surfaces need source-review separation because product pages often document capabilities while runtime state lives in app-managed storage. No visible host-native gap is currently tracked for this surface.

Verified Architecture

Source-checked on 2026-07-06. These notes are intentionally separate from the generated surface matrix below.

Sequence #30

Source pass

Current source review findings are kept as the first architecture section so readers can separate external evidence from the generated local coverage model.

  • Hermes is open source and product-described as an agent that grows with the user, so the page keeps its learning-loop identity visible rather than flattening it into a generic CLI.
  • The same adapter id spans CLI and desktop entry points; the diagram therefore renders CLI + Desktop together.
  • Gateway channels, user-scope skills, memory, and actions are the important host-only affordance cluster for this row.

Runtime boundary

Hermes is intentionally multi-surface in the archive. The same adapter id spans CLI and desktop because the public repository presents both Hermes Agent and Hermes Desktop, while also emphasizing cloud and messaging deployment.

  • The README describes a self-improving agent with a built-in learning loop.
  • Hermes can run on a VPS, GPU cluster, serverless infrastructure, or cloud VM rather than being tied to a local laptop.
  • The page should keep CLI and desktop badges together instead of forcing Hermes into one form factor.

MCP registration

Hermes belongs in the MCP-capable host set, but its public identity is broader than tools alone. MCP should be documented beside channels, memory, and learning loops rather than treated as the entire architecture.

  • The repository links a Linux desktop-control MCP server for Hermes and other MCP hosts.
  • That community server evidence supports desktop-control integration, not a generic claim that every Hermes affordance is MCP.

Hook bridge

agent-connector wires Hermes as a json-stdio hook host, but the host-specific story is the feedback loop around skills and memory. Hook documentation should therefore explain how callbacks fit into learning and channel orchestration.

  • Hooks can be used to observe or shape the runtime boundary, while Hermes-owned learning remains a host behavior.
  • The adapter should avoid flattening Hermes into a generic CLI event bridge.

Content surfaces

Skills and memory are first-class Hermes concepts. The README says Hermes creates skills from experience, improves them during use, nudges itself to persist knowledge, searches past conversations, and builds a model of the user across sessions.

  • User-scope skills and memory are therefore not decorative content; they are central to the host identity.
  • Past-conversation search and user modeling should be called out as host-owned memory behavior.

Marketplace and host-only affordances

Hermes has a Skills Hub, desktop application, model switching, messaging channels, and community bridges. These are host-only affordances that should remain visible next to standard connector surfaces.

  • Model switching through `hermes model` is a host control surface, not an agent-connector setting.
  • Telegram, WeChat bridge, desktop-control MCP, and Skills Hub links show a gateway/channel architecture beyond a terminal process.

Host-specific shape

Hermes spans CLI and desktop under one adapter id: the architecture emphasizes learning loops, gateway channels, user-scope skills, memory, and actions.

  • Form factor: CLI + Desktop.
  • Native surfaces: MCP server, Hooks, Skills, Memory, Action affordances.
  • Wired surfaces: MCP server, Hooks, Skills, Memory, Action affordances.
  • Visible gaps: none.

Hooks

Hooks enter through a host-launched command that exchanges event JSON over stdio.

MCP

The adapter writes this host's native MCP registration dialect, including its root key, scope, transport fields, and environment syntax.

Memory

Managed memory text is written into the rules or memory file this host actually reads, with ownership markers for reversible uninstall.

Marketplace and affordances

Current install is a direct native-file write path; any package artifact is manual unless a driver is added.

  • Runtime handlers: Action affordances.
  • User-visible affordances: Users see managed skills + actions + memory surfaces after install; runtime-only surfaces stay behind the host boundary..

Known Limits

  • Hermes claims should keep CLI, desktop, cloud, and messaging surfaces distinct even under one adapter id.
  • Learning-loop behavior is host-owned and should not be represented as generic agent-connector memory semantics.
  • Community bridge links need separate verification before being promoted as core adapter install targets.

Architecture Diagram

Host-specific flow for the CLI + Desktop surface.

json-stdio
Host-owned architecture flowHost surfaceCLI + DesktopRuntimejson-stdioNative artifactsMCP + hooks + content + memory + handlersConnector boundarystdio eventsUser surfaceskills + memory + actionsagent-connector writes only documented host artifacts; the host owns the agent loop.
  1. 1
    Entry point: CLI + Desktop

    Terminal agent process reads user/project config and invokes the connector home binary for runtime callbacks. Desktop or standalone editor app reads global/product storage plus workspace files before handing control to its embedded agent runtime.

  2. 2
    Connector package

    defineConnector package declares server, hooks, content, memory, and actions.

  3. 3
    Adapter module: hermes

    json-stdio renderer at src/adapters/hermes/index.ts.

  4. 4
    Native host artifacts

    Adapter writes MCP config + hook config + content files + memory/rules + actions through this host's native file, package, or marketplace surface.

  5. 5
    Runtime boundary

    host launches JSON-stdio hook command

  6. 6
    User-visible surface

    Users see managed skills + actions + memory surfaces after install; runtime-only surfaces stay behind the host boundary.

  7. 7
    Coverage ceiling

    5/5 native surfaces wired. No visible host-native gap in the current coverage matrix.

Component Diagram

Static parts of the Hermes Agent integration and which side owns each one.

Components and ownershipHermes Agent hosthostagent-connector packageconnectorhermes adapterjson-stdioNative artifactsartifactsRuntime bridgeruntimeUser-visible surfaceuser
  • Hermes Agent host

    CLI + Desktop surface owns the model loop, UI shell, config discovery, and native lifecycle for this integration.

  • agent-connector package

    Normalizes connector declarations into MCP, hook, memory, content, and action payloads before delegating to a host adapter.

  • hermes adapter

    Implements the json-stdio translation layer in src/adapters/hermes/index.ts.

  • Native artifacts

    Adapter writes MCP config + hook config + content files + memory/rules + actions through this host's native file, package, or marketplace surface.

  • Runtime bridge

    host launches JSON-stdio hook command

  • User-visible surface

    Users see managed skills + actions + memory surfaces after install; runtime-only surfaces stay behind the host boundary.

Runtime Sequence Flow

Message order from install to runtime for the CLI + Desktop surface.

User / projectagent-connectorhermes adapterHermes AgentAgent runtimeCoverage matrix1. Choose host adapter2. Resolve connector declaration3. Render host-native shape4. Host loads artifacts5. Run through host boundary6. Expose remaining ceiling
  1. 1 · User / project
    Choose host adapter

    Install or update starts against Hermes Agent; the selected surface is CLI + Desktop.

  2. 2 · agent-connector
    Resolve connector declaration

    The package reads connector metadata and routes it to the hermes adapter instead of exposing a generic host contract.

  3. 3 · hermes adapter
    Render host-native shape

    Adapter writes MCP config + hook config + content files + memory/rules + actions through this host's native file, package, or marketplace surface.

  4. 4 · Hermes Agent
    Host loads artifacts

    host launches JSON-stdio hook command

  5. 5 · Agent runtime
    Run through host boundary

    Users see managed skills + actions + memory surfaces after install; runtime-only surfaces stay behind the host boundary.

  6. 6 · Coverage matrix
    Expose remaining ceiling

    5/5 native surfaces wired. No visible host-native gap in the current coverage matrix.

Architecture Archive

The same five study axes are rendered for every host: runtime shape, hooks, MCP, memory, and host-only affordances.

Host-specific shape

Hermes spans CLI and desktop under one adapter id: the architecture emphasizes learning loops, gateway channels, user-scope skills, memory, and actions.

  • Form factor: CLI + Desktop.
  • Native surfaces: MCP server, Hooks, Skills, Memory, Action affordances.
  • Wired surfaces: MCP server, Hooks, Skills, Memory, Action affordances.
  • Visible gaps: none.

Hooks

Hooks enter through a host-launched command that exchanges event JSON over stdio.

MCP

The adapter writes this host's native MCP registration dialect, including its root key, scope, transport fields, and environment syntax.

Memory

Managed memory text is written into the rules or memory file this host actually reads, with ownership markers for reversible uninstall.

Marketplace and affordances

Current install is a direct native-file write path; any package artifact is manual unless a driver is added.

  • Runtime handlers: Action affordances.
  • User-visible affordances: Users see managed skills + actions + memory surfaces after install; runtime-only surfaces stay behind the host boundary..

Special Feature Inventory

Host-specific capabilities separated from the generic surface matrix: lifecycle hooks, MCP registration, memory/rules, marketplace delivery, and UI or content affordances owned by the host.

Lifecycle hooks

Wired

Hooks enter through a host-launched command that exchanges event JSON over stdio.

MCP registration

Wired

The adapter writes this host's native MCP registration dialect, including its root key, scope, transport fields, and environment syntax.

Memory and rules

Wired

Managed memory text is written into the rules or memory file this host actually reads, with ownership markers for reversible uninstall.

Marketplace delivery

Direct files

Current install is a direct native-file write path; any package artifact is manual unless a driver is added.

Host-only affordances

2/2 wired

Wired host affordances: Skills, Action affordances. Host-native gaps: none. Not confirmed: Commands, Subagents, Statusline handler.

Source Review Notes

Latest source pass for host-specific architecture details. This is separate from generated adapter coverage and local drift guards.

Checked 2026-07-06Open review source
NousResearch/hermes-agent repository
  • Hermes is open source and product-described as an agent that grows with the user, so the page keeps its learning-loop identity visible rather than flattening it into a generic CLI.
  • The same adapter id spans CLI and desktop entry points; the diagram therefore renders CLI + Desktop together.
  • Gateway channels, user-scope skills, memory, and actions are the important host-only affordance cluster for this row.

Evidence Map

Each host page ties public source evidence to the local adapter and drift guards that keep the rendered archive aligned with code.

Public source: NousResearch/hermes-agent

Primary public repository or product source used for current host status and source links.

external
Open source

Local adapter implementation

Defines the install/uninstall behavior, native config rendering, capability flags, and any runtime parse/format bridge for this host.

local
src/adapters/hermes/index.ts

Platform metadata and host-native matrix

Records the form factor, public source target, ranking source, native host surfaces, and current agent-connector coverage cells.

local
site/src/platform-data.ts

Architecture drift guard

Asserts that every registered host has a page, diagram, host-specific brief, source link, form-factor band, and adapter-aligned surface data.

local
tests/docs/platform-drift.test.ts

Runtime Shape

Hooks are dispatched through a host-launched command. The adapter parses host JSON, calls the connector handler, and formats the reply back to the host contract.

MCP registration
Wired through this adapter
Hook bridge
Wired

Connector Surfaces

Static content

MCP server, Hooks, Skills, Memory

Runtime handlers

Action affordances

Surface Matrix

Wired means agent-connector installs it now. Host native marks support we know about but have not wired yet.

SurfaceStatus
MCP server
Static content
agent-connector installs this surface today.
Wired
Hooks
Static content
agent-connector installs this surface today.
Wired
Commands
Static content
No confirmed host-native surface.
N/A
Skills
Static content
agent-connector installs this surface today.
Wired
Subagents
Static content
No confirmed host-native surface.
N/A
Memory
Static content
agent-connector installs this surface today.
Wired
Statusline handler
Runtime handler
No confirmed host-native surface.
N/A
Action affordances
Runtime handler
agent-connector installs this surface today.
Wired