release/0.22.0
deuxfleurs-org/garagerelease/0.22.0Jul 30, 2026by krlvi
Upgrading?
AI Summary
This release introduces native GitHub Stacked PR support and performs a major overhaul of the CLI and TUI command structure. It removes legacy commands and refactors argument handling to improve stacking workflows.
Key Highlights
- Native GitHub Stacked PR Support is now available
- Major CLI overhaul: removed `rub`, `stage`, and `unstage` commands
- CLI commands now use positional arguments for sources and flags for targets
- TUI now includes a dedicated squash mode and external program support
Breaking Changes
- Removed `but rub`, `but stage`, and `but unstage` commands
- CLI commands `commit`, `amend`, `squash`, `discard`, and `move` argument signatures changed
- Flag `--format json` replaced by `--json`
- CLI no longer reads change assignments from the desktop app
New Features
- Native GitHub Stacked PR Support
- TUI dedicated squash mode
- TUI external program support
- TUI `--remember-selection` flag
- TUI Catppuccin syntax highlighting
- History-editing commands now refuse to modify merged commits
Full Release Notes
## Changes Native GitHub Stacked PR Support is available in gitbutler 🥞🎉 - GitButler now automatically uses GitHub's native stacked pull requests for enrolled repositories, falling back to description footers otherwise - You can now choose per project whether GitButler adds stack metadata to pull and merge request descriptions - Cherry-picking now creates conflicted commits when a pick conflicts instead of blocking it ## CLI Breaking changes: This release overhauls the `commit`, `amend`, `squash`, `discard` and `move`. The commands `rub`, `stage` and `unstage` have been removed. For agentic use its important to update the skill (`but skill check --update`) - The CLI no longer reads change assignments from the desktop app. All worktree changes are treated as uncommitted; `but stage`, `but unstage`, and `but commit --only` have been removed - `but commit` now takes sources positionally and uses `-b/--branch` for the target branch and `--above` or `--below` for stacking - `but squash` still takes sources positionally but now uses `-t/--target` for the target. It can squash all types of sources into commits, branches, and the uncommitted area. - `but amend` and `but uncommit` work similarly to `but squash` - `but move` still takes sources positionally but now uses `-t/--target`, `--above`, or `--below` for the target. It can move commits, committed files, and branches. Use `--unstack` to unstack a branch - `but rub` has been replaced by `but squash` - `but amend` and `but squash` now default to uncommitted changes when you omit the source argument - Mutation commands now print concise results with change IDs by default - `--json` is now the standard machine-readable output flag, replacing `--format json` - History-editing commands now refuse to modify commits already merged upstream, with `--allow-merged` available for deliberate overrides - Errors now include recovery guidance for history edits, pull conflicts, cherry-picks, and pull or merge request actions, including newly conflicted commits and operations rejected by commit dependencies ## TUI - The TUI now has a dedicated squash mode that lets you select the source or target first and squash across multiple branches, replacing rub mode - The TUI can now open files and hunks in configured external programs, with multi-file selection, user-defined macOS apps, and per-extension defaults - The TUI can now discard multiple branches at once - The TUI now supports `--remember-selection`, restoring the previous selection when reopened - TUI diffs now use Catppuccin syntax highlighting - Fixes tab indentation in TUI diffs ## Fixes - Fixes web links for self-hosted forges that use a custom port - Fixes an issue where failed cherry-picks could fail silently - Fixes merge handling so adjacent edits to the same file are detected as conflicts, matching Git's behavior - Bitbucket: Fixes an issue where pull requests created through GitButler omitted default reviewers **Full Changelog**: https://github.com/gitbutlerapp/gitbutler/compare/release/0.21.2...release/0.22.0 ## Downloads Download bins from https://gitbutler.com/
Related Repositories
A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.
Build smaller, faster, and more secure desktop and mobile applications with a web frontend.
π RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.
Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one