Graphite popularised the modern stacked-diff workflow on GitHub. It’s a polished SaaS product with a CLI (gt), a review web app, and a paid team plan. stkd is the open-source, Graphite-compatible CLI — same gt command, same metadata model, plus GitLab support and AI integration.
This page is a direct comparison. We don’t pretend stkd wins every dimension — for GitHub-only teams on the Graphite free tier, Graphite is excellent and you should keep using it.
Side-by-side
| stkd | Graphite | |
|---|---|---|
| License | Apache-2.0 | Source-available, paid SaaS |
| CLI command | gt | gt |
| Stacked-branch metadata | branch.<name>.parent in git config | branch.<name>.parent in git config |
| GitHub support | Yes | Yes |
| GitLab.com support | Yes | No |
| Self-hosted GitLab support | Yes | No |
| Auto-restack | Yes | Yes |
| Interactive TUI | Yes (gt tui) | No |
| Submit entire stack | Yes | Yes |
| MCP server for AI agents | Yes (stkd-mcp) | No |
| Self-hosted web dashboard | Yes (optional, OSS) | No (SaaS only) |
| Hosted SaaS dashboard | No | Yes |
| Review web app | No (use GitHub / GitLab) | Yes |
| Merge queue | Via provider (GitHub / GitLab) | Yes (proprietary) |
| Per-seat pricing | Free, forever | Free + paid team tier |
| Telemetry default | Off | On (opt-out) |
| Migration cost | One command (gt repo init) | N/A (you’d be migrating from this) |
Why someone would pick stkd
Several concrete reasons, in rough order of how often they come up:
- You’re on GitLab. Graphite doesn’t support GitLab. stkd is one of very few stacked-diff CLIs that does, including self-hosted GitLab. If you’re a GitLab shop, the choice is made for you.
- You want true open source. Apache-2.0 is permissive: you can audit it, vendor it, modify it, redistribute it. Graphite’s CLI is source-available; the dashboard is closed.
- You want AI-agent integration. stkd ships an MCP server so Claude Code, Cursor, and other AI agents can drive stacks natively. Graphite has no equivalent.
- You want to self-host the team view. stkd’s optional dashboard is a small Rust service you run on your own infrastructure. Graphite’s web app is SaaS-only.
- You want zero per-seat cost. stkd is free for individuals, teams, and enterprises. No paywalled features.
Why someone would pick Graphite
Honesty matters; Graphite is genuinely better for some teams:
- You depend on Graphite Web’s review experience. The Graphite app has a polished, opinionated review UI with stack navigation, threaded comments, and reviewer queue management. stkd doesn’t have an equivalent — it expects you to review in GitHub or GitLab.
- You use Graphite’s merge queue. GitHub now has a native merge queue, and you can pair stkd with it cleanly, but if you’ve built workflow around Graphite’s specific queue features, switching costs are real.
- The Graphite free tier covers you. If you’re a small team on GitHub and Graphite Free meets your needs, the philosophical advantage of OSS may not outweigh the comfort of an established product.
Migration
If you decide to migrate, it’s a one-command operation:
brew install neul-labs/tap/stkd
cd path/to/repo
gt repo init # reads existing Graphite metadata
Your existing stacks appear in gt log unchanged. The full guide is here.
What stkd doesn’t try to do
To be clear about what you’re trading off:
- No hosted SaaS. stkd’s dashboard is self-hosted. If you want zero ops burden, Graphite’s hosted offering is one click.
- No proprietary review UI. stkd doesn’t replace GitHub or GitLab for code review. If you’ve fallen in love with Graphite Web’s inline review experience, you’ll miss it.
- No private support contract. stkd is community-supported via GitHub Issues and Discussions. Paid plans buy you Graphite’s SLA-backed support.
Verdict
Choose stkd if open source, GitLab support, AI integration, or self-hosting matter to you. Choose Graphite if you live entirely inside GitHub and you value Graphite Web’s polished review experience over those things.
Either way, both teams want the same thing for you: smaller PRs, faster reviews, less context-switching. Pick the tool whose tradeoffs match your team.