# Lazygit — Simple Terminal UI for Git Commands > Lazygit is a simple terminal UI for git commands. Stage files, commit, push, rebase, cherry-pick, squash, and browse history without memorizing 30 git commands. Written in Go and designed for speed with vim-style keybindings. ## Install Save the content below to `.claude/skills/` or append to your `CLAUDE.md`: ## Quick Use ```bash # Install brew install lazygit # macOS sudo apt install lazygit # Debian/Ubuntu (PPA or GH) scoop install lazygit # Windows go install github.com/jesseduffield/lazygit@latest # Launch in any git repo lazygit ``` Essential keybindings: - `space` — stage/unstage file - `c` — commit - `P` — push - `p` — pull - `b` — branches panel - `r` — rebase onto - `m` — merge - `z` — undo - `?` — help menu ## Intro Lazygit is a simple terminal UI for git commands written by Jesse Duffield in Go. Replaces the dozens of git command-line verbs with an intuitive TUI: panels for files, branches, commits, stashes, and remotes. Built on gocui with vim-like navigation. - **Repo**: https://github.com/jesseduffield/lazygit - **Stars**: 76K+ - **Language**: Go - **License**: MIT ## What Lazygit Does - **Staging** — stage/unstage files, hunks, or lines interactively - **Commits** — amend, squash, fixup, reword, edit messages - **Branches** — create, checkout, delete, rebase, fast-forward - **Merges/rebases** — visual conflict resolution - **Stashes** — save, apply, drop with previews - **Cherry-picking** — visual across any commits - **Interactive rebase** — move/drop/squash commits in a TUI - **Search** — within the log - **Custom commands** — define your own shortcuts ## Architecture Go binary + gocui TUI library. Wraps `git` commands under the hood — the TUI just orchestrates them. Works in any git repo, no special setup needed. ## Self-Hosting CLI tool. ## Key Features - Interactive staging by hunk or line - Visual rebase and cherry-pick - Conflict resolution helper - Stash management - Command log (see what git commands ran) - Custom commands - Themes - Git LFS, submodules, worktrees - Easy undo with `z` ## Comparison | Tool | Type | Speed | Scope | |---|---|---|---| | Lazygit | TUI | Fast | Full git | | tig | TUI | Fast | History-focused | | gitui | TUI (Rust) | Fastest | Full git | | git CLI | CLI | Fast | Full git | | GitKraken | GUI | Slow | Full git | | Sourcetree | GUI | Slow | Full git | ## FAQ **Q: Where does it beat the command line?** A: For complex operations (interactive rebase, hunk staging, cherry-picking multiple commits), clicking through a TUI is far faster than typing commands. **Q: Can I see what git is actually executing?** A: Press `p` to open the log panel; the bottom-right shows a real-time command log of the git commands actually run. **Q: How do I handle merge conflicts?** A: Lazygit shows conflicted files — press `enter` to open the visual conflict resolver (choose ours/theirs/both). ## Sources & Credits - GitHub: https://github.com/jesseduffield/lazygit - License: MIT --- Source: https://tokrepo.com/en/workflows/lazygit-simple-terminal-ui-git-commands-6ed075de Author: Script Depot