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.

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.