
Cosmos Dbt Core
Wire a dbt Core project into Airflow as a Cosmos DbtDag, DbtTaskGroup, or operators after confirming engine, warehouse, and manifest strategy.
Install
npx skills add https://github.com/astronomer/agents --skill cosmos-dbt-coreWhat is this skill?
- Ordered implementation checklist for Cosmos + dbt Core
- Six upfront confirmations: engine, warehouse, Airflow version, execution env, DAG shape, manifest
- ProjectConfig paths for project dir vs manifest-only load
- Targets Cosmos 1.11+ and Airflow 3.x with Airflow 2.x appendix notes
- Explicitly excludes dbt Fusion—points to cosmos-dbt-fusion skill instead
Adoption & trust: 678 installs on skills.sh; 384 GitHub stars; 2/3 security scanners passed (skills.sh audits).
Recommended Skills
Azure Kubernetesmicrosoft/azure-skills
Github Actions Docsxixu-me/skills
Deploy To Vercelvercel-labs/agent-skills
Vercel Cli With Tokensvercel-labs/agent-skills
Turborepovercel/turborepo
Docker Expertsickn33/antigravity-awesome-skills
Journey fit
Primary fit
Canonical shelf is Build because you implement orchestration glue between dbt and Airflow before production scheduling. Integrations matches connecting dbt Core, warehouse credentials, and Astronomer Cosmos inside an Airflow deployment.
Common Questions / FAQ
Is Cosmos Dbt Core safe to install?
skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Cosmos Dbt Core
# Cosmos + dbt Core: Implementation Checklist Execute steps in order. Prefer the simplest configuration that meets the user's constraints. > **Version note**: This skill targets Cosmos 1.11+ and Airflow 3.x. If the user is on Airflow 2.x, adjust imports accordingly (see Appendix A). > > **Reference**: Latest stable: https://pypi.org/project/astronomer-cosmos/ > **Before starting**, confirm: (1) dbt engine = Core (not Fusion → use **cosmos-dbt-fusion**), (2) warehouse type, (3) Airflow version, (4) execution environment (Airflow env / venv / container), (5) DbtDag vs DbtTaskGroup vs individual operators, (6) manifest availability. --- ## 1. Configure Project (ProjectConfig) | Approach | When to use | Required param | |----------|-------------|----------------| | Project path | Files available locally | `dbt_project_path` | | Manifest only | `dbt_manifest` load | `manifest_path` + `project_name` | ```python from cosmos import ProjectConfig _project_config = ProjectConfig( dbt_project_path="/path/to/dbt/project", # manifest_path="/path/to/manifest.json", # for dbt_manifest load mode # project_name="my_project", # if using manifest_path without dbt_project_path # install_dbt_deps=False, # if deps precomputed in CI ) ``` ## 2. Choose Parsing Strategy (RenderConfig) Pick ONE load mode based on constraints: | Load mode | When to use | Required inputs | Constraints | |-----------|-------------|-----------------|-------------| | `dbt_manifest` | Large projects; containerized execution; fastest | `ProjectConfig.manifest_path` | Remote manifest needs `manifest_conn_id` | | `dbt_ls` | Complex selectors; need dbt-native selection | dbt installed OR `dbt_executable_path` | Can also be used with containerized execution | | `dbt_ls_file` | dbt_ls selection without running dbt_ls every parse | `RenderConfig.dbt_ls_path` | `select`/`exclude` won't work | | `automatic` (default) | Simple setups; let Cosmos pick | (none) | Falls back: manifest → dbt_ls → custom | > **CRITICAL**: Containerized execution (`DOCKER`/`KUBERNETES`/etc.) ```python from cosmos import RenderConfig, LoadMode _render_config = RenderConfig( load_method=LoadMode.DBT_MANIFEST, # or DBT_LS, DBT_LS_FILE, AUTOMATIC ) ``` --- ## 3. Choose Execution Mode (ExecutionConfig) > **Reference**: See **[reference/cosmos-config.md](reference/cosmos-config.md#execution-modes-executionconfig)** for detailed configuration examples per mode. Pick ONE execution mode: | Execution mode | When to use | Speed | Required setup | |----------------|-------------|-------|----------------| | `WATCHER` | Fastest; single `dbt build` visibility | Fastest | dbt adapter in env OR `dbt_executable_path` or dbt Fusion | | `WATCHER_KUBERNETES` | Fastest isolated method; single `dbt build` visibility | Fast | dbt installed in container | | `LOCAL` + `DBT_RUNNER` | dbt + adapter in the same Python installation as Airflow | Fast | dbt 1.5+ in `requirements.txt` | | `LOCAL` + `SUBPROCESS` | dbt + adapter available in the Airflow deployment, in an isolated Python installation | Medium | `dbt_executable_path` | | `AIRFLOW_ASYNC` | BigQuery + long-running transforms | Fast | Airflow ≥2.8; provider deps | | `KUBERNETES` | Isolation between Airflow and dbt | Medium | Airflow ≥2.8; provider deps | | `VIRTUALENV` | Can't modify image; runtime venv | Slower | `py_requirements` in operator_args | | Other containerized approaches | Support Airflow and dbt isolation | Medium | container config | ```python from cosmos import ExecutionConfig, ExecutionMode _execution_config = ExecutionConfig( execution_mode=ExecutionMode.WATCHER, # or LOCAL, VIRTUALENV, AIRFLOW_ASYNC, KUBERNETES, etc. ) `