Skip to content
How a wfnexus run flows: an agent or a person uses wfx; wfx-server runs steps on providers and asks a classifier; a human gate approves; the change lands in git.

wfnexus

A workflow platform for coding agents, built for developers. Each step is an agent with its own skills and a typed output contract. Steps form a graph, state persists between runs, a person approves where the workflow says so, and every change is a git branch.

wfnexus is to coding agents what n8n is to SaaS APIs, but it is aimed at developers. Its three building blocks are agent skills, graph steps and state and memory.

A workflow is one YAML file. Each step is one of two things:

  • a prompt with a scoped set of skills and tools and a JSON-schema output contract, or
  • a deterministic run: shell node.

The engine runs each step as a toolnexus agent. It does not move on until the step’s output validates against its schema. It saves every step’s state, and it stops for a human wherever the workflow says to.

It is not a bug-fix product. The repository started as a bug-fixer, and templates/bug-fixer.yaml is still one template among eleven. ADR 0010 in the roadmap records the decision: a workflow platform, not a bug fixer.

Terminal window
wfx templates # starting points: dead-code removal, spec drift, prod watch…
wfx new test-gap-finder --as my-tests # copy one into a workflow of your own
wfx dryrun my-tests # would it run here? no model, no repo, no writes
wfx run my-tests -i repo_path=. -f # run it and follow the log
wfx approve <run-id> # the human gate

Steps are agents with contracts

A step is a prompt, a scoped set of skills and tools, and an output_schema. Validation runs inside the agent loop: submit_output is a tool, so a validation failure goes back to the model as a tool result and the model fixes it in the same turn.

Any backend

The same workflow can run on an HTTP model (OpenRouter, ollama and others), a CLI agent (claude, codex, opencode) or an ACP agent (devin, opencode, codex). The shipped registry has 30 providers.

Calibrated classifiers

decide: asks typed questions of a small calibrated classifier (TypeSafe jev) before an agent runs. Its verdicts come in three bands: no, uncertain and yes. An uncertain verdict goes to a person.

Git is the record

When a project lives in git, every save or delete of a workflow becomes a branch and a pull request. A classifier reviews it, and a person approves or rejects it.

A real Claude Code session, unedited except for speed. Claude builds a five-step workflow, runs it on a free model, stops at a human approval gate, and publishes it. See the demo page for chapters and for what went wrong along the way.

wfnexus · one real Claude Code session · no voice, subtitles on