stainlu/hermes-labyrinth
stainlu/hermes-labyrinthRead-only observability plugin for Hermes Agent: journeys, crossings, guideposts, and reports.
From the README
Hermes Labyrinth
Read-only observability for Hermes Agent.
Hermes Labyrinth turns autonomous work into a map of crossings: prompts, tool calls, tool results, failures, model switches, subagents, approvals, memory hits, redactions, context compression, cron runs, and exportable evidence.
It is not a chat UI. It is a black-box recorder for agents moving through unknown work.
Demo
- Live demo:
- Current release:
v0.1.0 - Hermes Agent:
The public demo is static and uses mocked Hermes state so it can run on GitHub Pages. The installable dashboard plugin reads local Hermes state through Hermes dashboard plugin routes.
Highlights
- Journey index: recent CLI, dashboard, gateway, cron, and delegated work.
- Labyrinth map: ordered crossings through a selected agent journey.
- Inspector: input, output, duration, status, evidence, and guideposts for a selected crossing.
- Guideposts: generated observations backed by local evidence.
- Skill atlas: bundled, optional, external, and user skill inventory.
- Cron gate: scheduled autonomy, next runs, last failures, and workdirs.
- Model ferry: model/provider transitions across sessions.
- Reports: redacted Markdown and JSON exports for one journey.
Install
Install into the Hermes user plugin directory:
mkdir -p ~/.hermes/plugins
git clone ~/.hermes/plugins/hermes-labyrinth
Start or restart the dashboard:
hermes dashboard
If the dashboard is already running, rescan plugins:
curl
Open the dashboard and select the Labyrinth tab.
Optional theme scaffold:
mkdir -p ~/.hermes/dashboard-themes
cp ~/.hermes/plugins/hermes-labyrinth/theme/hermes-labyrinth.yaml ~/.hermes/dashboard-themes/
Data Policy
Hermes Labyrinth is read-only by design.
- It does not start, stop, resume, mutate, or create Hermes sessions.
- Secret redaction is applied to previews and reports.
- Unknown fields stay unknown.
- Reports are generated from local Hermes state.
- The public demo uses sample data and should not be treated as live telemetry.
Verification
npm test
npm test runs:
- reproducible build checks for
dashboard/distandindex.html - frontend JavaScript parse checks
- backend Python parse checks
- API normalization fixture tests, including numeric Hermes timestamps
- packed-artifact and dead-control regressions
- headless Chrome smoke coverage for map modes, route changes, search, dataset switching, and the threshold filter
To smoke-test the deployed Pages build:
npm run smoke:live
Development
npm run build
npm run check
npm run smoke
dashboard/dist/ is generated from src/parts/*.js and src/labyrinth.css.
index.html is generated from src/demo/index.html with content-hash query
strings on the local JS/CSS assets. These files are checked in because Hermes
dashboard plugins and GitHub Pages are loaded directly from built static files.