Determining if your branch is part of a GitHub Stacked PR A developer shares a zsh script that uses jq to parse GitHub's gh-stack metadata file and display a branch's position in a stacked PR (e.g., 🥞 1/3), noting that the data can become stale until `gh stack sync` is run, which is currently blocked by a GitHub issue. Since the availability of GitHub's Stacked PRs https://github.github.com/gh-stack/ finally landing for repositories that use a Merge Queue, I've been "kicking the tyres" with some of my contributions to Renovate https://docs.renovatebot.com/ . They're working mostly well so far, but I'm finding it a bit annoying trying to remember if I'm on a branch that's part of a stack. I'd started wiring this into my zsh config, still using Grml's zsh config https://grml.org/zsh/ as a base, and found it was a bit awkward. I decided to outsource it to Claude Sonnet 5 - cause I guess that's the sort of person I am now? 😅 - and it came out with this: in case you're working in a Git worktree git common dir="$ git rev-parse --git-common-dir 2 /dev/null " || { REPLY=""; return } stack file="$git common dir/gh-stack" position="$ jq -r --arg b "$ git branch --show-current " ' .stacks | select .branches ?.branch == $b | .branches | map .branch as $names | $names | index $b as $idx | "\ $idx + 1 /\ $names | length " ' "$stack file" 2 /dev/null | head -n1 " echo "$position" outputs i.e. x/y or if not in a stack I end up wiring this into my zsh prompt to show a 🥞 1/3 indicator like so: This works quite nicely, but I've found that it doesn't always stay in sync with GitHub. If a branch has been merged, but you've not yet run gh stack sync , you'll show as still on a stack. However, you can't run gh stack sync without being on a stacked branch https://github.com/github/gh-stack/issues/483 , so your cached data may be out-of-sync until that's fixed.