DEV Community

Cover image for I got tired of breaking downstream code, so I built an AI CLI that fixes it for me.
Tahira Muhammad
Tahira Muhammad

Posted on

I got tired of breaking downstream code, so I built an AI CLI that fixes it for me.

If you maintain any kind of open source library or internal API, you already know the headache you merge a simple PR, cut a new release and suddenly three downstream projects crash because you changed a config key.

We’ve all been there. I got sick of doing this so I decided to solve it permanently.

I built BreakGuard.

It's a stupidly fast zero-dependency CLI (and GitHub Action) that scans your PRs and tells you exactly what you are about to break before you hit merge.

Key Features

It tells you exactly who you broke:

Run breakguard --format html and it spits out a visual node-graph showing exactly which downstream apps are going to crash because of your PR.

**It fixes their code for you:

If you broke an API run breakguard --auto-fix-downstream. It uses AI to clone their repos, rewrite their outdated function calls to match your new API and opens PRs to fix their code automatically.

It’s incredibly easy to use:

I hate memorizing CLI flags. If you just type breakguard in your terminal it opens an interactive arrow key wizard that holds your hand through the whole process.

It doesn't hide in CI logs:

If you run it as a GitHub Action it doesn't just fail silently. It injects a massive Markdown report directly into the GitHub UI so reviewers can clearly see the migration notes.

No Bloat

Zero Dependencies: Pure Python. No massive Docker containers or node modules to install.

Understands your code: It natively parses Python, Go, and TypeScript ASTs to detect renamed functions, deleted classes and changed arguments.

Smart Deprecations: If you actually used @deprecated tags properly it knows not to yell at you.

I built this so I could ship code faster without worrying about angry bug reports.

Check it out on GitHub: https://github.com/Tahiram32/breakguard

Top comments (0)