gitwtfhub

wtf is self-hosted-git-client?

teckperry/self-hosted-git-client — explained in plain English

Analysis updated 2026-05-18

26TypeScriptAudience · developerComplexity · 2/5LicenseSetup · easy

TL;DR

A free, open source desktop Git client that runs fully on your machine, with a visual merge editor and safe history rewriting.

Mindmap

mindmap
  root((Git Client))
    What it does
      Local first git client
      No account no telemetry
    Features
      Commit graph
      Merge conflict editor
      Interactive rebase
    Tech Stack
      Electron
      TypeScript
      Vite
    Use Cases
      Manage repos locally
      Resolve conflicts visually
    Platforms
      macOS
      Windows
      Linux

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Manage git repositories locally with no account or telemetry.

REASON 2

Resolve merge conflicts visually with a three-pane editor and line-by-line picks.

REASON 3

Rewrite commit history safely with interactive rebase and reflog-backed undo.

REASON 4

Rebrand the app's name, colors, and graph palette from a single file.

What's in the stack?

ElectronTypeScriptViteNode.js

How it stacks up

teckperry/self-hosted-git-client7etsuo/anvilantonp29/sylvasigner
Stars262626
LanguageTypeScriptTypeScriptTypeScript
Setup difficultyeasymoderatemoderate
Complexity2/53/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · easy Time to first run · 5min

Requires git (and ssh-keygen for the SSH key manager) on your system, building from source needs Node.js 18+.

MIT license: free to use, modify, and redistribute, including commercially, as long as you keep the copyright notice.

Wtf does this do

Self-hosted Git Client is a free, open source desktop Git client that runs entirely on your own machine, with no account, telemetry, or cloud dependency. It talks to your remotes with your own git installation and SSH keys, and even resolves author avatars locally without calling any third party service, so your repositories never leave your computer. The interface centers on a colored commit graph with lanes for every branch, merge edges, and commits grouped by day, the current branch is highlighted and unpushed commits are marked. Branch labels are consolidated to avoid duplicates, and double clicking one checks it out. Staging happens through dedicated staged and unstaged panels with per file stage, unstage, and discard, plus amending commits and editing the last commit message inline. Merge conflicts from a merge, rebase, cherry pick, or revert open a three pane visual editor showing your version and the incoming version on top with the live result below, letting you resolve conflicts line by line, with minimaps and synchronized scrolling, conflicted files cannot be staged until resolved. History can be rewritten through an interactive rebase planner supporting reorder, squash, fixup, and drop, and an undo feature reverses the last branch action using the reflog as a soft reset. The app supports push, pull, and fetch with ahead and behind counters, auto fetches in the background, and offers a safe force push with lease after a rewrite is rejected. A global search reaches across branches, tags, commit messages, authors, hashes, and file names, and the same shortcut searches inside an open diff. Other features include a full page diff viewer with inline or side by side modes and a minimap, branch and tag management, stash creation with editable messages, multiple remotes, opening a commit or branch on your git host, session restoring across repository tabs, full keyboard navigation, an SSH key manager for generating ed25519 or RSA keys, light and dark themes, and update notifications. The app is built with Electron, TypeScript, and Vite, needs git in your system PATH plus ssh-keygen for the SSH key manager, and building from source additionally requires Node.js 18 or later. Prebuilt installers exist for macOS, Windows, and Linux, and the app checks for new releases itself. It is released under the MIT license, and the README notes the visual identity, including name, colors, and the graph palette, can be rebranded from a single file.

Yoink these prompts

Prompt 1
Help me set up this desktop git client from source and run it in dev mode.
Prompt 2
Show me how the three-pane merge conflict editor resolves conflicts line by line.
Prompt 3
Explain how the reflog-backed undo feature reverses a branch action safely.
Prompt 4
Help me rebrand this app's name and color palette using its branding file.

Frequently asked questions

wtf is self-hosted-git-client?

A free, open source desktop Git client that runs fully on your machine, with a visual merge editor and safe history rewriting.

What language is self-hosted-git-client written in?

Mainly TypeScript. The stack also includes Electron, TypeScript, Vite.

What license does self-hosted-git-client use?

MIT license: free to use, modify, and redistribute, including commercially, as long as you keep the copyright notice.

How hard is self-hosted-git-client to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is self-hosted-git-client for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.