release/0.20.4

thedevs-network/kuttrelease/0.20.4Jun 26, 2026by krlvi

AI Summary

This release introduces significant improvements to agent workflows and the TUI/CLI experience, including an interactive setup wizard for AI agents, enhanced commit manipulation tools, and better visual controls for stack management.

Key Highlights

  • New interactive `but agent setup` wizard for tuning AI behavior
  • CLI enhancements like `but amend --changes` and `but commit` message support
  • TUI improvements for reordering stacks and applying branches
  • Removal of deprecated `mark` and `unmark` commands

Breaking Changes

  • Removed `but mark` and `but unmark` commands

New Features

  • Interactive `but agent setup` wizard
  • Font size setting in diff views
  • Support for `--changes` in `but amend`
  • Message support for empty commits in `but commit`
  • Diff output option in `but uncommit`
  • Stable Hunk IDs across commits
  • Display merged upstream branches in `but status`
  • TUI stack reordering and branch application
  • Enhanced TUI copy functionality (shift+y)
  • Improved scroll keybindings

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/