# gitui changelog > A blazing-fast terminal UI for git, written in Rust. - Vendor: gitui project - Category: Developer Tools - Platforms: Desktop - Official site: https://gitui.org - Tracked by: What's New (https://whatsnew.fyi/product/gitui) - Harvested from: GitHub (gitui-org/gitui) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## Releases ### v0.28.1 - Date: 2026-03-24 - Version: v0.28.1 - Original notes: https://github.com/gitui-org/gitui/releases/tag/v0.28.1 - Permalink: https://whatsnew.fyi/product/gitui/releases/v0.28.1 - Labels: Platforms: Desktop - **changed** — support proper pre-push hook - **changed** — improve gitui --version message - **changed** — rust msrv bumped to 1.88 - **fixed** — fix extremely slow status loading in large repositories by replacing time-based cache invalidation with generation counter - **fixed** — fix panic when renaming or updating remote URL with no remotes configured ###### Changed * support proper pre-push hook ([#2809](https://github.com/gitui-org/gitui/issues/2809)) * improve `gitui --version` message [[@hlsxx](https://github.com/hlsxx)] ([#2838](https://github.com/gitui-org/gitui/issues/2838)) * rust msrv bumped to `1.88` ###### Fixed * fix extremely slow status loading in large repositories by replacing time-based cache invalidation with generation counter [[@DannyStoll1](https://github.com/DannyStoll1)] ([#2823](https://github.com/gitui-org/gitui/issues/2823)) * fix panic when renaming or updating remote URL with no remotes configured [[@xvchris](https://github.com/xvchris)] ([#2868](https://github.com/gitui-org/gitui/issues/2868)) ### v0.28.1-rc.1 - Date: 2026-03-21 - Version: v0.28.1-rc.1 - Original notes: https://github.com/gitui-org/gitui/releases/tag/v0.28.1-rc.1 - Permalink: https://whatsnew.fyi/product/gitui/releases/v0.28.1-rc.1 - Labels: Pre-release; Platforms: Desktop - **changed** — support proper pre-push hook - **changed** — improve gitui --version message - **changed** — rust msrv bumped to 1.88 - **fixed** — fix extremely slow status loading in large repositories by replacing time-based cache invalidation with generation counter - **fixed** — fix panic when renaming or updating remote URL with no remotes configured ###### Changed * support proper pre-push hook ([#2809](https://github.com/gitui-org/gitui/issues/2809)) * improve `gitui --version` message [[@hlsxx](https://github.com/hlsxx)] ([#2838](https://github.com/gitui-org/gitui/issues/2838)) * rust msrv bumped to `1.88` ###### Fixed * fix extremely slow status loading in large repositories by replacing time-based cache invalidation with generation counter [[@DannyStoll1](https://github.com/DannyStoll1)] ([#2823](https://github.com/gitui-org/gitui/issues/2823)) * fix panic when renaming or updating remote URL with no remotes configured [[@xvchris](https://github.com/xvchris)] ([#2868](https://github.com/gitui-org/gitui/issues/2868)) ### v0.28.0 - Date: 2025-12-14 - Version: v0.28.0 - Original notes: https://github.com/gitui-org/gitui/releases/tag/v0.28.0 - Permalink: https://whatsnew.fyi/product/gitui/releases/v0.28.0 - Labels: Platforms: Desktop - **added** — Support choosing checkout branch method when status is not empty - **added** — Support pre-push hook - **added** — Message tab supports pageUp and pageDown - **added** — Files and status tab support pageUp and pageDown - **added** — Support loading custom syntax highlighting themes from a file - **added** — Select syntax highlighting theme out of the defaults from syntect - **added** — New command-line option to override the default log file path (--logfile) - **added** — Add use_selection_fg to theme file to allow customizing selection foreground color - **added** — Add go to line command for the blame view - **added** — Add --file cli flag to open the files tab with the given file already selected - **added** — Add the ability to specify a custom keybinding/symbols file via the cli - **changed** — Execute git-hooks directly if possible (on *nix) else use sh instead of bash - **changed** — Improve error messages - **changed** — Improve syntax highlighting file detection - **changed** — After commit: jump back to unstaged area - **changed** — The default key to close the commit error message popup is now the Escape key - **changed** — Use OSC52 copying in case other methods fail - **changed** — Push: respect branch.*.merge when push default is upstream - **changed** — Set the terminal title to gitui ({repo_path}) - **changed** — Respect .mailmap - **changed** — Use gitoxide for get_tags - **changed** — Increase MSRV to 1.82 - **fixed** — Resolve core.hooksPath relative to GIT_WORK_TREE - **fixed** — Yanking commit ranges no longer generates incorrect dotted range notations, but lists each individual commit - **fixed** — Print slightly nicer errors when failing to create a directory - **fixed** — When the terminal is insufficient to display all the commands, the cmdbar_bg configuration color does not fully take effect - **fixed** — Disable blame and history popup keybinds for untracked files - **fixed** — Overwrites committer on amend of unsigned commits **discard changes on checkout** ![discard-changes-on-checkout](assets/discard-changes-on-checkout.png) **go to line in blame** ![blame-goto-line](assets/blame-goto-line.png) ###### Added * support choosing checkout branch method when status is not empty [[@fatpandac](https://github.com/fatpandac)] ([#2404](https://github.com/extrawurst/gitui/issues/2404)) * support pre-push hook [[@xlai89](https://github.com/xlai89)] ([#1933](https://github.com/extrawurst/gitui/issues/1933)) * message tab supports pageUp and pageDown [[@xlai89](https://github.com/xlai89)] ([#2623](https://github.com/extrawurst/gitui/issues/2623)) * files and status tab support pageUp and pageDown [[@fatpandac](https://github.com/fatpandac)] ([#1951](https://github.com/extrawurst/gitui/issues/1951)) * support loading custom syntax highlighting themes from a file [[@acuteenvy](https://github.com/acuteenvy)] ([#2565](https://github.com/gitui-org/gitui/pull/2565)) * select syntax highlighting theme out of the defaults from syntect [[@vasilismanol](https://github.com/vasilismanol)] ([#1931](https://github.com/extrawurst/gitui/issues/1931)) * new command-line option to override the default log file path (`--logfile`) [[@acuteenvy](https://github.com/acuteenvy)] ([#2539](https://github.com/gitui-org/gitui/pull/2539)) * dx: `make check` checks Cargo.toml dependency ordering using `cargo sort` [[@naseschwarz](https://github.com/naseschwarz)] * add `use_selection_fg` to theme file to allow customizing selection foreground color [[@Upsylonbare](https://github.com/Upsylonbare)] ([#2515](https://github.com/gitui-org/gitui/pull/2515)) * add "go to line" command for the blame view [[@andrea-berling](https://github.com/andrea-berling)] ([#2262](https://github.com/extrawurst/gitui/pull/2262)) * add `--file` cli flag to open the files tab with the given file already selected [[@laktak](https://github.com/laktak)] ([#2510](https://github.com/gitui-org/gitui/issues/2510)) * add the ability to specify a custom keybinding/symbols file via the cli [[@0x61nas](https://github.com/0x61nas)] ([#2731](https://github.com/gitui-org/gitui/pull/2731)) ###### Changed * execute git-hooks directly if possible (on *nix) else use sh instead of bash (without reading SHELL variable) [[@Joshix](https://github.com/Joshix-1)] ([#2483](https://github.com/extrawurst/gitui/pull/2483)) * improve error messages [[@acuteenvy](https://github.com/acuteenvy)] ([#2617](https://github.com/gitui-org/gitui/pull/2617)) * improve syntax highlighting file detection [[@acuteenvy](https://github.com/acuteenvy)] ([#2524](https://github.com/extrawurst/gitui/pull/2524)) * after commit: jump back to unstaged area [[@tommady](https://github.com/tommady)] ([#2476](https://github.com/extrawurst/gitui/issues/2476)) * the default key to close the commit error message popup is now the Escape key [[@wessamfathi](https://github.com/wessamfathi)] ([#2552](https://github.com/extrawurst/gitui/issues/2552)) * use OSC52 copying in case other methods fail [[@naseschwarz](https://github.com/naseschwarz)] ([#2366](https://github.com/gitui-org/gitui/issues/2366)) * push: respect `branch.*.merge` when push default is upstream [[@vlad-anger](https://github.com/vlad-anger)] ([#2542](https://github.com/gitui-org/gitui/pull/2542)) * set the terminal title to `gitui ({repo_path})` [[@acuteenvy](https://github.com/acuteenvy)] ([#2462](https://github.com/gitui-org/gitui/issues/2462)) * respect `.mailmap` [[@acuteenvy](https://github.com/acuteenvy)] ([#2406](https://github.com/gitui-org/gitui/issues/2406)) * use `gitoxide` for `get_tags` [[@cruessler](https://github.com/cruessler)] ([#2664](https://github.com/gitui-org/gitui/issues/2664)) * increase MSRV to 1.82 ###### Fixes * resolve `core.hooksPath` relative to `GIT_WORK_TREE` [[@naseschwarz](https://github.com/naseschwarz)] ([#2571](https://github.com/gitui-org/gitui/issues/2571)) * yanking commit ranges no longer generates incorrect dotted range notations, but lists each individual commit _[Truncated at 4000 characters — full notes: https://github.com/gitui-org/gitui/releases/tag/v0.28.0]_ ### v0.28.0-rc.2 - Date: 2025-12-14 - Version: v0.28.0-rc.2 - Original notes: https://github.com/gitui-org/gitui/releases/tag/v0.28.0-rc.2 - Permalink: https://whatsnew.fyi/product/gitui/releases/v0.28.0-rc.2 - Labels: Pre-release; Platforms: Desktop - **added** — Support choosing checkout branch method when status is not empty - **added** — Support pre-push hook - **added** — Message tab supports pageUp and pageDown - **added** — Files and status tab support pageUp and pageDown - **added** — Support loading custom syntax highlighting themes from a file - **added** — Select syntax highlighting theme out of the defaults from syntect - **added** — New command-line option to override the default log file path (--logfile) - **added** — Add use_selection_fg to theme file to allow customizing selection foreground color - **added** — Add go to line command for the blame view - **added** — Add --file cli flag to open the files tab with the given file already selected - **added** — Add the ability to specify a custom keybinding/symbols file via the cli - **changed** — Execute git-hooks directly if possible (on *nix) else use sh instead of bash - **changed** — Improve error messages - **changed** — Improve syntax highlighting file detection - **changed** — After commit: jump back to unstaged area - **changed** — The default key to close the commit error message popup is now the Escape key - **changed** — Use OSC52 copying in case other methods fail - **changed** — Push: respect branch.*.merge when push default is upstream - **changed** — Set the terminal title to gitui ({repo_path}) - **changed** — Respect .mailmap - **changed** — Use gitoxide for get_tags - **changed** — Increase MSRV to 1.82 - **fixed** — Resolve core.hooksPath relative to GIT_WORK_TREE - **fixed** — Yanking commit ranges no longer generates incorrect dotted range notations, but lists each individual commit - **fixed** — Print slightly nicer errors when failing to create a directory - **fixed** — When the terminal is insufficient to display all the commands, the cmdbar_bg configuration color does not fully take effect - **fixed** — Disable blame and history popup keybinds for untracked files - **fixed** — Overwrites committer on amend of unsigned commits **discard changes on checkout** ![discard-changes-on-checkout](assets/discard-changes-on-checkout.png) **go to line in blame** ![blame-goto-line](assets/blame-goto-line.png) ###### Added * support choosing checkout branch method when status is not empty [[@fatpandac](https://github.com/fatpandac)] ([#2404](https://github.com/extrawurst/gitui/issues/2404)) * support pre-push hook [[@xlai89](https://github.com/xlai89)] ([#1933](https://github.com/extrawurst/gitui/issues/1933)) * message tab supports pageUp and pageDown [[@xlai89](https://github.com/xlai89)] ([#2623](https://github.com/extrawurst/gitui/issues/2623)) * files and status tab support pageUp and pageDown [[@fatpandac](https://github.com/fatpandac)] ([#1951](https://github.com/extrawurst/gitui/issues/1951)) * support loading custom syntax highlighting themes from a file [[@acuteenvy](https://github.com/acuteenvy)] ([#2565](https://github.com/gitui-org/gitui/pull/2565)) * select syntax highlighting theme out of the defaults from syntect [[@vasilismanol](https://github.com/vasilismanol)] ([#1931](https://github.com/extrawurst/gitui/issues/1931)) * new command-line option to override the default log file path (`--logfile`) [[@acuteenvy](https://github.com/acuteenvy)] ([#2539](https://github.com/gitui-org/gitui/pull/2539)) * dx: `make check` checks Cargo.toml dependency ordering using `cargo sort` [[@naseschwarz](https://github.com/naseschwarz)] * add `use_selection_fg` to theme file to allow customizing selection foreground color [[@Upsylonbare](https://github.com/Upsylonbare)] ([#2515](https://github.com/gitui-org/gitui/pull/2515)) * add "go to line" command for the blame view [[@andrea-berling](https://github.com/andrea-berling)] ([#2262](https://github.com/extrawurst/gitui/pull/2262)) * add `--file` cli flag to open the files tab with the given file already selected [[@laktak](https://github.com/laktak)] ([#2510](https://github.com/gitui-org/gitui/issues/2510)) * add the ability to specify a custom keybinding/symbols file via the cli [[@0x61nas](https://github.com/0x61nas)] ([#2731](https://github.com/gitui-org/gitui/pull/2731)) ###### Changed * execute git-hooks directly if possible (on *nix) else use sh instead of bash (without reading SHELL variable) [[@Joshix](https://github.com/Joshix-1)] ([#2483](https://github.com/extrawurst/gitui/pull/2483)) * improve error messages [[@acuteenvy](https://github.com/acuteenvy)] ([#2617](https://github.com/gitui-org/gitui/pull/2617)) * improve syntax highlighting file detection [[@acuteenvy](https://github.com/acuteenvy)] ([#2524](https://github.com/extrawurst/gitui/pull/2524)) * after commit: jump back to unstaged area [[@tommady](https://github.com/tommady)] ([#2476](https://github.com/extrawurst/gitui/issues/2476)) * the default key to close the commit error message popup is now the Escape key [[@wessamfathi](https://github.com/wessamfathi)] ([#2552](https://github.com/extrawurst/gitui/issues/2552)) * use OSC52 copying in case other methods fail [[@naseschwarz](https://github.com/naseschwarz)] ([#2366](https://github.com/gitui-org/gitui/issues/2366)) * push: respect `branch.*.merge` when push default is upstream [[@vlad-anger](https://github.com/vlad-anger)] ([#2542](https://github.com/gitui-org/gitui/pull/2542)) * set the terminal title to `gitui ({repo_path})` [[@acuteenvy](https://github.com/acuteenvy)] ([#2462](https://github.com/gitui-org/gitui/issues/2462)) * respect `.mailmap` [[@acuteenvy](https://github.com/acuteenvy)] ([#2406](https://github.com/gitui-org/gitui/issues/2406)) * use `gitoxide` for `get_tags` [[@cruessler](https://github.com/cruessler)] ([#2664](https://github.com/gitui-org/gitui/issues/2664)) * increase MSRV to 1.82 ###### Fixes * resolve `core.hooksPath` relative to `GIT_WORK_TREE` [[@naseschwarz](https://github.com/naseschwarz)] ([#2571](https://github.com/gitui-org/gitui/issues/2571)) * yanking commit ranges no longer generates incorrect dotted range notations, but lists each individual commit _[Truncated at 4000 characters — full notes: https://github.com/gitui-org/gitui/releases/tag/v0.28.0-rc.2]_ ### v0.27.0 - Date: 2025-01-14 - Version: v0.27.0 - Original notes: https://github.com/gitui-org/gitui/releases/tag/v0.27.0 - Permalink: https://whatsnew.fyi/product/gitui/releases/v0.27.0 - Labels: Platforms: Desktop - **changed** — Use default shell instead of bash on Unix-like OS - **added** — Add popups for viewing, adding, updating and removing remotes - **added** — Support for Copy Path action in WSL - **added** — Help popup scrollbar - **fixed** — Respect env vars like GIT_CONFIG_GLOBAL - **fixed** — Set CREATE_NO_WINDOW flag when executing Git hooks on Windows **new: manage remotes** ![add-remote](assets/add-remote.png) ###### Breaking Changes * use default shell instead of bash on Unix-like OS [[@yerke](https://github.com/yerke)] ([#2343](https://github.com/extrawurst/gitui/pull/2343)) ###### Added * add popups for viewing, adding, updating and removing remotes [[@robin-thoene](https://github.com/robin-thoene)] ([#2172](https://github.com/extrawurst/gitui/issues/2172)) * support for `Copy Path` action in WSL [[@johnDeSilencio](https://github.com/johnDeSilencio)] ([#2413](https://github.com/extrawurst/gitui/pull/2413)) * help popup scrollbar [[@wugeer](https://github.com/wugeer)] ([#2388](https://github.com/extrawurst/gitui/pull/2388)) ###### Fixes * respect env vars like `GIT_CONFIG_GLOBAL` ([#2298](https://github.com/extrawurst/gitui/issues/2298)) * Set `CREATE_NO_WINDOW` flag when executing Git hooks on Windows ([#2371](https://github.com/extrawurst/gitui/pull/2371)) ### v0.27.0-rc.1 - Date: 2025-01-13 - Version: v0.27.0-rc.1 - Original notes: https://github.com/gitui-org/gitui/releases/tag/v0.27.0-rc.1 - Permalink: https://whatsnew.fyi/product/gitui/releases/v0.27.0-rc.1 - Labels: Pre-release; Platforms: Desktop - **added** — Add popups for viewing, adding, updating and removing remotes - **added** — Support for Copy Path action in WSL - **added** — Help popup scrollbar - **changed** — Use default shell instead of bash on Unix-like OS - **fixed** — Respect env vars like GIT_CONFIG_GLOBAL - **fixed** — Set CREATE_NO_WINDOW flag when executing Git hooks on Windows **new: manage remotes** ![add-remote](assets/add-remote.png) ###### Breaking Changes * use default shell instead of bash on Unix-like OS [[@yerke](https://github.com/yerke)] ([#2343](https://github.com/extrawurst/gitui/pull/2343)) ###### Added * add popups for viewing, adding, updating and removing remotes [[@robin-thoene](https://github.com/robin-thoene)] ([#2172](https://github.com/extrawurst/gitui/issues/2172)) * support for `Copy Path` action in WSL [[@johnDeSilencio](https://github.com/johnDeSilencio)] ([#2413](https://github.com/extrawurst/gitui/pull/2413)) * help popup scrollbar [[@wugeer](https://github.com/wugeer)] ([#2388](https://github.com/extrawurst/gitui/pull/2388)) ###### Fixes * respect env vars like `GIT_CONFIG_GLOBAL` ([#2298](https://github.com/extrawurst/gitui/issues/2298)) * Set `CREATE_NO_WINDOW` flag when executing Git hooks on Windows ([#2371](https://github.com/extrawurst/gitui/pull/2371)) ### v0.26.3 - Date: 2024-06-02 - Version: v0.26.3 - Original notes: https://github.com/gitui-org/gitui/releases/tag/v0.26.3 - Permalink: https://whatsnew.fyi/product/gitui/releases/v0.26.3 - Labels: Platforms: Desktop - **changed** — Theme file format for color definitions changed from Some(White) to Some("White") and now supports hex format like Some("#00ff00") - **added** — Added support for intel x86 apple build in nightlies and releases as separate artifact - **added** — Added support for BUILD_GIT_COMMIT_ID environment variable to enable builds from git archive generated source tarballs or outside a git repository - **fixed** — Updated yanked dependency to libc to fix building with --locked ###### Breaking Changes ###### Theme file format **note:** this actually applied to the previous release already: `0.26.2` Ratatui (upstream terminal rendering crate) changed its serialization format for Colors. So the theme files have to be adjusted. `selection_fg: Some(White)` -> `selection_fg: Some("White")` but this also allows us now to define colors in the common hex format: `selection_fg: Some(Rgb(0,255,0))` -> `selection_fg: Some("#00ff00")` Checkout [THEMES.md](./THEMES.md) for more info. ###### Added * due to github runner changes, the regular mac build is now arm64, so we added support for intel x86 apple build in nightlies and releases (via separat artifact) * support `BUILD_GIT_COMMIT_ID` enabling builds from `git archive` generated source tarballs or other outside a git repo [[@alerque](https://github.com/alerque)] ([#2187](https://github.com/extrawurst/gitui/pull/2187)) ###### Fixes * update yanked dependency to `libc` to fix building with `--locked`. * document breaking change in theme file format. ###### Support [![github](https://img.shields.io/badge/-GitHub%20Sponsors-fafbfc?logo=GitHub%20Sponsors)](https://github.com/sponsors/extrawurst) ### v0.26.3-rc.1 - Date: 2024-06-02 - Version: v0.26.3-rc.1 - Original notes: https://github.com/gitui-org/gitui/releases/tag/v0.26.3-rc.1 - Permalink: https://whatsnew.fyi/product/gitui/releases/v0.26.3-rc.1 - Labels: Pre-release; Platforms: Desktop - **changed** — Theme file format now requires quoted color names and supports hex color format (selection_fg: Some("White") and selection_fg: Some("#00ff00")) - **added** — Support intel x86 apple build in nightlies and releases - **added** — Support BUILD_GIT_COMMIT_ID enabling builds from git archive generated source tarballs or other outside a git repo - **fixed** — Update yanked dependency to libc to fix building with --locked ###### Breaking Changes ###### Theme file format **note:** this actually applied to the previous release already: `0.26.2` Ratatui (upstream terminal rendering crate) changed its serialization format for Colors. So the theme files have to be adjusted. `selection_fg: Some(White)` -> `selection_fg: Some("White")` but this also allows us now to define colors in the common hex format: `selection_fg: Some(Rgb(0,255,0))` -> `selection_fg: Some("#00ff00")` Checkout [THEMES.md](./THEMES.md) for more info. ###### Added * support intel x86 apple build in nightlies and releases * support `BUILD_GIT_COMMIT_ID` enabling builds from `git archive` generated source tarballs or other outside a git repo [[@alerque](https://github.com/alerque)] ([#2187](https://github.com/extrawurst/gitui/pull/2187)) ###### Fixes * update yanked dependency to `libc` to fix building with `--locked`. * document breaking change in theme file format. ### v0.26.2 - Date: 2024-05-18 - Version: v0.26.2 - Original notes: https://github.com/gitui-org/gitui/releases/tag/v0.26.2 - Permalink: https://whatsnew.fyi/product/gitui/releases/v0.26.2 - Labels: Platforms: Desktop - **fixed** — Fix cargo install without --locked - **fixed** — Respect configuration for remote when fetching and pulling - **fixed** — Add : character to sign-off trailer to comply with Conventional Commits standard - **added** — Support overriding build_date for reproducible builds ###### Fixes * fix `cargo install` without `--locked` ([#2098](https://github.com/extrawurst/gitui/issues/2098)) * respect configuration for remote when fetching (also applies to pulling) [[@cruessler](https://github.com/cruessler)] ([#1093](https://github.com/extrawurst/gitui/issues/1093)) * add `:` character to sign-off trailer to comply with Conventinoal Commits standard [@semioticrobotic](https://github.com/semioticrobotic) ([#2196](https://github.com/extrawurst/gitui/issues/2196)) ###### Added * support overriding `build_date` for [reproducible builds](https://reproducible-builds.org/) [[@bmwiedemann](https://github.com/bmwiedemann)] ([#2202](https://github.com/extrawurst/gitui/pull/2202)) ###### Support [![github](https://img.shields.io/badge/-GitHub%20Sponsors-fafbfc?logo=GitHub%20Sponsors)](https://github.com/sponsors/extrawurst) ### v0.26.2-rc.1 - Date: 2024-05-16 - Version: v0.26.2-rc.1 - Original notes: https://github.com/gitui-org/gitui/releases/tag/v0.26.2-rc.1 - Permalink: https://whatsnew.fyi/product/gitui/releases/v0.26.2-rc.1 - Labels: Pre-release; Platforms: Desktop