GitComet is a free, open source version control & collaboration project written in Rust and released under AGPL-3.0. It has 845 GitHub stars, 46 forks and 56 open issues, and was last pushed 14 hours ago. On this registry it ranks #26 of 30 tracked projects in Version Control & Collaboration, with 5 head-to-head comparisons available. It gained 16 stars over the last 6 tracked days.

What is GitComet?

GitComet is a free, local-first Git graphical client written in Rust, aimed at developers and teams who need fast browsing, staging, and diffing of very large repositories without their code leaving the machine.

What it is

GitComet is a cross-platform desktop application for Git workflows, distributed as a GUI for Linux, Windows, and macOS. It lives in the Git client ecosystem and is implemented in Rust, with the UI built on GPUI and the Git backend exposed through the gix feature alongside ui-gpui in the build. The project is published by Auto-Explore under the AGPL-3.0 licence, documents itself at gitcomet.dev, and ships as open source with prebuilt installers.

The concrete problem it solves is responsiveness. The README states that GitComet started from frustration with existing tools on huge codebases such as Chromium, where no product stayed responsive and functional while browsing large repositories and file diffs. In that sense it replaces two things: the terminal-driven sequence of git status, git add, git log, and git diff commands, and heavier GUI Git clients that stall on repositories of that size. It also replaces standalone diff and merge utilities, because it can be invoked directly by git difftool and git mergetool as a headless-capable external tool.

Key capabilities

  • Full local-first desktop workflow covering Git remotes, pull and push, staging, and commits.
  • Worktree support, branching, and full repository history browsing.
  • Multi-repository browsing from a single application window.
  • Inline and side-by-side diffs, plus 2-way and 3-way merge tools.
  • Standalone diff and merge usage invoked through git difftool and git mergetool.
  • Cross-platform distribution: Microsoft Store and portable binaries on Windows, a Homebrew cask (brew install --cask gitcomet) on macOS and Linux that installs an AppImage on Linux, plus APT repository, AUR, GURU, .deb, and tarball packages.
  • Build from source with cargo build -p gitcomet --features ui-gpui,gix and run with cargo run -p gitcomet --features ui-gpui,gix -- /path/to/repo.

Who uses it and how

  • Developers working on very large codebases, the Chromium-scale case the README cites as the project's origin, who need diffs and history browsing to stay responsive.
  • Teams that require local-first privacy, since the core workflow keeps repositories on the machine and does not depend on a hosted service.
  • Users who want one tool for both the GUI and the command line, configuring GitComet as the git difftool and git mergetool target.
  • Multi-repository maintainers who switch between several checkouts during the day.
  • Linux users on Debian, Ubuntu, Arch, or Gentoo installing through apt, AUR, or GURU, including WSLg setups that need libxcb1, libxkbcommon0, and libxkbcommon-x11-0 installed separately for tarball or Homebrew binaries.

Getting started

Download the prebuilt binaries or installers from GitHub Releases, or install through a package channel such as brew install --cask gitcomet, the APT repository, AUR, GURU, or the Microsoft Store. Source builds use cargo build -p gitcomet --features ui-gpui,gix; either way, GitComet requires a local Git installation of 2.50 or newer.

How it compares

The provided facts name no competing Git clients, so no direct product comparison can be made on licence, self-hosting, or cost. On the evidence available, GitComet stands alone in this registry as a local-first, AGPL-3.0 desktop Git client whose distinguishing claim is performance on very large repositories.

When to use it — and when not to

A self-hoster or adopter must already run Git 2.50 or newer locally, and users on Debian, Ubuntu, or WSLg installing from a tarball or Homebrew binary rather than the official apt package must also install the GUI runtime libraries by hand. The paid Professional edition, a €20 lifetime tier, is planned to gate the Claude Code, Codex, GitHub CLI, GitHub, and Azure DevOps integrations, so anyone needing those integrations today should not expect them in the open source build. The README excerpt is also truncated mid-sentence in the headless section, and the repository carries 56 open issues, so tooling beyond the documented desktop path may be less finished than the core GUI.

