Hi Kaxil,
very cool! Need to try soon! That would boost also my productivity.
I already use worktrees a lot but mainly suffer from that I can not
start multiple breeze instances - so w/o having "ABM" as an additional
tool, would it be also an option to add the missing features for
instances into breeze start-airflow directly?
Jens
On 10/31/25 19:37, Jarek Potiuk wrote:
BTW. One of the things I want to fix - I know how to easily remove that
limitation:
Postgres:
⚠️ Projects share the same database container (e.g., one postgres container
for all)
Breeze has a somewhat prepared feature for that - that we use to run our
tests in CI in parallel for multiple test types - there we have several
"full breeze docker-compose instances" running on the same machine
(including Postgres or MySQL databases). We can reuse that one.
J.
On Fri, Oct 31, 2025 at 7:33 PM Jarek Potiuk <[email protected]> wrote:
Excellent tool Kaxil !!!!
I love it. I already installed it and I am giving it a go (and I might
have some PRs soon - I already see one thing I would like to change :D)
I do manage a lot of those manually - but it is certainly worth trying to
automate some of that especially if you work on many PRs in parallel. I
have a feeling that this is going to be my new best friend.
On Fri, Oct 31, 2025 at 2:12 PM Kaxil Naik <[email protected]> wrote:
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
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]