A snazzy, cross-platform Git GUI client built with Tauri 2, Svelte 5, and git2.
.gitignore from the context menuSnazzGit ships with 4 built-in themes -- Dark, Lollipop, Neon, and Classic -- and includes a full theme editor with live preview. Every color in the UI is driven by CSS custom properties, so you have complete control over the look and feel.
Create your own themes in the editor and they're automatically saved to ~/.config/snazzgit/themes/ as JSON, ready to share or sync across machines.
| Shortcut | Action |
|---|---|
Ctrl+K |
Search commits |
Ctrl+B |
New branch |
Ctrl+D |
Compare refs |
Ctrl+G |
Stash dialog |
Ctrl+Shift+S |
Stage all files |
Ctrl+Shift+U |
Unstage all files |
Ctrl+Enter |
Commit (when in commit message box) |
Ctrl+A |
Select all unstaged changes |
Escape |
Close current panel / deselect |
snazzgit-bin -- prebuilt binary packagesnazzgit-git -- build from sourceInstall with your preferred AUR helper:
yay -S snazzgit-bin # or snazzgit-git
paru -S snazzgit-bin # or snazzgit-git
npm install
cargo tauri dev
cargo tauri build
This produces platform-specific packages in src-tauri/target/release/bundle/:
.deb, .rpm.msi, .exe (build on Windows or via CI).dmg, .app (build on macOS or via CI)| Layer | Technology |
|---|---|
| Backend | Rust + git2 |
| Frontend | Svelte 5 (runes) + TypeScript |
| Styling | Tailwind CSS 4 + CSS custom properties |
| Framework | Tauri 2 |
| IPC | Tauri commands (async, via tokio::spawn_blocking) |
src/ # Frontend (SvelteKit)
lib/
components/ # UI components (commit, diff, staging, branch, etc.)
stores/ # Svelte stores (repo state, UI state, themes)
themes/ # Built-in theme definitions
types/ # TypeScript type definitions
utils/ # Tauri IPC bindings
routes/ # SvelteKit pages
src-tauri/ # Backend (Rust)
src/
git/ # Pure git2 logic (no Tauri dependency)
commands/ # Tauri IPC command handlers
packaging/ # Distribution packaging (AUR, .desktop)
SnazzGit is a fully local application. It does not transmit any data to external servers. All git operations run locally using the bundled git2 library. Network activity only occurs for explicit user-initiated remote operations (fetch, pull, push) to repositories you have configured.
See CODE_SIGNING.md for details on how SnazzGit releases are signed.