release/0.20.0

mickael-kerjean/filestashrelease/0.20.0Jun 3, 2026by krlvi

AI Summary

This release introduces AI agent integration via the `but` CLI and agent skill, removes the in-app GUI for Claude Code, and enhances performance for commit squashing and branch management. It also introduces new CLI and TUI features including theming support and the ability to discard conflicted commits.

Key Highlights

  • GitButler for AI agents: New `but` CLI and agent skill for coding agents.
  • Removed in-app GUI for Claude Code (replaced by agentic workflows).
  • Performance improvements for commit squashing and `but branch [list]`.
  • New CLI commands: `but gui <path>` and `but gui -n <path>` to open directories in the GUI.
  • TUI improvements: Copy diff content with Shift+C and delete non-empty branches.

Breaking Changes

  • Removed in-app GUI for Claude Code (superseded by the `but` skill & workflow for agentic use).

New Features

  • AI Agent integration via `but` CLI and agent skill.
  • CLI theme support via `BUT_THEME` environment variable (dark/light).
  • New `but gui <path>` command replaces `but .`.
  • New `but gui -n <path>` command to open GUI in a new window.
  • TUI: Copy diff content with Shift+C.
  • TUI: Delete non-empty branches.
  • TUI: Discard multiple commits at once.
  • TUI: Easier branch creation from unassigned files.

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/