Hermes
Hermes Agent is a personal-agent harness from Nous Research. Hansard imports its local profile stores and identifies routed models by their own model company.
Source IDs
Section titled “Source IDs”| Source | Use it for |
|---|---|
hermes |
CLI, desktop, web, API, and messaging conversations saved in local Hermes profiles. |
How the import works
Section titled “How the import works”Hermes stores conversations in state.db beneath its home directory. The
default is ~/.hermes on macOS and Linux, or %LOCALAPPDATA%/hermes on Windows;
Hansard also checks the historical Windows ~/.hermes location. HERMES_HOME
selects a custom home. Named profiles live below profiles/<name> and each has
its own database. Set HANSARD_HERMES_ROOTS to a path-separated list of homes
to import several installations. Profile identities remain separate even if
they contain the same native session ID.
Hansard reads coherent SQLite snapshots, including committed WAL records. It merges an unambiguous compression continuation into its original conversation and keeps branches and delegated agents separate. Repeated compaction copies count once. A resumed conversation updates the same archive entry, and changes to another session in the database do not reimport an unchanged conversation.
Fallback sessions/<id>.jsonl files are also read. A fallback tail is joined to
its SQLite conversation when the ID matches. Native clients sharing one store
do not create duplicate surface imports. Remote deployments need their stores
made available locally; Hansard does not connect to messaging accounts.
Import and keep current
Section titled “Import and keep current”hansard import --source hermes --since allhansard config sources enable hermesThe watcher observes database and fallback-log changes. An unsupported database schema produces an import error, so a fallback tail cannot silently replace a conversation whose main store could not be read.
hansard memory backupBackups include profile memories/MEMORY.md, memories/USER.md, and SOUL.md.
For archived projects, Hansard follows the standard context-file
precedence: nearest .hermes.md or HERMES.md; the AGENTS.override.md,
AGENTS.md, or agents.md directory chain; cwd CLAUDE.md or claude.md; then
cwd .cursorrules and .cursor/rules/*.mdc. The walk stops at the git root.
Skill folders are not memories and are not backed up.
Review the import in the app
Section titled “Review the import in the app”- When the import finishes, open Conversations and selectFilter & sort.
- Set Source to Hermes and setTime to the window you imported. UseFolder to narrow the list when you use this harness in several projects.
- Select a conversation to check its messages, tool calls, files, commits, model, and token usage.
To keep archiving new sessions from a local harness, openSettings → Imports. Automaticfollows every supported harness installed on this computer.Custom lets you turn individual harnesses on or off. Cloud sources and account exports never run from here; each needs its own import command. If a conversation you expect is missing after you reset the filters, run the import command on this page again with --explain-skips where the source supports it.
Check a conversation’s tools and numbered edit diffs, then review Hermes in Stats. Main-loop usage and recorded auxiliary calls, such as title generation, vision, and compression, contribute once. Historical usage without a model ledger remains under Unknown model. Scheduled runs have no human activity; direct one-shot prompts remain human conversations.
What Hansard preserves
Section titled “What Hansard preserves”- Human prompts, assistant replies, recorded reasoning, injected context, and system prompts.
- Tool arguments, results, MCP names, errors, and recorded edit diffs.
- Input, output, cache, and reasoning tokens, with per-model and auxiliary-task attribution when recorded.
- Reported actual costs or estimates, timestamps, titles, workspace, recorded configuration, and delegate links.
- Native embedded media blocks when present, and remote attachment descriptors without downloading them.
- Coherent raw databases, fallback logs, and matching optional
moa-traces/<id>.jsonlfiles.
Known limitations
Section titled “Known limitations”The audited database generations are one through thirty. Newer schemas are rejected until audited. The last model configuration does not identify the historical reasoning effort of each request. Partial recorded costs remain in metadata; Hansard does not present them as a complete session charge. Output tokens already include reasoning, and input tokens already exclude cache reads and writes.
Current Hermes persistence often reduces media to text or [screenshot], so
original image bytes may be unavailable. Missing media is not fetched. Fallback
logs have no reliable model, usage, workspace, or surface metadata; missing
clocks are marked as estimated. The legacy gateway routing index, pending
message recovery spool, batch/RL trajectory exports, custom MoA directories,
and plugin memory stores are not imported separately.
Credentials, provider configuration, locks, and derived indexes are excluded
from memory backup. Unknown message roles and content blocks are counted in
metadata and preserved in raw source files.
An isolated upstream-checkout CLI trial covers reads, edits, usage, resume, and a persistent-memory write. Desktop, web, messaging, live compression, and live delegated execution remain unverified; fixtures exercise their shared storage shapes and lineage rules.
Refresh an existing archive
Section titled “Refresh an existing archive”hansard import --source hermes --since allhansard index rebuildHansard never rewrites Hermes history. The viewer’s resume command selects the
recorded HERMES_HOME and latest native segment with hermes --resume <id>.
Memories are refreshed independently by the regular backup pass.