finds.dev← search

// the find

jesseduffield/lazygit

★ 80,306 · Go · MIT · updated Jul 2026

simple terminal UI for git commands

lazygit is a terminal UI for git that wraps common git operations behind keyboard shortcuts and panels. It's for developers who use git heavily from the terminal but find the raw CLI friction-heavy — especially for interactive rebasing, staging hunks, and managing branches. At 80k stars it's basically the default choice in this category.

The interactive rebase UI is genuinely good — squash, fixup, reorder, and drop commits without touching a text editor or memorizing flags. Staging at the line level (not just hunk level) is something most TUIs get wrong; lazygit gets it right. The custom patch builder lets you surgically extract changes from old commits, which is the kind of thing that would take five git commands and a mistake to do manually. The custom command system is flexible enough that missing features are often just a config entry away, and the undo stack (backed by reflog) gives you a real escape hatch.

The keybinding surface is enormous and there's no good way to discover it incrementally — new users hit a wall of `?` menus that don't teach the mental model. The forked gocui lives in-tree (`pkg/gocui`) rather than pulling from upstream, which means any rendering bugs are the project's problem to fix. GitHub PR integration requires the `gh` CLI to be installed and authenticated, which is a hidden dependency that silently does nothing if missing. Configuration is powerful but the YAML schema is large and underdocumented enough that non-trivial customization requires reading source or the issue tracker.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →