Hello fellow Airflow developers, Before I go on paternity leave, I wanted to share a tool I've been using that might help fellow contributors who work on multiple PRs simultaneously.
## What is ABM? *Airflow Breeze Manager (ABM)* is a CLI tool for managing multiple Airflow development environments with isolated breeze instances. It uses git worktrees and port isolation so you can work on multiple branches at the same time without conflicts. GitHub: https://github.com/kaxil/abm PyPI: `uv tool install airflow-breeze-manager` ## The Problem It Solves When working on multiple Airflow PRs/features simultaneously, we face: - Port conflicts when running multiple breeze instances - Container name collisions (all use the same Docker Compose project name) - Lost context when switching branches - Waiting for containers to restart every time you switch ## How It Works ABM creates isolated environments for each branch: - ✅ Git worktrees (multiple branches checked out simultaneously) - ✅ Unique port assignments for all services (webserver, flower, postgres, mysql, redis, ssh) - ✅ Isolated Docker containers (via unique COMPOSE_PROJECT_NAME) - ✅ Branch-specific documentation that persists (PROJECT.md, CLAUDE.md) - ✅ GitHub PR tracking - ✅ Disk space management (freeze/thaw node_modules) ## Quick Example ```bash # One-time setup (run from your Airflow repo) cd ~/airflow abm init --airflow-repo . --worktree-base ../airflow-wt # Create projects for different features abm add feature-async --create-branch abm add bugfix-scheduler --create-branch # Work on both simultaneously abm start-airflow feature-async # localhost:28180 abm start-airflow bugfix-scheduler # localhost:28181 (different port!) # Each has its own isolated environment - no conflicts! abm list # See all your projects ``` ## Links - GitHub: https://github.com/kaxil/abm - Quick Start: https://github.com/kaxil/abm/blob/main/QUICKSTART.md I hope this helps some of you be more productive with parallel development! Regards, Kaxil