project readme (upstream, from github) — read inline

GitComet

Build Status Discord Website AutoExplore license latest downloads

Fastest Open Source Git GUI

GitComet is built for teams that want fast Git operations with local-first privacy, familiar workflows, and open source freedom.

Available for Linux, Windows, and macOS.

Download

Download the latest prebuilt binaries/installers from GitHub Releases.

Windows

Download the latest Windows installer or portable binary from GitHub Releases.

Install from the Microsoft Store:

Homebrew (macOS / Linux)

App and gitcomet command from tap:

brew install --cask gitcomet

On Linux, the cask installs the AppImage build. If your system cannot launch AppImages, use the APT repo, AUR package, release tarball, or .deb instead.

AUR (Arch Linux)
git clone https://aur.archlinux.org/gitcomet.git
cd gitcomet && makepkg -si
GURU (Gentoo Linux)
emerge --ask dev-vcs/gitcomet
apt (Debian/Ubuntu)
curl -fsSL https://apt.gitcomet.dev/gitcomet-archive-keyring.gpg | sudo tee /usr/share/keyrings/gitcomet-archive-keyring.gpg >/dev/null
curl -fsSL https://apt.gitcomet.dev/gitcomet.sources | sudo tee /etc/apt/sources.list.d/gitcomet.sources >/dev/null
sudo apt update
sudo apt install gitcomet

If you install a Linux tarball or Homebrew binary on Debian, Ubuntu, or WSLg instead of the official apt package, install the GUI runtime libraries separately:

sudo apt install libxcb1 libxkbcommon0 libxkbcommon-x11-0

Requirements

GitComet requires a local Git installation of 2.50 or newer.

GitComet User Survey

We’re running this short survey to better understand how people use our Git GUI client in their daily work. Your feedback will help us improve the product and prioritize the features that matter most.

https://docs.google.com/forms/d/e/1FAIpQLSd8DKIl222UomSXrpv1q9rWodRlBSQo9pJDD62GbZEANTgD1A/viewform?usp=dialog

Why GitComet

GitComet started from frustration with existing tools on huge codebases like Chromium. We could not find a product that stays responsive and functional when browsing large repositories and file diffs.

Editions (planned)

Open Source
  • Price: €0 forever
  • Usage: Free for personal and commercial use
  • Includes:
    • Full local-first desktop workflow
    • Git remotes, pull/push, staging, commits
    • Worktrees, branching, and full history
    • Multi-repository browsing
    • Inline and side-by-side diffs
    • 2-way and 3-way merge tools
Professional
  • Price: €20 lifetime access (limited-time early adopter offer)
  • Includes everything in Open Source, plus:
    • Claude Code, Codex, and GitHub CLI integrations
    • Code test coverage workflows
    • GitHub and Azure DevOps integrations
    • Priority improvements during early access
  • Join waitlist: gitcomet.dev/#editions

Build from source

cargo build -p gitcomet --features ui-gpui,gix
cargo run -p gitcomet --features ui-gpui,gix -- /path/to/repo

Contributing

Developer setup, workspace layout, testing, and coverage docs live in CONTRIBUTING.md.

Using as a Git difftool / mergetool

GitComet can be used as a standalone diff and merge tool invoked by git difftool and git mergetool. It supports both headless (algorithm-only) and GUI (interactive GPUI window) modes.

Setup / uninstall (recommended)
# Configure Git globally to use GitComet for both difftool + mergetool
gitcomet setup

# Remove GitComet integration safely
gitcomet uninstall
  • Use --local to target only the current repository instead of global config.
  • Use --dry-run to print the commands before applying changes.

This setup registers both headless and GUI variants with guiDefault=auto, so Git chooses GUI when display is available and falls back to headless otherwise. setup/uninstall are designed to be idempotent.

Show detailed setup/uninstall behavior and manual commands

Built-in setup writes these Git config entries:

