release/0.20.0
opengeos/geoairelease/0.20.0Jun 3, 2026by krlvi
AI Summary
GitButler 0.20.0 introduces native support for AI agents via the `but` CLI and agent skill, removing the in-app Claude Code GUI in favor of agentic workflows. The update brings significant performance improvements to branch listing and commit operations, alongside new CLI theming options and enhanced TUI features for branch management.
Key Highlights
- GitButler for AI agents: Native support for coding agents using the `but` CLI and agent skill.
- Performance improvements: Significant speedups for `but branch [list]` and improved commit squashing reliability.
- Enhanced CLI: New `BUT_THEME` environment variable to set dark/light themes.
- TUI Improvements: Ability to delete non-empty branches and copy diff content with Shift+C.
Breaking Changes
- Removed in-app GUI for Claude Code.
- `but branch new` and `but reword <branch>` now validate names strictly (fail instead of normalize).
- `but gui <path>` replaces the legacy `but .` command.
New Features
- AI Agents integration (`but` CLI and agent skill).
- CLI theme customization via `BUT_THEME`.
- Discard multiple commits at once in TUI.
- Delete non-empty branches in TUI.
- Copy diff content with Shift+C in TUI.
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/