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.
Each run tells you what it found: steps write a summary and an outcome, and the run page leads
with the verdict. Workflows can hold one active run per group (concurrency:), and a workflow that
fails to load is skipped by name instead of taking the server down.
It runs anywhere one binary runs. wfx-server boots on SQLite with no config, listens on loopback,
and you reach it from your laptop through an SSH tunnel (wfx context add … --via ssh://…). Model
keys live in its encrypted env store, and a provider that is down falls back to the next one. See
Self-host on one Linux box.
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.
wfxnewtest-gap-finder--asmy-tests# copy one into a workflow of your own
wfxdryrunmy-tests# would it run here? no model, no repo, no writes
wfxrunmy-tests-irepo_path=.-f# run it and follow the log
wfxapprove<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, claude, codex). The shipped registry has 32 providers,
and a step whose provider cannot be reached falls back to the next one in its chain.
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