This skill ships inside the Astronomer Data Engineering plugin ā install the plugin and you also get hooks.
WHEN YOUR AGENT SHOULD USE IT
USE FOR
- Initialize a new Astro project with the standard folder structure.
- Add Python or OS-level packages the project needs.
- Configure connections, variables, and pools for the local environment.
- Export or import connections and variables between environments.
DO NOT USE FOR
- Running the local environment ā see managing-astro-local-env instead.
- Writing DAGs ā see authoring-dags instead.
Documents
This is the playbook your agent receives when the skill activates ā you don't need to read it to use the skill, but it's here to audit before installing.
Astro Project Setup
This skill helps you initialize and configure Airflow projects using the Astro CLI.
To run the local environment, see the managing-astro-local-env skill. To write DAGs, see the authoring-dags skill. Open-source alternative: If the user isn't on Astro, guide them to Apache Airflow's Docker Compose quickstart for local dev and the Helm chart for production. For deployment strategies, use the
deploying-airflowskill.
Initialize a New Project
astro dev initDon't pass
--airflow-versionor--runtime-versionunless the user explicitly asks for a specific pin. Plainastro dev initresolves to the latest Astro Runtime ā that's the right default. Specifying a version risks pinning to a stale value from training data. If the user wants to know what was installed, read the generatedDockerfileafterward instead of guessing.
Creates this structure:
project/
āāā dags/ # DAG files
āāā include/ # SQL, configs, supporting files
āāā plugins/ # Custom Airflow plugins
āāā tests/ # Unit tests
āāā Dockerfile # Image customization
āāā packages.txt # OS-level packages
āāā requirements.txt # Python packages
āāā airflow_settings.yaml # Connections, variables, poolsAdding Dependencies
Python Packages (requirements.txt)
apache-airflow-providers-snowflake==5.3.0
pandas==2.1.0
requests>=2.28.0OS Packages (packages.txt)
gcc
libpq-devCustom Dockerfile
For complex setups (private PyPI, custom scripts):
FROM quay.io/astronomer/astro-runtime:12.4.0
RUN pip install --extra-index-url https://pypi.example.com/simple my-packageAfter modifying dependencies: Run astro dev restart
Configuring Connections & Variables
airflow_settings.yaml
Loaded automatically on environment start:
airflow:
connections:
- conn_id: my_postgres
conn_type: postgres
host: host.docker.internal
port: 5432
login: user
password: pass
schema: mydb
variables:
- variable_name: env
variable_value: dev
pools:
- pool_name: limited_pool
pool_slot: 5Export/Import
# Export from running environment
astro dev object export --connections --file connections.yaml
# Import to environment
astro dev object import --connections --file connections.yamlValidate Before Running
Parse DAGs to catch errors without starting the full environment:
astro dev parseRelated Skills
- managing-astro-local-env: Start, stop, and troubleshoot the local environment
- authoring-dags: Write and validate DAGs (uses MCP tools)
- testing-dags: Test DAGs (uses MCP tools)
- deploying-airflow: Deploy DAGs to production (Astro, Docker Compose, Kubernetes)
Installation
npx skills add astronomer/agents --skill "setting-up-astro-project" --full-depthRun this in your project ā your agent picks the skill up automatically.
BEFORE IT WILL WORK
1 FOR YOU- 01
Install the Astro CLI
License
Licensed under Apache-2.0ā you can use, modify, and redistribute it under that license's terms.
View the full license file on GitHub ā