# Determining if your branch is part of a GitHub Stacked PR

> Source: <https://www.jvt.me/posts/2026/08/26/zsh-stacked-pr/?utm_medium=rss&utm_source=rss>
> Published: 2026-08-26 14:41:41+00:00

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.
