Declarative-first
Workflows are YAML manifests, not code. Versionable, diffable, GitOps-ready.
Zynax is the engine-portability layer for agentic automation: a declarative, cloud-native control plane that compiles one YAML manifest into a canonical IR and submits it to whichever workflow engine your organisation already operates.
Local development runs on kind, the same Kubernetes runtime used in CI and production. The first successful run needs no API key, no model and no secrets.
# boot a local kind cluster: production Helm charts, no secrets$ zynax up $ zynax apply hello-world.yamlrun_id: wf-236c478f00eb68ce $ zynax status workflow wf-236c478f00eb68ceWORKFLOW_STATUS_COMPLETED # same manifest, other engine, zero edits$ zynax up --engine argo$ zynax apply hello-world.yamlWORKFLOW_STATUS_COMPLETEDThe problem
Most agent frameworks bind the workflow to the runtime that ships with them. The orchestration semantics, the retry model and the addressing scheme all leak into your workflow definition — so the day your organisation standardises on a different engine, the workflows do not move with you.
How it works
Like Kubernetes for containers, Zynax is a control plane that abstracts the execution layer behind a declarative, versionable API. The manifest never names an engine, so the engine is free to change.
The fork at the end is the whole product. Everything to its left is engine-neutral.
One YAML manifest describes an event-driven state machine: states, the capabilities each state invokes, and the events that move it forward. No engine SDK appears anywhere in it.
zynax apply posts the manifest to the api-gateway. workflow-compiler validates it and lowers it to a canonical WorkflowIR — a protobuf representation that no longer mentions YAML or any engine.
engine-adapter submits that same IR to Temporal or to Argo, and task-broker dispatches each capability to a registered adapter over gRPC. Changing the engine is a flag, not a rewrite.
The full service topology — gateway, compiler, engine adapter, task broker, agent registry, event bus and memory service — is documented in ARCHITECTURE.md.
kind: WorkflowapiVersion: zynax.io/v1 metadata: name: code-review namespace: engineering spec: initial_state: review states: review: actions: - capability: request_review on: - event: review.approved goto: merge - event: review.needswork goto: fix fix: on: - event: push goto: review merge: actions: - capability: merge_pr on: - event: merge.success goto: done done: type: terminalAn event-driven state machine, not a DAG — which is what makes loops, human-in-the-loop steps and long-running waits expressible.
Principles
Workflows are YAML manifests, not code. Versionable, diffable, GitOps-ready.
Temporal, Argo and LangGraph are plugins. Swap the engine without changing the workflow.
Workflows route to capabilities — summarize, run_tests, open_mr — not to named agents. Swap the executor without changing the workflow.
Any system becomes a capability by implementing the AgentService gRPC contract: HTTP APIs, LLMs, Git providers, CI systems.
Not DAGs. Loops, human-in-the-loop, long-running workflows and async events are native.
Go services on Kubernetes, gRPC between them, NATS JetStream for events. Built on CNCF-graduated technologies.
Quickstart
zynax up creates a kind cluster, loads the images, installs the production Helm charts and waits for every deployment to roll out. No Ollama, no model and no API key are needed for the first successful run.
# 1 - bring the platform up on a local kind cluster$ zynax up # 2 - apply a workflow manifest$ zynax apply spec/workflows/examples/hello-world.yamlrun_id: wf-236c478f00eb68ce # 3 - inspect the run$ zynax status workflow wf-236c478f00eb68ceWORKFLOW_STATUS_COMPLETED $ zynax logs wf-236c478f00eb68cestate.entered reviewstate.exited review -> merge # 4 - the wedge: same workflow, Argo instead of Temporal$ zynax up --engine argo # 5 - tear it all back down$ zynax downPrebuilt zynax binaries for macOS and Linux, on both amd64 and arm64, ship with every GitHub release.
Everything past the golden path — the model-backed code-review demo, scaling onto managed Kubernetes, and observability — lives in the documentation.
Open the documentation