Git you can take back.
A cozy, safety-first desktop Git client — Tauri 2 + Rust + Svelte 5. Every mutation snapshots first, so ⌘Z always works.
Every Git GUI makes it easy to run a dangerous command. GitCat is built so you can take it back: a Safety Manager snapshots refs, index, worktree and stash before every mutation, so a global Undo (⌘Z) is always one keystroke away — and Undo is itself undoable.
- Fast commit graph — git2 reads and a Rust swimlane layout on a virtualized canvas, no depth cap. 150k commits scroll smoothly with the text still readable.
- Everyday git, made safe — stage by file, hunk or line; commit, stash, branch, tag, checkout; fetch / pull / push; merge, cherry-pick, revert, and rebase (linear plus a drag-to-reorder planner), behind a real 3-way conflict resolver.
- Diffs that aren't just text — syntax highlighting, plus side-by-side before/after previews for images and PDFs, rendered natively and zoomable.
- The deep cuts — submodules, patch export/apply,
git bisect,git blamewith rename-following, per-file history, author and pickaxe search, agit-filter-repowizard, external diff/merge tools, reflog rescue and dangling-object recovery. - ⌘K everything — fuzzy search across commits, refs and actions, vim-style keys, and a real native menu.
- Plugins (1.1) — ⌘K commands, hooks, side panels, named tools, and Tama skins and reactions.
- English, 中文 & 한국어 — the whole interface, switchable live with no reload.
gitcat .— open a repo from your terminal the waycode .does. WSL-aware.
Full list: Features.
![]() Commit detail & diff |
![]() ⌘K command palette |
![]() Settings |
![]() Chinese (中文) interface |
![]() Korean (한국어) interface |
![]() Light theme |
Tama is the Safety Manager, not a mascot bolted on for cuteness — she's the one pinning the snapshot. Eight expressions wired to real moments: curious while you search, thinking hard mid-rebase, genuinely alarmed right before something irreversible, celebrating once it's safely done.
Grab an installer from the Releases page — macOS (Apple Silicon + Intel), Windows (x86_64 + arm64) and Linux (x86_64 + arm64; .deb/.rpm/.AppImage), all built from the same tag.
Builds are unsigned for now. macOS: right-click → Open the first time. Windows: More info → Run anyway. Full per-platform steps, including macOS Sequoia, are in the install guide.
Run Install 'gitcat' command from Settings → Command line (or ⌘K), then open a new terminal:
gitcat . # open the repo in the current directory
gitcat ~/src/my-project # open a repo by pathIt writes a launcher to /usr/local/bin (macOS), ~/.local/bin (Linux), or %LOCALAPPDATA%\Microsoft\WindowsApps (Windows, plus one inside each WSL distro). The .deb/.rpm packages already put gitcat on PATH.
Needs Rust, Node 22+ and pnpm 10 (corepack enable pnpm if you don't have it — the exact version is pinned in package.json's packageManager). On Linux, Tauri also wants WebKitGTK/GTK3 dev headers; on NixOS, nix develop has everything.
pnpm install
pnpm tauri dev # launch the app
pnpm demo # build a rich throwaway repo at ~/gitcat-demo to poke at| Command | What it does |
|---|---|
pnpm check |
svelte-check (type-check the frontend) |
pnpm test |
vitest (frontend unit tests) |
pnpm test:e2e |
playwright (real browser, mocked IPC) |
pnpm screenshots |
regenerate docs/public/screenshots/ |
pnpm docs:dev |
run the docs site locally |
cargo test |
the Rust suite (from src-tauri/) |
See CONTRIBUTING.md before opening a PR.
- Rust core (
src-tauri/) — git2 for reads, thegitCLI for writes (every mutation snapshots first), tauri-specta for a typed IPC boundary generated intosrc/ipc/bindings.ts - Frontend — Svelte 5 islands (one per feature) over a hand-tuned vanilla canvas for the graph itself
- CI/CD —
cargo test+pnpm teston every push, a 6-platform release matrix on tags, and a VitePress site auto-deployed to GitHub Pages
Free software under the GNU General Public License v3.0 or later. Copyright © 2026 Jiucheng Zang.














