Ziggity
Ultra-fast Git terminal UI built in Zig offering line and hunk staging, interactive rebases, diff previews, DAG history, multi-selection, customizable themes, background fetch, and non-blocking operations for a streamlined, keyboard-first Git workflow.
Features
Properties
- Lightweight
- Privacy focused
Features
- No Tracking
- Ad-free
- Command line interface
Git Support
Git integration
- Keyboard Navigation
- Support for Keyboard Shortcuts
- Tui
- Terminal-based
Ziggity News & Activities
Recent activities
Ziggity information
What is Ziggity?
Ziggity puts your whole Git workflow in one terminal window: stage single lines, commit, branch, rebase interactively, and read history without ever reaching for the mouse. Every list has a live diff preview, every action is a keystroke, and nothing ever blocks the interface.
It follows the workflow that lazygit made popular, and it owes that project a lot. It is not a port, though. Ziggity is written from scratch in Zig, drives plain git subprocesses (no libgit2), and in the places where the two tools differ, the difference is deliberate. The section below explains exactly where and why.
Highlights:
- The whole workflow: status, files, branches, commits, and stash panels with diff previews and a footer that follows context.
- Staging down to the line: enter a file to stage single lines or hunks, with an optional split view showing unstaged and staged side by side.
- Full interactive rebase: drop, squash, fixup, edit, reword and move per commit, a plan editor (i), cherry picking, custom patch building, autosquash, and rebase --onto from a marked base.
- History and inspection: the real git log --graph DAG (ctrl+l) with first parent jumps, ref against ref diffing (W) with reverse and merge base modes, GPG signature verification (x), and log filtering (/).
- Multi selection: v or shift+arrows select a range in any list to act on many files, commits, branches, or stashes at once; * selects a branch's own commits.
- Stays in sync: a quiet background git fetch keeps the incoming commit count current on its own; slow and network operations run off the interface thread while navigation stays live.
- Thoughtful touches: prepare-commit-msg prefill, stash naming, a keep everything snapshot, per stash patch export, and bracketed paste so a pasted multiline message never submits early.
- Lightweight and explicit: one small binary, plain git subprocesses, no libgit2, fully remappable keys, themeable colors, custom commands.






