Vibeleaderboard
Index / tool
Visit github.com
Category
Developer Tools
Rank
Pricing
Open Source
Type
TOOL
Latest release
v0.65.0
Date

About

Simple terminal UI for git. Stage, commit, rebase, cherry-pick, browse history fast.

What it does

Lazygit presents repository state through keyboard-driven terminal panels for files, branches, commits, reflog, stash, worktrees, remotes, and tags. It supports focused views, path-filtered history, range selection, fixup workflows, stacked branches, and configurable layouts while executing Git operations underneath.

Why it's ranked here

The case for Lazygit is strong because it handles more than routine commit creation. Reflog-based undo, fixup and autosquash support, path-aware history, range operations, repository-specific configuration, and dedicated integration testing make it a serious working interface rather than a thin command menu.

What's good

Its strongest features simplify difficult Git work without hiding the underlying model. Undo reads the reflog across sessions and can reverse eligible actions performed outside Lazygit. Fixup commits, amend commits, autosquashing, stacked-branch visualization, hunk staging, and configurable panels support disciplined history cleanup from one terminal interface.

Tradeoffs

Git 2.32.0 or newer is required. Undo only covers actions represented in the reflog, so working-tree edits, stash changes, branch creation, remote pushes, and operations within an active rebase remain outside its recovery model. Range selection also supports only some actions, and file views currently search rather than fully filter by query.

How to use it well

It suits developers who work primarily in terminals and regularly reshape local commit history. Use it for daily repository navigation, selective staging, fixup review cycles, rebases, and stacked branches. Keep command-line Git knowledge nearby for unsupported recovery cases, active-rebase repair, and operations beyond its reflog-based undo model.

Technical notes+

main.go constructs app.BuildInfo and calls app.Start, while pkg/app/entry_point.go parses CLI flags with Flaggy, merges embedded build metadata, supports repository paths, filtered history, custom configuration locations, alternate work trees and Git directories, logging, profiling, and initial panel selection. pkg/app/app.go validates Git against minGitVersionStr, initializes or opens repositories, loads recent repositories, creates command and GUI layers, and runs the interface. docs/Config.md documents layered YAML configuration, including global, parent-directory, and repository-specific settings plus JSON Schema support. Makefile exposes build, install, formatting, linting, unit-test, and integration-test targets. pkg/integration/clients/cli.go and pkg/integration/clients/injector/main.go implement named integration-test execution through an injected startup path.

Observed

Primary language
Go, declared by the Go module and used throughout the supplied source files.
Interface
Command-line application with an interactive terminal user interface.
Git requirement
Requires Git 2.32.0 or newer.
Packaging and installation
The Makefile provides Go build and install targets; the README also surfaces GitHub Releases and Homebrew.
Platform configuration
Documented global configuration locations cover Linux, macOS, and Windows.
Configuration
YAML configuration supports global, parent-directory, and repository-specific layers, with a published JSON Schema.
Testing structure
The Makefile defines unit and integration targets, and supplied integration client and injector source files provide a dedicated test harness.

Read from README.md, go.mod, Makefile, main.go, pkg/app/app.go, pkg/app/entry_point.go, pkg/integration/clients/cli.go, pkg/integration/clients/injector/main.go, docs/Config.md, docs/README.md, docs/Undoing.md, docs/Searching.md, docs/Range_Select.md, docs/Fixup_Commits.md, docs/Stacked_Branches.md.

Tech Stack

GoDocker

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.