// the find
astronomer/astronomer-cosmos
Run your dbt Core or dbt Fusion projects as Apache Airflow DAGs and Task Groups with a few lines of code
astronomer-cosmos converts dbt Core/Fusion projects into Airflow DAGs or Task Groups, mapping each dbt model to an individual Airflow task. It's aimed at data engineers who already run Airflow and want proper task-level observability, retries, and scheduling for their dbt pipelines instead of treating the entire dbt run as a black-box bash task.
- Profile mappings for a wide range of warehouses (Snowflake, BigQuery, Redshift, Databricks, DuckDB, Trino, etc.) mean you reuse Airflow connections rather than maintaining separate dbt profiles, which actually reduces credential sprawl.
- Multiple execution modes are supported out of the box: local subprocess, virtualenv (isolates dbt from Airflow deps), Docker, Kubernetes, ECS, and async operators—so you can pick the right isolation strategy for your environment.
- The project is actively maintained with regular releases, a proper CHANGELOG, CODEOWNERS file, pre-commit CI, and CodeQL scanning. It's not abandoned or barely-maintained OSS.
- DAG parsing uses a cached manifest so Airflow schedulers don't re-parse the entire dbt project on every DAG bag refresh, which matters a lot for projects with hundreds of models.
- Large dbt projects generate huge numbers of Airflow tasks (one per model plus tests), which hammers the Airflow metadata DB and scheduler. Task-group mode helps but the fundamental fan-out problem doesn't disappear—you'll hit scheduler performance issues before your DBA does.
- The virtualenv execution mode creates a new venv per task run by default, which is painfully slow on cold starts unless you configure a cached or pre-built venv. This is a common footgun for new adopters.
- Dependency on Astronomer's ecosystem means some features and docs implicitly assume Astro Cloud or the Astro CLI, which can confuse teams running vanilla open-source Airflow.
- Telemetry (Scarf pixel + usage tracking) is on by default and requires explicit opt-out, which is a non-starter in air-gapped or security-conscious environments and should be opt-in.