
setting-up-astro-project
โ 397by astronomer ยท part of astronomer/agents
Initialize and configure Astro/Airflow projects with dependencies, connections, and environment setup. Scaffolds complete project structure with astro dev init , including directories for DAGs, plugins, tests, and configuration files Manage Python and OS-level dependencies via requirements.txt and packages.txt , with custom Dockerfile support for complex setups Configure connections, variables, and pools declaratively in airflow_settings.yaml , with export/import commands for environment...
Initialize and configure Astro/Airflow projects with dependencies, connections, and environment setup. Scaffolds complete project structure with astro dev init , including directories for DAGs, plugins, tests, and configuration files Manage Python and OS-level dependencies via requirements.txt and packages.txt , with custom Dockerfile support for complex setups Configure connections, variables, and pools declaratively in airflow_settings.yaml , with export/import commands for environment...
Inspect the full instructions your agent will receiveExpandCollapse
This is the exact playbook injected into your agent when the skill activates โ shown here so you can audit it before installing. You don't need to read it to use the skill.
by astronomer
Initialize and configure Astro/Airflow projects with dependencies, connections, and environment setup. Scaffolds complete project structure with astro dev init , including directories for DAGs, plugins, tests, and configuration files Manage Python and OS-level dependencies via requirements.txt and packages.txt , with custom Dockerfile support for complex setups Configure connections, variables, and pools declaratively in airflow_settings.yaml , with export/import commands for environment...
npx skills add https://github.com/astronomer/agents --skill setting-up-astro-project
Download ZIPGitHub397
Initialize a New Project
astro dev init
Don't pass --airflow-version or --runtime-version unless the user explicitly asks for a specific pin. Plain astro dev init resolves 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 generated Dockerfile afterward 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, pools
Adding Dependencies
Python Packages (requirements.txt)
apache-airflow-providers-snowflake==5.3.0
pandas==2.1.0
requests>=2.28.0
OS Packages (packages.txt)
gcc
libpq-dev
Custom 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-package
After modifying dependencies: Run astro dev restart
Related 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)
FROM quay.io/astronomer/astro-runtime:12.4.0
RUN pip install --extra-index-url https://pypi.example.com/simple my-packageRun this in your project โ your agent picks the skill up automatically.
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-airflow skill.
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: 5
Export/Import
# Export from running environment
astro dev object export --connections --file connections.yaml
# Import to environment
astro dev object import --connections --file connections.yaml
Validate Before Running
Parse DAGs to catch errors without starting the full environment:
astro dev parse
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.