Mergify Stacks vs gt
gt is the Graphite CLI for stacked diffs. Mergify Stacks gives you the same workflow shape, open source, with standard Git and a real merge queue underneath.
The short answer
Both tools split big feature branches into chained PRs. gt does it by creating a Git branch for every PR in the stack. Mergify Stacks does it with one branch and one commit per PR. The result on GitHub is the same, with less local branch juggling and no separate app for reviewers. The CLI is open source and free.
Used by platform teams at
From fast-moving startups to well-known enterprises
The same outcome, written differently
Two changes, one chained on top of the other. Here's the local workflow on each side.
With gt
gt create add-model
# edit, save
gt create add-endpoint
# edit, save
gt submit Two named branches, navigated with gt up and gt down.
With Mergify Stacks
mergify stack new
git commit -m "add model"
git commit -m "add endpoint"
mergify stack push One branch, two commits. Mergify creates and links the remote PRs.
Side-by-side
| Feature | gt | Mergify Stacks |
|---|---|---|
| Local Git model | One branch per PR | One branch, many commits |
| Stack identity | Branch name | Change-Id trailer |
| Branch management | You name and track each branch | Auto-created by Mergify |
| Open source CLI | ||
| Vendor account required for reviewers | ||
| Works with GitHub native review UI | Partial | |
| AI agent integration | gt mcp (MCP server) | Published skill (Claude Code, skills.sh) |
| Reorder a stack non-interactively | gt reorder | mergify stack reorder |
| Absorb staged hunks into older commits | gt absorb | |
| Split a commit by hunk or file | gt split | |
| VS Code extension | ||
| Merge queue underneath | Graphite queue | Mergify Merge Queue |
| CI batching with bisect-on-failure | ||
| Two-step CI (light on push, heavy in queue) | ||
| Pricing | Per user | Free CLI; included in every plan |
What each tool is stronger at
An honest look at where each one wins.
gt is stronger at
- Teams already running gt and used to the branch-per-PR model
- Heavy in-flight commit rewriting with gt absorb and gt split
- Reviewers happy to use the Graphite app instead of GitHub
- VS Code users who want a graphical stack view
Mergify Stacks is stronger at
- Standard Git: commit on one branch, no new tree of branches to manage
- No separate app or account required for reviewers
- Same merge queue handles stacked PRs and regular PRs
- Open source CLI, free for individuals and small teams, included in every Mergify plan
- Native MCP support so coding agents can stack without extra wiring
Switching from gt
The main shift is moving from "one branch per PR" to "one commit per PR on a single branch." The rest of the workflow translates directly.
uv tool install mergify-cli
mergify stack setup | gt | Mergify Stacks |
|---|---|
gt create | git commit |
gt modify | git commit --amend or mergify stack edit |
gt submit | mergify stack push |
gt restack | Automatic on mergify stack push |
gt sync | mergify stack sync |
gt log | mergify stack list |
gt up / down / top / bottom | Not needed (single branch) |
gt absorb | git commit --fixup + mergify stack edit |
FAQ
Is the Mergify CLI really free?
Yes. The CLI is open source and free to install. Stacks are included in every Mergify plan, including the free tier (up to 5 users, unlimited on public repos). See pricing.
Do reviewers need a Mergify account to review my stack?
No. Only the stack author installs the CLI. Reviewers, approvers, and anyone else interacting with the PRs use GitHub's native UI. There is no separate app to learn and no account to create.
Can I switch from gt to Mergify Stacks on an existing repo?
Yes. The Mergify CLI works on plain Git branches and standard rebase. Nothing about your repo state needs to change. You install mergify-cli, run mergify stack setup to add a commit-msg hook for Change-Ids, and you start stacking. See the migration guide.
How does the local model differ from gt?
gt creates a separate Git branch for every PR in the stack. You navigate between them with gt up, gt down, gt top, gt bottom, and you keep a tree of local branches in your head. Mergify Stacks keeps a single branch with one commit per PR. Mergify creates and updates the remote branches for you on push.
What about gt absorb and gt split?
Mergify Stacks does not ship those today. For absorb-style fixups, you amend the target commit with git commit --amend or use mergify stack edit on a mid-stack commit. For splitting a commit, you split the change before committing or use git reset and rebuild the history with smaller commits.
Does Mergify Stacks work with AI coding agents?
Yes. We publish a Stacks skill that AI agents load alongside the CLI. Claude Code installs it from the plugin marketplace; Cursor, Cline, and any tool supporting skills.sh load it with npx skills add Mergifyio/mergify-cli. After loading, the agent follows the Stacks workflow directly. See the agent integration docs.
Can I keep using my current merge queue?
Stacks merge through Mergify's Merge Queue, which supports batching, priority lanes, speculative checks, queue freeze, and scope-aware monorepo queues. If you're already on Mergify, stacks plug into the queue you already configured.
Open source CLI. Free in every plan.
Install the Mergify CLI and start stacking. No account required for reviewers.