release/0.20.4

opengeos/geoairelease/0.20.4Jun 26, 2026by krlvi

AI Summary

Enhances the GitButler CLI and TUI with an interactive agent setup wizard, improved commit stacking workflows, and better navigation features for managing stacks and hunks.

Key Highlights

  • Add 'but agent setup' interactive wizard
  • Reorder stacks and apply branches in TUI
  • Improve PR stacking workflows and multi-committing speed
  • Copy commit details and diff hunks with shift+y

New Features

  • Agent setup wizard for tuning version control behavior
  • TUI reordering of stacks and multiple file movements
  • CLI amend command with --changes flag
  • CLI uncommit command with diff output

Full Release Notes

## Agentic Use

There is now a new command `but agent setup` which makes the overall setup easier. It is an interactive wizard for tuning version control behavior (similar to https://docs.gitbutler.com/ai-agents/tuning-agent-behavior but easier to setup). Running this is a good idea for best performance.

- Multi-committing, amending and splitting of commits now complete quicker and use less tokens
- Improved PR stacking workflows

## Changes

- There is now a "Font size" setting for the diff views (Settings → Appearance) 

## CLI

- `but amend` now accepts `--changes` to amend specific changes into a commit
- You can now provide a message when creating an empty commit with `but commit`
- `but uncommit` now supports a diff output option to print the resulting changes
- `but status` now shows stacked branches that have been merged upstream
- Hunk IDs are now stable across commits and discards
- `but completions` now appears in the help output, making it discoverable when you grab the `but` binary without an installer
- `but` output now labels "unassigned changes" as "uncommitted"
- Fixes a bug where `but apply` could report success while leaving a branch unapplied when workspace metadata was stale
- Removed the `but mark` and `but unmark` commands
- Improved error messages when `stdin` isn't a terminal

## TUI

- You can now reorder stacks in the TUI
- You can now apply branches from the TUI
- You can now move multiple commits at once in the TUI
- You can now commit above or below the selected commit in the TUI
- You can now copy more things in the TUI — commit details, diff hunks, branch names and more — with `shift+y`
- Improved scroll keybindings: `j`/`k`/arrows move by line, `ctrl+d`/`ctrl+u` jump by 10 lines, and `shift+j`/`shift+k` jump by section
- Unapplying a branch and undoing no longer prompt for confirmation in the TUI, since both can be undone

## Fixes

- Fixes a bug where moving empty branches did not work correctly
- Fixes a bug where commit-message and branch-name generation failed for non-OpenAI providers (Anthropic, Ollama, and others)
- Fixes an issue where commit signing failed when `gpg.ssh.program` pointed at a path containing a tilde (`~`)
- Fixes an issue where being offline produced repeated error toasts from background pull-request polling
- Fixes an issue where updating the workspace was not handling squash-merge integrated branches properly

## New Contributors
* @ameyypawar made their first contribution in https://github.com/gitbutlerapp/gitbutler/pull/14245
* @tobeycodes made their first contribution in https://github.com/gitbutlerapp/gitbutler/pull/14348

**Full Changelog**: https://github.com/gitbutlerapp/gitbutler/compare/release/0.20.3...release/0.20.4

## Downloads

Download bins from https://gitbutler.com/