A fast, native Git GUI built with Tauri, React, and Rust.
## Features- Commit graph with branch visualization
- Stage / unstage files and hunks
- Diff viewer
- Branch management (create, switch, delete)
- Push / Pull / Fetch
- Stash management
- Tags
- Remotes
- Three themes: Dark (default), AMOLED, Light
- Rust (stable)
- Node.js (20+)
- Platform build tools — see Tauri prerequisites
npm install
cargo tauri devThe app version is derived from git tags, not manual edits.
# Tag a release
git tag v1.2.3
git push origin v1.2.3
# CI automatically builds with version "1.2.3"Untagged commits on main get version 0.0.0-dev.{short_sha}.
To preview the version locally:
node scripts/set-version.mjsThe workflow at .github/workflows/build.yml runs on every push to main:
| Platform | Runner | Outputs |
|---|---|---|
| macOS | macos-latest |
.dmg, .app (universal binary) |
| Linux | ubuntu-22.04 |
.deb, .AppImage |
| Windows | windows-latest |
.msi, .exe (NSIS installer) |
To create a release:
git tag v1.0.0
git push origin v1.0.0This triggers the release job, which uploads all installers to a GitHub Release.
npm install
cargo tauri buildOutput is in src-tauri/target/release/bundle/.
git-started/
├── .github/workflows/build.yml CI pipeline
├── scripts/set-version.mjs Git-based versioning
├── src-tauri/ Rust backend
│ ├── src/lib.rs Git commands (git2-rs)
│ ├── tauri.conf.json Tauri config
│ └── Cargo.toml Rust dependencies
├── src/ React frontend
│ ├── components/ UI components
│ ├── hooks/useGit.ts React Query hooks
│ ├── lib/tauri.ts IPC wrappers
│ └── stores/ Zustand state
└── package.json
MIT