About DagSmith
DagSmith is an Airflow plugin (Airflow ≥ 3.1) that adds a full DAG editor to the Airflow web UI: a visual, block-based canvas alongside a direct code editor — both talking to the same underlying .py file.
It's built for data engineering teams who want the speed of visual pipeline design without giving up the full expressiveness of hand-written Python DAGs. Unlike third-party layout tools that live outside Airflow, DagSmith is a native plugin: no separate service, no sync server, no sidecar files. It reads and writes the same .py files your scheduler already runs.
Code is the source of truth
DagSmith never invents a parallel representation of your DAG. The Python file is always authoritative. When you edit on the canvas, DagSmith parses your file with libcst, applies your change as a minimal, surgical edit, and regenerates the file — comments and formatting you didn't touch stay byte-for-byte identical. Edit the code directly instead, and the canvas re-parses and updates to match.
Three tiers of support for existing code
- DAGs created in DagSmith — full visual editing, with the canvas layout remembered between sessions.
- Typical hand-written DAGs —
with DAG(...),@dag,@task,>>/<<,chain(), nestedTaskGroups, edgeLabels — get full visual editing without touching your formatting. - Dynamic constructs — task-generating loops,
.partial().expand()— show up on the canvas as read-only "opaque" blocks instead of breaking the parser, and stay fully editable in the code view.
How it works
Airflow UI ─▶ react_app "DagSmith" (React Flow canvas + CodeMirror)
│ REST /dagsmith/api/v1 (Airflow JWT)
▼
FastAPI app inside the api-server
│ parse (libcst) / codegen / validation (subprocess)
┌────────────┴────────────┐
Save / autosave Deploy (validated)
▼ ▼
Airflow metadata DB .py files in the DAG bundle
(draft versions, (atomic write, backup,
canvas layout) conflict detection, git)Work is saved as a versioned draft in Airflow's own metadata database — the scheduler never sees half-finished work. The live .pyfile only changes when you hit Deploy, after validation, with an automatic backup and conflict detection if someone else changed the file first.
Ready to try it? Head to Installation & Setup.
Dag