Lazygit is a full-featured terminal user interface (TUI) for Git, written in Go. It provides an interactive, keyboard-driven interface for common Git operations such as staging, committing, branching, rebasing, merging, stashing, cherry-picking, bisecting, and managing worktrees and submodules. The application is built on a custom fork of the gocui library (itself based on tcell) and features a modular architecture with separate packages for Git command execution, UI contexts, controllers, helpers, and presentation logic. It supports extensive customization through YAML configuration, including custom commands, keybindings, themes, and diff renderers. Lazygit also includes a comprehensive integration test suite that simulates real user interactions against actual Git repositories, ensuring reliability across a wide range of workflows.