# airflow-hitl

> Claude/Codex skill by [@astronomer](https://omgskills.com/library/astronomer/index.md) · 454 stars · Updated 2026-10-14

Builds human-in-the-loop (HITL) Airflow workflows - approval gates, form input, and human-driven branching. Use when a DAG needs a human in the loop - an approval or reject step, sign-off before a task runs, a decision or approval UI, branching on a human choice, or collecting form input mid-run; also on mentions of ApprovalOperator, HITLOperator, HITLBranchOperator, HITLEntryOperator, or HITLTrigger. Requires Airflow 3.1+. Not for AI/LLM task calls (see migrating-ai-sdk-to-common-ai).

Tags: agentic-workflow, agents, ai, ai-agents, airflow, apache-airflow, claude, cursor, dag, data-engineering, data-pipelines, dbt, llm, mcp, orchestrator, skills, workflow-automation, workflow-management, workflow-orchestration, workflows

## Install

```sh
git clone https://github.com/astronomer/agents /tmp/agents && ln -s /tmp/agents/skills/airflow-hitl ~/.claude/skills/airflow-hitl
```

## From README

Airflow Human-in-the-Loop Operators Pause a DAG until a human responds via the Airflow UI or REST API. HITL operators are deferrable — they release their worker slot while waiting. Requires Airflow 3.1+ (af config version). UI location: Browse → Required Actions. Respond from the task instance page's Required Actions tab. Cross-references: migrating-ai-sdk-to-common-ai for AI/LLM task decorators; airflow for registry and API discovery commands used below. --- Step 1 — Pick the capability you need | Capability | Class (verify in Step 2) | |---|---| | Approve or reject; downstream skips on reject | ApprovalOperator | | Present N options and return which were chosen | HITLOperator | | Branch to one or more downstream tasks based on a choice | HITLBranchOperator | | Collect a form (no approve/select step) | HITLEntryOperator | | Use the HITL trigger directly (advanced / custom operators) | HITLTrigger | This is the only place class names are hardcoded.

## Links

- HTML page: https://omgskills.com/skills/astronomer/agents/airflow-hitl/
- GitHub: https://github.com/astronomer/agents
- Author: [@astronomer](https://omgskills.com/library/astronomer/index.md)

## More from this repo

- [airflow-state-store](https://omgskills.com/skills/astronomer/agents/skills/airflow-state-store/index.md) — Persists task and asset state across retries and DAG runs using Airflow 3.3's AIP-103 key/value stores...
   - [@astronomer](https://omgskills.com/library/astronomer/index.md) · 456 stars
- [authoring-go-sdk-tasks](https://omgskills.com/skills/astronomer/agents/skills/authoring-go-sdk-tasks/index.md) — Writes Airflow task logic in Go using the Airflow Go SDK.
   - [@astronomer](https://omgskills.com/library/astronomer/index.md) · 456 stars
- [authoring-java-sdk-tasks](https://omgskills.com/skills/astronomer/agents/skills/authoring-java-sdk-tasks/index.md) — Writes Airflow task logic in Java, Kotlin, or any JVM language using the Airflow Java SDK.
   - [@astronomer](https://omgskills.com/library/astronomer/index.md) · 456 stars
