airflow
Queries, manages, and troubleshoots Apache Airflow using the `af` CLI. Use when working with anything related to Airflow - a DAG, a DAG run, a task log, an import or parse error, a broken DAG, or any Airflow operation. Covers listing and triggering DAGs, retrying runs, reading task logs, diagnosing
By astronomer · 1,346 installs
npx skills add astronomer/agents --skill airflow
Source repository · Upstream listing
Airflow Operations
Use af commands to query, manage, and troubleshoot Airflow workflows.
Astro CLI
The [Astro CLI](https://www.astronomer.io/docs/astro/cli/overview) is the recommended way to run Airflow locally and deploy to production. It provides a containerized Airflow environment that works out of the box:
For more details:
New project? See the setting up astro project skill
Local environment? See the managing astro local env skill
Deploying? See the deploying airflow skill
Running the CLI
These commands assume af is on PATH. Run via astro otto to get it automatically, or install standalone with uv tool install astro airflow mcp .
Instance Configuration
Manage multiple Airflow instances with persistent configuration:
Config layout (mirrors git config system/global/local):
Scope File Committed?
Global ~/.astro/config.yaml n/a (per user)
Project shared <root /.astro/config.yaml yes
Project local <root /.astro/config.local.yaml no (gitignored)
<root is found by walking up from cwd looking for .astro/ . Default write routing inside a project: add / discover → project shared, use → project local. Override with global / project / local . Set AF CONFIG=<path to bypass layering and use a single file.
Migrate from the legacy ~/.af/config.yaml with af migrate (idempotent; renames the old file to .bak ).
Tokens in config can reference environment variables using ${VAR} syntax:
Or use environment variables directly (no config file needed):
Or CLI flags: af airflow url http://localhost:8080 token "$TOKEN" <command
Quick Reference
Command Description
af health System health check
af dags list List all DAGs
af dags get <dag id Get DAG details
af dags explore <dag id Full DAG investigation
af dags source <dag id Get DAG source code
af dags pause <dag id Pause DAG scheduling
af dags unpause <dag id Resume DAG scheduling
af dags errors List import errors
af dags warnings List DAG warnings
af dags stats DAG run statistics
af runs list List DAG runs
af runs get <dag id <run id Get run details
af runs trigger <dag id Trigger a DAG run
af runs trigger wait <dag id Trigger and wait for completion
af runs delete <dag id <run id Permanently delete a DAG run
af runs clear <dag id <run id Clear a run for re execution
af runs diagnose <dag id <run id Diagnose failed run
af tasks list <dag id List tasks in DAG
af tasks get <dag id <task id Get task definition
af tasks instance <dag id <run id <task id Get task instance
af tasks logs <dag id <run id <task id Get task logs
af config version Airflow version
af config show Full configuration
af config connections List connections
af config variables List variables
af config variable <key Get specific variable
af config pools List pools
af config pool <name Get pool details
af config plugins List plugins
af config providers List providers
af config assets List assets/datasets
af api <endpoint Direct REST API access
af api ls List available API endpoints
af api ls filter X List endpoints matching pattern
af registry providers List providers in the Airflow Registry
af registry modules <provider List operators/hooks/sensors/transfers in a provider
af registry parameters <provider Constructor signatures (name, type, default, required) for a provider's classes
af registry connections <provider Connection types a provider exposes
User Intent Patterns
Getting Started
"How do I run Airflow locally?" / "Set up Airflow" use the managing astro local env skill (uses Astro CLI)
"Create a new Airflow project" / "Initialize project" use the setting up astro project skill (uses Astro CLI)
"How do I install Airflow?" / "Get started with Airflow" use the setting up astro project skill
DAG Operations
"What DAGs exist?" / "List all DAGs" af dags list
"Tell me about DAG X" / "What is DAG Y?" af dags explore <dag id
"What's the schedule for DAG X?" af dags get <dag id
"Show me the code for DAG X" af dags source <dag id
"Stop DAG X" / "Pause this workflow" af dags pause <dag id
"Resume DAG X" af dags unpause <dag id
"Are there any DAG errors?" af dags errors
"Create a new DAG" / "Write a pipeline" use the authoring dags skill
Run Operations
"What runs have executed?" af runs list
"Run DAG X" / "Trigger the pipeline" af runs trigger <dag id
"Run DAG X and wait" af runs trigger wait <dag id
"Why did this run fail?" af runs diagnose <dag id <run id
"Delete this run" / "Remove stuck run" af runs delete <dag id <run id
"Clear this run" / "Retry this run" / "Re run this" af runs clear <dag id <run id
"Test this DAG and fix if it fails" use the testing dags skill
Task Operations
"What tasks are in DAG X?" af tasks list <dag id
"Get task logs" / "Why did task fail?" af tasks logs <dag id <run id <task id
"Full root cause analysis" / "Diagnose and fix" use the debugging dags skill
Data Operations
"Is the data fresh?" / "When was this table last updated?" use the checking freshness skill
"Where does this data come from?" use the tracing upstream lineage skill
"What depends on this table?" / "What breaks if I change this?" use the tracing downstream lineage skill
Deployment Operations
"Deploy my DAGs" / "Push to production" use the deploying airflow skill
"Set up CI/CD" / "Automate deploys" use the deploying airflow skill
"Deploy to Kubernetes" / "Set up Helm" use the deploying airflow skill
"astro deploy" / "DAG only deploy" use the deploying airflow skill
System Operations
"What version of Airflow?" af config version
"What connections exist?" af config connections
"Are pools full?" af config pools
"Is Airflow healthy?" af health
API Exploration
"What API endpoints are available?" af api ls
"Find variable endpoints" af api ls filter variable
"Access XCom values" / "Get XCom" af api xcom entries F dag id=X F task id=Y
"Get event logs" / "Audit trail" af api event logs F dag id=X
"Create connection via API" af api connections X POST body '{...}'
"Create variable via API" af api variables X POST F key=name f value=val
Registry Discovery
"What operators does provider X have?" af registry modules <provider
"What are the constructor params for operator Y?" af registry parameters <provider
"What providers exist?" / "Is there a provider for Z?" af registry providers
"What connection types does provider X expose?" af registry connections <provider
"Writing a DAG with a specific operator" use registry to verify current signature before copying examples
Common Workflows
Validate DAGs Before Deploying
If you're using the Astro CLI, you can validate DAGs without a running Airflow instance:
Otherwise, validate against a running instance:
Discover Operator Signatures Before Writing Code
The Airflow Registry at airflow.apache.org/registry is the authoritative source for provider classes and their current constructor signatures. Prefer it over memory or stale documentation when authoring DAGs — the registry reflects the live provider release.
Results are cached locally: 1 hour for the latest version, 30 days for pinned versions (which are immutable). Add version X.Y.Z to any modules / parameters / connections call to target a specific release.
Investigate a Failed Run
Morning Health Check
Understand a DAG
Check Why DAG Isn't Running
Trigger and Monitor
Output Format
All commands output JSON (except instance commands which use human readable tables):
Use jq for filtering:
Task Logs Options
Direct API Access with af api
Use af api for endpoints not covered by high level commands (XCom, event logs, backfills, etc).
Field syntax : F key=value auto converts types, f key=value keeps as string.
Full reference : See [api reference.md](api reference.md) for all options, common endpoints (XCom, event logs, backfills), and examples.
Related Skills
Skill Use when...
authoring dags Creating or editing DAG files with best practices
testing dags Iterative test debug fix retest cycles
debugging dags Deep root cause analysis and failure diagnosis
checking freshness Checking if data is up to date or stale
tracing upstream lineage Finding where data comes from
tracing downstream lineage Impact analysis what breaks if something changes
deploying airflow Deploying DAGs to production (Astro, Docker Compose, Kubernetes)
migrating airflow 2 to 3 Upgrading DAGs from Airflow 2.x to 3.x
managing astro local env Starting, stopping, or troubleshooting local Airflow
setting up astro project Initializing a new Astro/Airflow project
airflow state store Per task checkpointing, watermarks, crash safe operators (Airflow 3.3+)
airflow hitl Pausing a DAG for human approval or input (Airflow 3.1+)