A terminal user interface for Git, inspired by Magit, for staging, committing, branching, rebasing and more from the keyboard.
jesseduffield/lazygit
A simple terminal UI for git commands that makes staging, committing, rebasing and branch work faster from the keyboard.
Open-source alternative to:GitKraken
Sourcetree
- Stars
- 83,330
- Forks
- 3,113
- Open issues
- 1,048
- Last commit
- 12 hours ago
What is it?
Lazygit is a terminal user interface for git. It puts the status of your working tree, branches, commits, stash and remotes into a set of panels, so common git operations can be done with single keypresses instead of memorising command-line syntax.
Its main focus is operations that are awkward on the command line: staging individual hunks or lines, interactive rebasing with squash, fixup, drop and reorder, cherry-picking, bisecting, and amending older commits. It also supports worktrees, undo and redo via the reflog, a commit graph, comparing two commits, and custom commands defined in its configuration.
Lazygit is written in Go, installs as a single binary on Windows, macOS and Linux, and can show GitHub pull request status when the gh CLI is installed.
Key features
- 01Stage individual hunks or lines directly from the diff view.
- 02Interactive rebase with squash, fixup, drop, edit and reorder of commits.
- 03Cherry-pick, bisect, and amend older commits without manual rebasing.
- 04Worktree creation and switching from the branches view.
- 05Undo and redo git actions using the reflog.
- 06Custom commands and keybindings defined through configuration.
Use cases
- Splitting a large working-tree change into several focused commits.
- Cleaning up a feature branch with interactive rebase before opening a pull request.
- Tracking down a regression with git bisect in a terminal-only environment.
- Working on several branches at once using worktrees.
Topics
FAQ
- What is lazygit?
- A simple terminal UI for git commands that makes staging, committing, rebasing and branch work faster from the keyboard. Lazygit is a terminal user interface for git. It puts the status of your working tree, branches, commits, stash and remotes into a set of panels, so common git operations can be done with single keypresses instead of memorising command-line syntax.
- Is lazygit free to use? What license does it have?
- lazygit is open source under the MIT license. Check the license terms before using it in commercial products.
- Is lazygit still maintained?
- Actively maintained. The last commit to lazygit was on Oct 21, 2026.
- What can I use lazygit for?
- Splitting a large working-tree change into several focused commits. Cleaning up a feature branch with interactive rebase before opening a pull request. Tracking down a regression with git bisect in a terminal-only environment. Working on several branches at once using worktrees.
- Where can I get lazygit?
- The source code and installation instructions are on GitHub: https://github.com/jesseduffield/lazygit
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A terminal tool that replays Git commits as animated typing sessions with syntax highlighting and file tree transitions.
A terminal UI that renders a git commit graph as images, similar to git log --graph --all, for browsing repository history.
A cat(1) clone for the terminal with syntax highlighting, Git change markers, and automatic paging.
A terminal markdown reader and renderer that displays .md files and repos with styled formatting in the CLI.
A customizable status line for Claude Code CLI that shows model, git branch, token usage, usage limits and more, with Powerline support and themes.