Last week we released GitButler 0.22, now with native GitHub stacked pull request support.
In addition to this, the last few releases have landed a number of changes that you may not be aware of, so here's a little wrapup of some cool features that have landed in the last few months - including the new TUI, agentic skills, AI resolution, non-PR workflows and more.
Stacked Pull Requests
The 0.22 release adds native support for GitHub's new Stacked PRs. This means that if you have a stack of branches in GitButler and run but pr or hit the "Open Pull Request" button in the GUI, we will properly create a GitHub stack of those branches.

This is a simpler and more powerful way to stack and manage stacked branches and stacked PRs than GitHub's own gh stack extension. It's also faster and fewer calls for agents to manage as well.
If you're interested in a runthrough, here is a video we put out, showing off stacking PRs with GitButler's CLI.
The TUI
If you're a terminal addict like me, you may prefer an interactive, keyboard driven TUI over a desktop app sometimes. Well, the but tui command now launches a really amazing TUI version of the GitButler experience.

It started shipping a while ago, but now it's quite featureful. Multi-select files/commits/branches for commit, discard, and move; reorder stacks; apply branches; commit above/below a selection - all from the keyboard.
Agent skills
GitButler is now easily the best tool for your agents to use to do all your version control tasks. If you're using coding agents and want to give them a magical skillset, you can now run but agent setup to install and customize skills for nearly any common harness.
but agent setup
See the agent setup guide for the full flow.
Merge directly to main
If you just have a little fun project or vibe coded thing and don't want to go through the whole flow of opening a PR and then merging it, we now support directly pushing a local branch to the main branch on your server.
As of 0.21, you can set this in the GUI:

Once set, the PR button is replaced with a "Land" button.

Or in the CLI, just use the new but land command.
but land my-branch
Either of these will "land" the branch, meaning that it will merge to the target branch locally and push that directly to origin/main (or whatever your target branch is).
This makes for very quick development cycles, where you can push directly rather than doing PR based server merging.
AI-assisted conflict resolution
GitButler has first class conflicts, meaning we can store conflicted state in a commit and allow you to address it at any time. One pretty cool way of doing this now is with AI help.
In the CLI, you can run this:
but resolve my-commit --ai
Or if you're using the GUI, just right-click any conflicted commit and ask GitButler to resolve it on it's own.
And more
There have also been a ton of smaller features and additions:
- GitLab merge requests from forks
- Bitbucket Cloud as a first-class forge
- A redesigned upstream integration flow
- SHA-256 repository support
- OpenRouter support
- Guardrails on merged history
- Independent push remotes
- CLI verb overhaul for more consistency
- Bug fixes and stability of course...
Download the 0.22 release and try out all our fun new stuff!

Written by Scott Chacon
Scott Chacon is a co-founder of GitHub and GitButler, where he builds innovative tools for modern version control. He has authored Pro Git and spoken globally on Git and software collaboration.



