release/0.20.0
gitbutlerapp/gitbutlerrelease/0.20.0Jun 3, 2026by krlvi
AI Summary
Introduces GitButler for AI agents via the `but` CLI and agent skill, removing the in-app GUI for Claude Code. Includes performance improvements, CLI theme support, and various fixes for branch management and conflict resolution.
Key Highlights
- GitButler for AI agents via `but` CLI and agent skill
- Removed in-app GUI for Claude Code (superseded by `but` skill)
- CLI theme support via `BUT_THEME` environment variable
- Improved performance for `but branch [list]`
- Ability to discard commits in conflicted state
Breaking Changes
- Removed in-app GUI for Claude Code
- Renamed `but .` to `but gui <path>`
- `but branch delete`, `but oplog restore`, and `but unapply` no longer prompt for confirmation
- `but branch new` and `but reword <branch>` validate names and fail instead of normalizing
New Features
- AI Agent skill for coding agents
- CLI theme setting (dark/light)
- Discard multiple commits at once
- Delete non-empty branches
- Copy diff content with Shift+C
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/