Features

A complete stacked-diff workflow.

Eight things that make stkd worth installing. Every one is open source, none cost extra, and most are not available anywhere else.

Auto-restack

The most important feature, hidden in plain sight: when you edit a branch, every branch above it rebases automatically. No more git rebase --onto gymnastics, no more force-pushing four branches by hand, no more PR "out of date with target branch" warnings.

stkd maintains a DAG of your stacks in .git/config (the same format Graphite uses, so existing stacks come over cleanly). gt restack walks that DAG, rebases each dependent branch onto its parent's latest tip, and stops at any conflict so you can resolve it. gt continue picks up where you left off.

GitHub + GitLab — first class

stkd treats GitHub and GitLab as peers. The same gt submit --stack opens pull requests on GitHub or merge requests on GitLab (cloud or self-hosted), with cross-linked descriptions and the canonical “Stacked PRs” comment that reviewers expect.

Self-hosted GitLab is a first-class citizen: set --gitlab-host=gitlab.example.com once and every stkd command targets your instance.

Interactive TUI

gt tui opens a fully-keyboard-driven terminal interface to your stacks. Vim keys to navigate, single letters to act, an inline diff viewer, and live PR status. The fastest way to browse your stacks — and a gentle on-ramp for new team-mates.

See A tour of the stkd TUI for a guided walkthrough.

MCP server for AI agents

stkd-mcp exposes every CLI command as a typed MCP tool. Drop it into Claude Code or Cursor's config and the agent can gt_create, gt_submit, gt_restack, and gt_land natively — no shell-outs, no fragile prompt parsing.

stkd is the only stacked-diff tool with first-class MCP integration today. Full details on the MCP page.

Optional self-hosted dashboard

For teams: stkd-server is a small Rust service that gives you a team-wide view of stacks, PR statuses, and merges — running on your own infrastructure, behind your own SSO. SQLite by default, Postgres for multi-replica deployments.

See Self-hosting the stkd dashboard.

Fast where it matters

The whole stack is Rust. gt log is a parallel walk of git2's commit graph. gt restack uses cached merge bases. gt sync diffs the local DAG against the remote in one round-trip. On a 30k-file monorepo, every interactive command stays well under 100ms.

Truly open source

Apache-2.0 license. No telemetry by default. No tracking endpoints. No paid tier. The CLI, engine, MCP server, and dashboard are all in one public monorepo on GitHub.

Graphite-compatible metadata

The CLI grammar matches Graphite's, and stkd reads the same branch.<name>.parent git-config metadata Graphite stores. Migration is a single gt repo init; existing stacks come over unchanged. See the migration guide.

Try every feature in five minutes.

Install stkd, open a repo, run gt repo init. The whole surface is available immediately.