release/0.20.0

collabora/WhisperFusionrelease/0.20.0Jun 3, 2026by krlvi

AI Summary

Major release focused on AI agent integration, replacing the in-app Claude Code GUI with CLI-based workflows, and improving TUI and CLI usability.

Key Highlights

  • Native support for AI agents via 'but' CLI
  • Removal of in-app Claude Code GUI
  • TUI features: discard multiple commits, delete non-empty branches, copy diff content
  • CLI improvements: 'BUT_THEME' support and non-interactive commands

Breaking Changes

  • Removal of in-app GUI for Claude Code
  • CLI command 'but .' replaced by 'but gui <path>'
  • CLI commands no longer prompt for confirmation

New Features

  • AI Agent integration (CLI and skill)
  • TUI: Create new branch from unassigned files
  • CLI: 'but gui -n' to open in new window
  • CLI: Performance improvements for 'but branch list'

Full Release Notes

## GitButler for AI agents

GitButler can now be used directly by your coding agent via the `but` CLI and the agent skill.
Multiple agent session can use the `but` CLI to work in parallel or stacked, branch & commit, clean up history etc.
Check the [AI Agents](https://docs.gitbutler.com/ai-agents/overview) docs for how to set it up and tune the behavior to your liking.

## Changes

- Removed in-app GUI for Claude Code (superseded by the `but` skill & workflow for agentic use)
- Fixes a bug with in-app deep links
- Fixes a Gerrit specific bug with push destination output
- Improved the performance and reliability of commit squashing
- Fixes a bug where branch creation fails with "Branch cannot be created: target commit already belongs to another branch"
- It is now possible to discard commits that are in a conflicted state

## CLI

- The 'theme' of the CLI can now be set via the `BUT_THEME` environment variable (dark/light)
- Improved error handling and display on bad user input
- Significant performance improvements for `but branch [list]`
- Fixes a bug where global flags did not work with aliases
- `but branch new` now validates the provided name and fails instead of normalizing it
- `but reword <branch>` now validates the provided name and fails instead of normalizing it
- `but gui <path>` replaces `but .` for opening a directory in the GUI
- `but gui -n <path>` allows opening the GUI in a new window
- `but unapply` no longer prompts for confirmation
- `but oplog restore` no longer prompts for confirmation
- `but branch delete` no longer prompts for confirmation

## TUI

- It is now easier to create a new branch from unassigned files
- Adds the ability to discard multiple commits at once
- You can now delete non-empty branches
- You can now copy the content of diffs with Shift+C
- Fixes a bug where moved files could not be committed

## New Contributors
* @mturac made their first contribution in https://github.com/gitbutlerapp/gitbutler/pull/13848

**Full Changelog**: https://github.com/gitbutlerapp/gitbutler/compare/release/0.19.13...release/0.20.0

## Downloads
Download bins from https://gitbutler.com/