GITCOMET_BIN="/absolute/path/to/gitcomet"

# Headless tool: algorithm-only merge/diff for CI, scripts, and no-display environments
git config --global merge.tool gitcomet
git config --global mergetool.gitcomet.cmd \
  "'$GITCOMET_BIN' mergetool --base \"\$BASE\" --local \"\$LOCAL\" --remote \"\$REMOTE\" --merged \"\$MERGED\""
git config --global mergetool.trustExitCode true
git config --global mergetool.gitcomet.trustExitCode true
git config --global mergetool.prompt false

git config --global diff.tool gitcomet
git config --global difftool.gitcomet.cmd \
  "'$GITCOMET_BIN' difftool --local \"\$LOCAL\" --remote \"\$REMOTE\" --path \"\$MERGED\""
git config --global difftool.trustExitCode true
git config --global difftool.gitcomet.trustExitCode true
git config --global difftool.prompt false

# GUI tool: opens focused GPUI windows for interactive diff/merge
git config --global merge.guitool gitcomet-gui
git config --global mergetool.gitcomet-gui.cmd \
  "'$GITCOMET_BIN' mergetool --gui --base \"\$BASE\" --local \"\$LOCAL\" --remote \"\$REMOTE\" --merged \"\$MERGED\""
git config --global mergetool.gitcomet-gui.trustExitCode true

git config --global diff.guitool gitcomet-gui
git config --global difftool.gitcomet-gui.cmd \
  "'$GITCOMET_BIN' difftool --gui --local \"\$LOCAL\" --remote \"\$REMOTE\" --path \"\$MERGED\""
git config --global difftool.gitcomet-gui.trustExitCode true

# Auto-select GUI tool when DISPLAY is available, headless otherwise
git config --global mergetool.guiDefault auto
git config --global difftool.guiDefault auto

Built-in setup stores previous user values for shared generic keys under gitcomet.backup.* (when needed).
Built-in uninstall restores those backups only when the key still has the setup-managed value. If the user changed a setting after setup, uninstall preserves that user-edited value and then removes GitComet-specific keys.

CLI modes

Difftool:

gitcomet difftool --local <path> --remote <path> [--path <display_name>] [--label-left <label>] [--label-right <label>]

Also reads LOCAL/REMOTE from environment as a fallback when invoked by Git.

Mergetool:

gitcomet mergetool --local <path> --remote <path> --merged <path> [--base <path>] [--label-local <label>] [--label-remote <label>] [--label-base <label>]

Also reads LOCAL/REMOTE/MERGED/BASE from environment. Base is optional for add/add conflicts.

Compatibility

KDiff3 and Meld invocation forms are supported (--L1/--L2/--L3, -o/--output/--out, --base, positional arguments), so GitComet can be a drop-in replacement.

Themes

GitComet supports built-in themes and user-provided custom themes.

Built-in themes are embedded in the GitComet binary. Custom themes are loaded from JSON bundle files in your per-user themes directory, which GitComet creates on startup.

The full theme guide, including file locations, schema details, example bundles, and override behavior, now lives in THEMES.md.

Crash logs

GitComet writes panic logs and abnormal-exit recovery state to:

  • Linux: $XDG_STATE_HOME/gitcomet/crashes/ (fallback: ~/.local/state/gitcomet/crashes/)
  • macOS: ~/Library/Logs/gitcomet/crashes/
  • Windows: %LOCALAPPDATA%\gitcomet\crashes\ (fallback: %APPDATA%\gitcomet\crashes\)

On Linux, the directory normally is ~/.local/state/gitcomet/crashes/. GitComet creates a process-spe

readme truncated — read the full docs on github

Frequently asked questions

Is GitComet free to use?

GitComet is open source under the AGPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does GitComet do?

Fast, local-first Git GUI built in Rust

What is GitComet written in?

GitComet is primarily written in Rust. Its source is publicly available at https://github.com/Auto-Explore/GitComet, and it has 845 GitHub stars.