
DagSmith is an Apache Airflow ≥ 3.1 plugin that adds a full visual, block-based DAG editor to the Airflow web UI — with a direct code editor alongside it. Build, edit and deploy pipelines without leaving Airflow, without giving up your hand-written Python.
pip install airflow-dagsmithDrag operators from a searchable palette onto a canvas, connect them with dependency edges — tasks and TaskGroups alike — and configure parameters in typed forms: key:value editors for dicts, a rich-text editor for HTML fields, connection pickers for conn_ids, a cron builder for schedules.
Edit the .py files directly in CodeMirror with syntax and import validation before anything is deployed.
Canvas edits are applied as minimal, surgical changes via libcst — comments and formatting you didn’t touch stay byte-for-byte identical. Dynamic constructs (loops, .expand()) show up as code-only blocks instead of breaking the parser.
Installed provider packages are introspected — operators, sensors, their __init__ signatures across the class hierarchy — so hundreds of blocks with typed parameter forms appear with zero manual definitions.
Work-in-progress is saved as versioned drafts in the Airflow metadata database, with autosave, history, diffs and restore. The live .py file changes only when you hit Deploy — validated, backed up, conflict-checked. The scheduler never sees half-finished work.
Give each team a directory in a DAG bundle and a git repository: members-only editing, per-DAG reassignment by admins, team-tagged DAGs, and a Commit & Push button for GitHub or GitLab, with optional push-on-deploy.
Deploy is disabled until explicitly enabled. Every endpoint is authorized through the Airflow Auth Manager. User DAG code is only ever executed in an isolated, time-limited subprocess — never in the api-server process. Every file path is confined to the bundle root, and every deploy is audit-logged.
DagSmith is a solo side project — built and maintained in evenings and weekends, alongside a day job. If it's saving you time, or you just enjoy how it's put together, buying a coffee is the best way to tell me it's worth keeping going: more features, better docs, faster fixes.
☕ Buy me a coffee