GitFrame: A Git TUI for code review and exploration

GitFrame: A Git TUI for code review and exploration

I’ve developed gitframe, a terminal application for reviewing diffs, committing changes, browsing source code, exploring commit history (with support for selecting multiple commits), comparing and switching branches, and switching repositories. My focus was on making these workflows seamless within a single application.

GitFrame demo

It’s built on Chasen, my own TUI runtime written in Zig. Chasen is built on libvaxis and takes inspiration from Elm’s Msg → update → view application flow. Applications manage their own state and explicitly request runtime effects, such as timers and background tasks.

One design choice was to have view draw directly into a cell-based Surface. This keeps coordinates, styles, and clipping explicit throughout rendering. In GitFrame, child surfaces separate the two sides of a diff and keep drawing within each pane. Cell-level control lets me align line numbers and combine syntax highlighting with diff backgrounds and selection highlights.

Chasen’s core focuses on the application runtime, with UI components and layout built on top.

Supported Zig versions

Zig 0.16.0.

AI / LLM usage disclosure

I make all architectural and key design decisions myself. I use AI/LLMs for implementation.

1 Like

it looks nice is there a reason why only git 2.45.1 is supported ? i have 2.43 on my distro :slight_smile:

Thanks for your interest in GitFrame!
GitFrame is designed to avoid automatically fetching missing objects when browsing history or diffs, so it uses --no-lazy-fetch, introduced in Git 2.45. In testing, I found that 2.45.0 could still trigger a fetch when viewing diffs in partial clones, while 2.45.1 respected the flag. That’s why GitFrame requires 2.45.1 or newer :slightly_smiling_face:

(Since you mentioned Git 2.43, are you on Ubuntu 24.04 by any chance? If so, and if upgrading Git is an option in your environment, I’d appreciate it if you could upgrade via the git-core PPA and give GitFrame a try :folded_hands:)

1 Like

Ok I installed it, and it’s a really cool tool, I think it’s going to be part of my workflow from now on, thanks for the work :slight_smile: oh and the fuzz/filter search is so clutch, godsend tool

1 Like