What it captures
Every Hermes session on the machine is captured, whichever channel it came from. Each one becomes an AgentEye session; its user and assistant messages, tool calls, and tool results become the matching events. The channel a session started from — Slack, Telegram, CLI, or a scheduled run — is recorded on the session, so you can tell them apart and filter to one at a time. Alongside it come the model the session ran on, the chat and person it was started from, and, when a session spawned another, the link back to its parent. Sessions appear as soon as Hermes starts them, whether or not anything has been said yet, and a turn’s reply and its tool calls stay in the order they actually happened. When a session ends you also get why it ended, what it cost, and how many tokens it used.Turn it on
Capture is off until you enable it. Install the collector with an API key that has theevents:add permission (see API keys), and turn on Hermes capture:
--hermes-enabled --codex-enabled.
On first run, your existing Hermes sessions are backfilled once and new activity then streams within seconds. Hermes’s own data is only ever read — never modified or deleted — and each message is shipped once, even across restarts.
health also tells you whether everything the collector captured actually reached AgentEye. If a batch could not be delivered it is kept and retried rather than discarded, and the check reports unhealthy while anything is still outstanding — so “healthy” means your data arrived, not merely that the process is alive.
Where it shows up
Captured sessions appear in Sessions, and their events in the Events stream, the same as any other agent you observe — so session replay, search, evaluations, and alerts all work on them. Filter by the Hermes agent to see them on their own.Privacy
Hermes sessions contain the full transcript — including command output, file contents, and anything the agent read or wrote — and can contain secrets. Captured sessions are shipped as-is, so enable capture only where centralizing that content in AgentEye is appropriate, and give the collector a key scoped toevents:add only. See Security for how your data is kept isolated.
