awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com

Git Terminal User Interfaces

Ranking updated Jun 30, 2026

For a terminal UI for staging and committing with git, the first results are jesseduffield/lazygit (Lazygit is a full-featured terminal-based TUI for Git that provides interactive hunk staging, side-by-side diffs, commit composition, and branch management through a keyboard-driven interface, making it an ideal match for this query), jonas/tig (Tig is a mature terminal-based TUI for Git that delivers interactive hunk staging, keyboard-driven navigation, commit message editing, and comprehensive git status and branch management, making it a flagship tool for this use case) and wfxr/forgit (forgit is a shell‑based interactive Git wrapper that uses a fuzzy finder for staging, diffing, and committing, making it a terminal‑friendly interactive client even though it relies on external tools rather than a full‑screen TUI). extrawurst/gitui and magit/magit round out the shortlist. Compare the match explanations and check the project documentation against your requirements.

Interactive command-line tools for staging files, managing commits, and navigating git repositories efficiently.

Git Terminal User Interfaces

Find the best repos with AI.We'll search the best matching repositories with AI.
  • jesseduffield/lazygitjesseduffield avatar

    jesseduffield/lazygit

    79,339View on GitHub↗

    Lazygit is a terminal-based user interface designed to simplify version control operations through a keyboard-driven workflow. It functions as a visual abstraction layer that bridges native commands with an interactive environment, allowing users to manage repository history, branches, and commit workflows without relying solely on manual command-line input. The tool distinguishes itself by automating complex version control tasks that typically require multiple manual steps. It provides specialized interfaces for interactive rebasing, commit history amendment, and binary search-based regress

    Lazygit is a full-featured terminal-based TUI for Git that provides interactive hunk staging, side-by-side diffs, commit composition, and branch management through a keyboard-driven interface, making it an ideal match for this query.

    GoInteractive Staging InterfacesCommit Cherry Picking ToolsRebase Operations
    View on GitHub↗79,339
  • jonas/tigjonas avatar

    jonas/tig

    13,258View on GitHub↗

    Tig is a terminal-based interface for version control systems that functions as an interactive visual layer over standard command-line operations. It provides a text-based environment for navigating commit history, managing staging areas, and inspecting file changes directly within the terminal. By utilizing a split-view layout, the application allows users to view logs, diffs, and status information simultaneously for efficient code analysis. The tool distinguishes itself through a state-driven navigation model that processes piped output from version control utilities into structured, color

    Tig is a mature terminal-based TUI for Git that delivers interactive hunk staging, keyboard-driven navigation, commit message editing, and comprehensive git status and branch management, making it a flagship tool for this use case.

    CInteractive Staging InterfacesKeyboard Shortcut Mappings
    View on GitHub↗13,258
  • wfxr/forgitwfxr avatar

    wfxr/forgit

    5,025View on GitHub↗

    forgit is a shell-based interactive CLI wrapper that uses a fuzzy finder to transform Git output into selection menus. It functions as a workflow accelerator and history browser, replacing manual command entry with searchable interfaces for version control operations. The tool provides specialized managers for Git worktrees and an interactive history browser for visualizing commit logs, reflogs, and blame data. It differentiates itself by wrapping native Git subcommands in selection logic, allowing users to pick targets before executing final operations. Its capabilities cover interactive fi

    forgit is a shell‑based interactive Git wrapper that uses a fuzzy finder for staging, diffing, and committing, making it a terminal‑friendly interactive client even though it relies on external tools rather than a full‑screen TUI.

    ShellInteractive Staging InterfacesRebase Operations
    View on GitHub↗5,025
  • extrawurst/gituiextrawurst avatar

    extrawurst/gitui

    22,118View on GitHub↗

    Gitui is a terminal user interface and repository manager built with Rust. It provides a keyboard-driven visual environment for performing version control operations without the need to type manual command line arguments. The application enables the management of Git branches, commits, and remote synchronization, alongside capabilities for stashing temporary work and managing submodules. It includes support for GPG commit signing to verify identity through cryptographic signatures. Users can customize the experience through keyboard shortcut rebinding and visual theme adjustments. The interf

    Gitui is a full-featured terminal-based Git client with interactive hunk staging, a diff view, commit message editor, and keyboard-driven branch management — exactly the kind of tool you need for staging and committing from the console.

    RustStaging and Commit InterfacesTerminal-Based Version Control InterfacesBranch Management
    View on GitHub↗22,118
  • magit/magitmagit avatar

    magit/magit

    7,138View on GitHub↗

    Magit is a complete Git interface that runs inside Emacs, providing a full-featured porcelain for version control operations without leaving the editor. It renders repository state as structured, collapsible sections within Emacs buffers, and manages Git command execution through a transactional process model with automatic buffer refresh and error handling. The interface exposes all configuration through Emacs' standard customization system and uses a transient command framework for context-sensitive menu-driven Git operations. What distinguishes Magit is its granular control over every stag

    Magit is a complete Git interface, but it runs inside Emacs rather than as a standalone terminal application, so it is not the standalone TUI Git client you are looking for.

    Emacs LispCommit Message EditorsPartial Hunk StagingBranch Checkouts
    View on GitHub↗7,138
  • airblade/vim-gitgutterairblade avatar

    airblade/vim-gitgutter

    8,506View on GitHub↗

    This is a Vim extension that provides Git change visualization and hunk management. It displays markers in the sign column to indicate added, modified, or removed lines relative to the Git index, allowing users to visualize diffs and compare buffer versions side-by-side. The plugin extends the editor's text objects to target specific blocks of modified lines, enabling the use of standard operators on these contiguous hunks. It also provides tools to stage or undo individual blocks of changes directly within the editor. Additional capabilities include navigation utilities for jumping between

    Vim-gitgutter is a Vim plugin that adds Git hunk staging and diff visualization inside the editor, but it's not a standalone terminal-based Git client — it extends an existing TUI editor rather than being a dedicated interactive tool for staging and committing.

    Vim ScriptSide-by-Side Diff ViewersBuffer-Based Hunk Staging
    View on GitHub↗8,506
  • sindresorhus/puresindresorhus avatar

    sindresorhus/pure

    14,084View on GitHub↗

    Pure is an asynchronous command line prompt for Zsh designed to maintain terminal responsiveness while providing real-time system and environment information. It functions as a minimal, themeable interface component that reconstructs its visual state by evaluating shell variables and environment context before every new line. The project distinguishes itself by offloading complex tasks, such as version control status checks and system monitoring, to background processes. This architecture ensures that the terminal interface remains fluid and responsive even when performing intensive status up

    It is a Zsh prompt theme that displays Git status information in the terminal, but it is not an interactive tool for staging and committing changes, which is what you are looking for.

    ShellStatus IntegrationsGit Status Indicators
    View on GitHub↗14,084
  • dandavison/deltadandavison avatar

    dandavison/delta

    31,136View on GitHub↗

    Delta is a command-line pager that enhances the readability of terminal output by applying syntax highlighting and structured formatting to text streams. It functions as a specialized interface for version control systems, transforming standard output into color-coded, human-readable views. The tool distinguishes itself through its ability to render side-by-side diff comparisons and visualize merge conflicts with clear, semantic highlighting. It dynamically calculates column widths and text alignment to fit complex file comparisons within the constraints of a terminal window, while allowing u

    Delta is a command-line pager that enhances diff readability with syntax highlighting and side-by-side views, but it is not an interactive Git TUI for staging, committing, or managing branches—it serves as a diff viewer component rather than a full staging-and-committing client.

    RustSide-by-Side Diff Viewers
    View on GitHub↗31,136
  • lewis6991/gitsigns.nvimlewis6991 avatar

    lewis6991/gitsigns.nvim

    6,575View on GitHub↗

    Gitsigns.nvim is a Neovim plugin that integrates Git diff visualization, blame annotations, and hunk-based staging directly into the editor buffer. It renders add, modify, and delete indicators in the sign column for tracked files, and provides inline or popup blame annotations showing commit authorship and date for each line. The plugin operates on individual diff hunks as atomic units for staging, reverting, and navigation, all executed asynchronously via Neovim's job control API to avoid blocking the UI. The plugin distinguishes itself by enabling hunk-level staging and resetting directly

    Gitsigns.nvim is a Neovim plugin that adds in-editor hunk staging and diff annotations, not a standalone terminal-based interactive Git client like the TUI tool you're looking for.

    LuaInteractive Staging InterfacesBuffer-Based Hunk Staging
    View on GitHub↗6,575
  • go-git/go-gitgo-git avatar

    go-git/go-git

    7,211View on GitHub↗

    This project is a pure Go implementation of the Git version control system, providing a library for integrating versioning and history analysis into applications. It functions as a complete repository manager and object store that does not require external binary dependencies. The implementation utilizes interface-based storage, allowing repositories to be managed on disk or entirely in memory. It supports a transactional storage model to ensure atomic operations and implements a content-addressable storage system using delta-compression packfiles. The library covers a broad range of version

    This is a pure-Go Git library for integrating version control into applications, not a terminal-based interactive client — it provides the underlying plumbing but does not offer a TUI for staging and committing.

    GoBranch CheckoutsBranch Switching
    View on GitHub↗7,211
  • sourcegit-scm/sourcegitsourcegit-scm avatar

    sourcegit-scm/sourcegit

    5,422View on GitHub↗

    SourceGit is a cross-platform desktop Git GUI client and version control tool compatible with Windows, macOS, and Linux. It provides a graphical user interface for cloning, merging, and analyzing code changes, acting as a visual manager for Git repositories. The application includes an AI-powered commit generator to draft standardized commit messages and a pull request manager to initiate and manage merges across supported hosting services via web APIs. The software covers broad version control capabilities, including advanced operations such as interactive rebasing, cherry-picking, and subm

    SourceGit is a desktop GUI client for Git, not a terminal-based (TUI) tool — it provides interactive staging and commit features but through a graphical window rather than the console interface this search is asking for.

    C#Side-by-Side Diff Viewers
    View on GitHub↗5,422
  • rtfpessoa/diff2htmlrtfpessoa avatar

    rtfpessoa/diff2html

    3,321View on GitHub↗

    diff2html is a Git diff visualization library that transforms unified diff text into structured HTML. It serves as a renderer for visualizing code changes in web browsers, providing components to inject stylized diff visualizations and collapsible file lists directly into web page elements. The library enables both side-by-side and line-by-line code comparisons. It includes a syntax highlighting diff viewer that applies language-specific color coding to source code based on file extensions or manual mappings. To maintain alignment during reviews, the project implements synchronized scrolling

    diff2html is a library that renders unified diffs to HTML for web browsers, not a terminal-based interactive Git client for staging and committing, so it falls outside the intended category of console TUI tools.

    TypeScriptSide-by-Side Diff Viewers
    View on GitHub↗3,321
Compare the top 10 at a glance
RepositoryStarsLanguageLicenseLast push
jesseduffield/lazygit79.3KGoMITJun 16, 2026
jonas/tig13.3KCGPL-2.0Jun 13, 2026
wfxr/forgit
5K
Shell
MIT
Jun 16, 2026
extrawurst/gitui22.1KRustMITJun 16, 2026
magit/magit7.1KEmacs LispGPL-3.0Jun 22, 2026
airblade/vim-gitgutter8.5KVim ScriptMITApr 6, 2026
sindresorhus/pure14.1KShellmitFeb 11, 2026
dandavison/delta31.1KRustMITMar 28, 2026
lewis6991/gitsigns.nvim6.6KLuamitFeb 13, 2026
go-git/go-git7.2KGoapache-2.0Feb 20, 2026

Related searches

  • a GUI client for browsing and managing git repositories
  • a project for learning Git by reimplementing it
  • a terminal UI library for building TUIs in Rust
  • a tool for cleaning large files out of git history
  • a VS Code extension for inline git annotations
  • a keyboard driven file manager for terminal
  • a Git-based content CMS
  • a hands-on project for learning systems programming