A DAG is a leoflow.yaml plus a dag.py (the real Airflow SDK) that compile to
one immutable artifact — a dag.json and a container image. Parsed once, at
compile time. No shared /dags filesystem, no dependency hell, no re-parsing on
every tick.
Author
Write a dag.py on the Airflow Task SDK, declare packaging in leoflow.yaml, and
compile it to an immutable image. Native map-reduce for ML/AI as a Python list
comprehension.
Run dbt as DAGs
Render a dbt project into native model-level tasks — pod-per-task against your
warehouse, no Airflow and no Cosmos at runtime. One granularity knob trades pods
for speed.
Connect
54 documented connectors — Postgres, Snowflake, AWS, GCP, Kafka, Slack and more. Declare a provider, wire a Connection, and the control plane delivers it to your task pod.
Automate with MCP
Point an AI agent at Leoflow over the Model Context Protocol: “diagnose the
latest failed run of sales.” Read-only, scoped to the caller’s token — its blast
radius is your own API rights.
Operate
Go from leoflow lite on one host to a Kubernetes control plane. CI/CD deploy,
Helm, upgrades, backup/restore, scheduler resilience, and warm worker pools.
Contribute
GitOps-first and TDD-strict. A real from-source dev loop with leoflow lite —
isolated cluster, hot reload — plus the make lite-redeploy inner loop for Go
changes.
Start where you are
New here? Quickstart gets Leoflow Lite running in
two commands. Evaluating? Why Leoflow and
Editions & modes lay out the model and the Lite/Pro split.
Building? The Reference has the HTTP API, CLI, Go packages, and
every LEOFLOW_* config key.