Skip to content

v0.1.0 - Workflows on Hermes natives

Choose a tag to compare

@solaitken solaitken released this 12 Jun 10:28
· 1 commit to main since this release
f37485c

Hermes Workflows v0.1.0 - Workflows on Hermes natives

Hermes Workflows v0.1.0

The first release of Hermes Workflows - a dashboard plugin for Hermes Agent that lets you draw a multi-step automation as a graph and run it on Hermes' own primitives, with a human in the loop only where you put one. It is not a second engine: every node compiles to a native Hermes Kanban card, Cron job, or profile run, so a workflow is something you can read, schedule, deliver, and observe with the tools Hermes already gives you. Where a single scheduled prompt (an Automation Blueprint) isn't enough, a workflow is the layer above it.

What ships

  • Visual authoring lifecycle. Create a workflow from a modal, grow the graph in an @xyflow/react editor (every node field, duplicate, auto-layout), validate, preview the compiled Hermes plan, then press Play to run it in place - the canvas shows live per-node progress and hands off to the run inspector when it settles.
  • Five node types. agent_task (a prompt assigned to a profile, with a per-node model and skills picked from the host /api/skills catalog), script (a deterministic shell step, gated by an enable flag and an env allowlist), condition (branch on a node outcome or a review decision), human_review (pause for a channel-agnostic decision), and finish.
  • Triggers. manual, cron, and declarable webhook / github / api event triggers.
  • Inter-node data flow. A node consumes a prior node's output via input_mapping: { x: "{{nodes.<id>.output}}" }, substituted at schedule time and failing loud if an expected output never materialised - the workflow stays portable, no host path baked in.
  • First-class delivery. A workflow declares where its result is delivered (Hermes DeliveryTarget syntax, or origin); a result containing [SILENT] suppresses delivery so nothing-to-say runs stay quiet.
  • Runs, Schedules, Settings. Open / cancel / retry / export-logs; pause / resume / run-now / edit cron schedules (tagged Workflow, distinct from blueprint jobs); a settings view backed by the Hermes config. Runs are single-flight.
  • Observability. Per-node telemetry (duration, tokens, tool calls, errors), pending dangerous-command approvals, and an opt-in per-run JSONL trace.

Built on Hermes natives

flowchart LR
    WF["Workflow graph"] -->|compiles to, no second engine| N["Kanban · Cron · Profiles · delivery router · /api/skills"]
    N --> Run["Autonomous run<br/>branching · data flow · review gates"]
    Run -->|"result (or [SILENT])"| Ch["your channel"]
    style WF fill:#5d3a9b,stroke:#ce93d8,color:#fff
    style N fill:#1e3a5f,stroke:#90caf9,color:#fff

The TypeScript engine is the single interpreter of the spec; the Python orchestrator only executes its decisions. Cron runs through cron.jobs, delivery through the gateway's own router, skills from the host catalog - there is no parallel runtime to learn or trust.

Notes

  • Native alignment with Automation Blueprints. Workflows reuse the same primitives and conventions as Hermes blueprints (delivery + [SILENT], the /api/skills catalog, typed template parameters that render across surfaces, and the Schedules surface).
  • Host-gated, deferred upstream (no stubs): firing an event trigger and the live /workflow slash command + hermes:// deep-link need host handlers the plugin cannot add - the host webhook system dispatches events only to agent prompts / direct delivery, and cron.jobs.create_job is time-only. v0.1.0 ships the real, tested schema and pure emitters those surfaces will consume.

Install

hermes plugins install itechmeat/hermes-workflows --enable
hermes gateway restart

Open the Workflows tab and create your first graph. Full tour: the README and docs/.