A native Git client for everyday work. macOS, Windows and Linux.
I use Git all day and every client I tried felt like a website wearing a coat. Slow to open, heavy on disk, a login screen before the first commit. So I wrote one. The engine is libgit2 through Rust, the window is the webview your OS already ships, and the rule for what gets in is simple: the things you do every day, done properly, and not much else.
It's free, MIT licensed, and there is no account, no telemetry and no cloud. Everything on this page is on angkorgit.app as well.
The graph. Virtualized, so a hundred thousand commits scroll like fifty. Drag a branch onto another to merge or rebase, and a merge from the app is always a real merge commit. Ref chips show the whole name or fold behind a count. Paste a hash into the search and it jumps there. ⌘Z undoes the merge if you picked the wrong branch.
Conflicts you can read. Both sides in one view with line numbers on each. One checkbox takes a whole side, a plus on hover takes one line, and the result pane is an editor you can type into. Nothing touches the file until you press Mark resolved.
Worktrees. A second checkout of the same repository in a sibling folder, for a hotfix or an AI agent while your real work sits untouched. The sidebar lists them, each opens as its own tab, and checking out a branch that is already open in another folder takes you there instead.
Everything else you reach for. Stage files, hunks or single lines. Commit with a summary and a description, amend, revert, reset. Interactive rebase, cherry-pick one or many, stash, tags, submodules. Diffs inline or side by side with word level highlighting, a minimap, image diffs and file history. A built-in terminal per repository. Real confirmation dialogs before anything destructive, and undo for the rest.
Remotes and accounts. Fetch, pull and push through the same credential chain git uses. SSH keys and access tokens, several accounts on one host, identity profiles stored per repository and never in your global gitconfig. Pull requests from GitHub, GitLab and Bitbucket: list, check out, create, pick reviewers. Commit signing through your existing git config.
AI, if you want it. A commit message from the staged diff, a plain explanation of a commit or a conflict, a review of what you are about to commit, a pull request description. It uses the AI CLI you already log into (Claude Code, Codex, Gemini CLI, OpenCode), or an API key, or Ollama on your own machine. Requests go straight from your computer to the provider you chose. Every one of them has a Stop button.
Keyboard first. ⌘K opens a palette with every command in the app, shortcuts are printed next to menu items, Escape closes exactly one thing at a time.
Conflicts: both sides, line numbers, the result is an editor |
Worktrees: a second checkout in a sibling folder, its own tab |
Diffs with word level highlights, hunk staging and a minimap |
⌘K, then type |
Sixteen themes, five accents, UI zoom |
AI settings. Your own provider, or a CLI you already have |
- In-app pull request review. The forge does this better, with CI logs and suggestions. There is an Open in browser button.
- Telemetry, accounts, a cloud. Nothing phones home and there is nothing to sign up for.
- A blame view. File history is there, line level blame is on the list.
- A plugin marketplace. Not yet.
Grab the file for your platform from the releases page, or use the terminal. The commands below are pinned to the current release, so bump the version if a newer one is out.
# macOS with Homebrew (also clears the Gatekeeper flag for you)
brew install --cask cheat2001/tap/angkorgit
# macOS, direct download
curl -L https://github.com/cheat2001/angkorgit/releases/download/v0.10.0/AngKorGit_0.10.0_universal.dmg -o ~/Downloads/AngKorGit.dmg && xattr -cr ~/Downloads/AngKorGit.dmg && open ~/Downloads/AngKorGit.dmg
# Windows (PowerShell)
curl -L https://github.com/cheat2001/angkorgit/releases/download/v0.10.0/AngKorGit_0.10.0_x64-setup.exe -o "$env:TEMP\AngKorGit-setup.exe"; Start-Process "$env:TEMP\AngKorGit-setup.exe"
# Linux (AppImage)
curl -L https://github.com/cheat2001/angkorgit/releases/download/v0.10.0/AngKorGit_0.10.0_amd64.AppImage -o ~/Downloads/AngKorGit.AppImage && chmod +x ~/Downloads/AngKorGit.AppImage && ~/Downloads/AngKorGit.AppImageThe builds aren't signed with a paid certificate, so your OS asks once on first launch. After that the app updates itself, and every update is verified with a signature before it installs. All releases are built in public by GitHub Actions from this source tree. The full first-launch walkthrough is on the getting started page.
- Open the
.dmgand drag AngKorGit into Applications. Don't run it from inside the dmg window, macOS would start it from a temporary location where permissions can't be saved. - Launch it. macOS says the app cannot be opened. Close that, go to System Settings, Privacy & Security, scroll down and click Open Anyway. This happens once.
- The first time you open a repository in Desktop, Documents or Downloads, macOS asks for access to that folder. Allow, once per folder.
- If you connect a GitHub or GitLab account, the first git operation per session asks to read the token from your Keychain. Plain Allow is enough, Always Allow has no effect on unsigned apps.
If a permission dialog ever loops, reset the stale records and try again:
tccutil reset All dev.angkorgit.appWindows: SmartScreen says the publisher is unknown. More info, then Run anyway. An .msi is on the releases page too.
Linux: chmod +x the AppImage and run it, or install the .deb or .rpm. Needs WebKitGTK 4.1 and libssl, which most desktops already have.
You need Node 20+, pnpm 10+, Rust stable and the Tauri v2 system dependencies.
pnpm install
pnpm icons # generate placeholder app icons
pnpm tauri:dev # run the desktop appThe UI runs in a plain browser on a demo dataset, no Rust toolchain needed:
pnpm dev # http://localhost:1420The website lives in apps/website (Astro, static, GitHub Pages):
pnpm website # http://localhost:4321/
pnpm website:images # regenerate WebP screenshots and og.png
pnpm website:build # static build in apps/website/distTests:
pnpm test # unit tests
pnpm test:e2e # Playwright, against demo mode
cd apps/desktop/src-tauri && cargo test # git engine integration tests on real temp repos| Path | Contents |
|---|---|
apps/desktop |
The Tauri v2 desktop app, React frontend and Rust engine |
apps/website |
The website (Astro, static), live at angkorgit.app, docs rendered on site |
packages/core |
Domain types, graph layout, word diff, conflict parsing, forge and AI adapters |
packages/design-system |
Design tokens, Tailwind preset, UI primitives, logo |
docs |
Architecture, UI guidelines, development, contributing, distribution, roadmap, coding standards |
tests |
Unit and e2e tests |
scripts |
Icon generation and tooling |
More in docs/Architecture.md and docs/Development.md. Bugs and ideas go in issues, I read them all.
MIT
