Hermes Workflows
Code-first durable workflows for agent work that should not disappear into chat history. Hermes Workflows gives Python projects persistent workflow state, typed agent work, typed human review, a resident Workflow Worker, and inspectable receipts for restarts, approvals, retries, and handoffs.
Affiliation disclaimer: Hermes Workflows is an independent project by Skylar Payne. It is not affiliated with, endorsed by, sponsored by, or officially connected to Nous Research or the Nous Research Hermes Agent project.
The launch-facing SDK is intentionally small:
from hermes_workflows import agent, ask, bash, goal, parallel, pipeline, workflow
Use agent(...) for typed AI/worker work, ask(...) for typed human or external review, bash(...) for deterministic durable shell commands, parallel(...) / pipeline(...) for fan-out and staged item work, and goal(...) for bounded improve-until-accepted loops.
Start here
-
Author workflows Learn the public SDK:
workflow,agent,ask,bash,parallel,pipeline, andgoal. -
Setup guide Install from source, create a registry, run a workflow, start the Workflow Worker, and reach the Review Queue.
-
Hermes dashboard plugin Configure the Review Queue dashboard, DB aliases, workflow catalog entries, and trusted approval actions.
-
Architecture Domain model, runtime loop, extension seams, execution environments, and failure modes.
-
Inspectability cookbook Commands for status, event history, outbox, approvals, failed commands, and recovery.
-
Runtime boundary What belongs in durable workflow state versus prompts, skills, subagents, and operators.
Dashboard preview
Runtime model in one pass
operator starts/replays workflow
hermes-workflows run <alias-or-ref> --config .hermes/workflows.registry.json --id <id>
-> durable workflow activation is recorded
-> missing workflow/step/agent/child work is queued
-> command exits after current durable state is stored
resident Workflow Worker
hermes-workflows worker --config .hermes/workflows.registry.json
-> leases queued commands from configured DBs
-> executes step/agent/child work through configured runners
-> replays the workflow against the same DB/run id
-> stops at Review Queue requests, approvals, or terminal state
review surface
-> dashboard/chat/CLI records typed human input or approval with provenance
-> the worker observes the durable transition and continues
The CLI, worker, and dashboard must point at the same configured workflow DB. If they do not, the dashboard may look empty while work is waiting somewhere else.
Design archive
These implementation/design records are useful for contributors, but they are not required for the launch quickstart.
- Agent / parallel / pipeline API grill
- Agent / parallel / pipeline API visual plan
- Dashboard UX research
Site build
GitHub Pages builds the repository with Jekyll from main. The committed layout adds navigation and client-side Mermaid rendering for architecture diagrams.