Introduction
A CLI and TUI app for effortless PR management
PRStack
PRStack is a flexible tool that embraces the chaos of day to day development. It allows you to create any workflows your Version Control System (VCS) supports, and offers commands to manage Pull Requests (PR) based on the current state of the commit log.
It also supports a bunch of workflows that will make it a lot easier to make lots of small incremental Pull Requests. These workflows are also very suitable for modern parallelized AI powered development.
It's free and open source.
CLI and TUI app
PrStack offers two ways to work:
- TUI App: Run
prstackfor an interactive terminal interface to detect, inspect, open, diff and help managing your stacks with operations like PR creation, merging, and more. - CLI Commands: Use individual commands like
prstack syncfor quick, scriptable operations in your existing workflow
Benefits
Using PRStack reduces the overhead of creating and merging PRs to a mere afterthought. Wether you make a few PRs here and there, or are in active development creating dozens of PRs per week, PRStack provides all the regular actions at the press of a button.
How it works
Work on a feature. Make one or more branches, stacked, parallel or any mix
At any moment, invoking prstack will read your commit history into a Directed Acyclic Graph (DAG)
Using this DAG, PRStack can visualize and manage your PRs
Reasoning
Traditional PR stacking tools require planning and adherence to predefined structures. PRStack recognizes that development is organic - you branch where needed, pivot when requirements change, and explore multiple approaches simultaneously. Making PRs is an afterthought. A good PR management tool comes in at the right time to help you manage them, when you are ready.
By dynamically discovering your stack based on your current context, PRStack eliminates the friction of imperative stack management.
Quick Example
# Create feature-a branch
jj new -m "Feature A"
jj bookmark create feature-a
# Create feature-b branch
jj new -m "Feature B"
jj bookmark create feature-b
# From feature-b: sync discovers feature-b → feature-a → main
prstack sync# Create feature-a branch
git checkout -b feature-a
# Create feature-b branch
git checkout -b feature-b
prstack syncNext Steps
- Installation - Get started with PRStack
- Workflows - Learn to use PRStack along with some useful workflows
- Philosophy - Understand how PrStack differs from other tools
- Commands - Learn the available commands