stck is a Rust CLI for working with stacked GitHub pull requests.
Stacked PRs improve review quality and throughput, but day-to-day maintenance can be tedious and error-prone. stck focuses on automating the repetitive mechanics while staying close to native git and gh behavior.
Early public release series (v0.x).
Command surface:
stck new <branch>
stck submit [--base <branch>]
stck status
stck sync
stck pushstck new <branch> works both when starting from the default branch and when stacking on top of an existing branch.
stck submit auto-detects the most likely stack parent when --base is omitted. It fetches origin, checks ancestor branch refs, and uses targeted GitHub queries to confirm open PRs without a repository-wide result limit. If discovery checks every candidate but finds no parent PR, it falls back to the repository default branch. Missing refs or failed ancestry checks stop discovery instead of silently selecting the default branch.
PRs created by new or submit include a compact body identifying their root/child position and base branch.
Git subcommand entrypoint is also installed (when installed via homebrew):
git stck <command>brew tap brdv/stck https://github.com/brdv/stck
brew install brdv/stck/stckVerify installation:
stck --version
stck --help
git stck --helpcargo build --locked --release --all-features
./target/release/stck --helpstck supports the current stable Rust release and the two preceding releases
(N-2). The current minimum supported Rust version is 1.95.
Homebrew release details are documented in docs/release-homebrew.md.
stck aims to make stacked PR workflows predictable and low-friction by providing a small set of commands to:
- create the next branch in a stack,
- inspect stack and PR state,
- restack/rebase locally after upstream changes,
- push rewritten branches and update PR base relationships.
For a step-by-step tutorial and command behavior details, see USAGE.md.
Development and validation commands live in CONTRIBUTING.md.