A fast, beautiful, keyboard-first Git GUI that doesn't suck.
Graft is a modern Git GUI built with native performance (Tauri + Rust), beautiful design (React + Tailwind), and a keyboard-first approach. It's everything existing Git GUIs should be but aren't.
Existing Git GUIs are either:
- 🐌 Too slow (Electron bloat)
- 😵 Too complex (overwhelming interfaces)
- 💸 Too expensive (subscription models)
- 🔒 Too limited (missing features)
- 🖱️ Mouse-heavy (no keyboard shortcuts)
Graft solves all of this.
Beautiful commit history with visual graph, commit details, and clean dark theme
Access 30+ Git operations instantly with Ctrl+K
Drag-and-drop commit reordering with visual feedback
- ✅ Lightning Fast - Native Tauri app, sub-second startup
- ✅ Beautiful Themes - Professional dark & clean light themes with instant switching
- ✅ Repository Browser - Open and browse any Git repository
- ✅ Commit History - Beautiful commit graph with 10,000+ commit support
- ✅ Visual Git Graph - Color-coded branch visualization
- ✅ Staging Area - Stage, unstage, and commit files with ease
- ✅ Diff Viewer - Monaco Editor with syntax highlighting
- ✅ Branch Management - Create, switch, rename, delete branches
- ✅ Remote Operations - Push, pull, fetch with SSH support
- ✅ Interactive Rebase - Drag-and-drop commit reordering
- ✅ Stash Management - Save and restore work-in-progress
- ✅ Git Tags - View and manage repository tags
- ✅ Command Palette (
Cmd/Ctrl+K) - Access 30+ commands instantly - ✅ Quick Search (
Cmd/Ctrl+P) - Search commits, branches, stashes - ✅ Keyboard Shortcuts - 20+ global shortcuts for power users
- ✅ Shortcuts Overlay (
Cmd/Ctrl+/) - Learn shortcuts easily - ✅ Context Menus - Right-click actions everywhere
- ✅ Recent Commands - Smart tracking of your most-used actions
- ✅ Performance Optimized - Debounced search, minimal re-renders
- ✅ Accessibility - Full ARIA support for screen readers
- ✅ Complete Theme System - Professional dark & clean light themes
- ✅ Instant Theme Switching - <100ms transition time
- ✅ System Theme Detection - Auto-follows OS preference
- ✅ 100% Theme Coverage - All 34 components themed
- ✅ Zero Hardcoded Colors - Clean, maintainable codebase
- ✅ WCAG AA Accessibility - High contrast in both themes
- ✅ Smooth Animations - 60fps theme transitions
- ✅ Persistent Preferences - Your theme choice is saved
| Shortcut | Action |
|---|---|
Cmd/Ctrl+K |
Open command palette |
Cmd/Ctrl+P |
Quick search (commits, branches, stashes) |
Cmd/Ctrl+O |
Open repository |
Cmd/Ctrl+/ |
Show keyboard shortcuts |
Escape |
Close modals |
| Shortcut | Action |
|---|---|
Cmd/Ctrl+F |
Search commits |
Cmd/Ctrl+B |
Toggle branch sidebar |
Cmd/Ctrl+Shift+S |
Toggle stash sidebar |
Arrow Keys |
Navigate lists |
Enter |
View selected item |
| Shortcut | Action |
|---|---|
Space |
Stage/unstage file |
Cmd/Ctrl+Enter |
Commit changes |
| Shortcut | Action |
|---|---|
Cmd/Ctrl+N |
Create new branch |
- ✅ Free (GitKraken: $99/year)
- ✅ Native (GitKraken: Electron bloat)
- ✅ Faster command palette
- ✅ Open source
- ✅ Free (Tower: $99 one-time)
- ✅ Has command palette (Tower: doesn't)
- ✅ Better keyboard shortcuts
- ✅ Open source
- ✅ Free (Sublime Merge: $99)
- ✅ More features
- ✅ Command palette
- ✅ Open source
- ✅ Pro features (Interactive rebase, stash, etc.)
- ✅ Command palette
- ✅ Comprehensive keyboard shortcuts
- ✅ Context menus
Result: Graft has the best keyboard experience of any Git GUI, and it's completely free!
Latest Release: v1.0.3
-
Download one of the installers:
- Recommended:
Graft_1.0.1_x64-setup.exe(NSIS installer) - Alternative:
Graft_1.0.1_x64_en-US.msi(MSI installer)
- Recommended:
-
Run the installer
-
Windows SmartScreen Warning
⚠️ You may see a "Windows protected your PC" warning. This is normal for open-source applications that don't have a paid code-signing certificate ($300-500/year).
Graft is completely safe - the code is open source and auditable.
To install:
- Click "More info"
- Click "Run anyway"
This warning appears for most open-source Windows apps, including early versions of VS Code and many other trusted tools.
-
Launch Graft from Start Menu
Building from source is currently required (see Development Setup below).
- Launch Graft
- Press
Ctrl+O(or click "Open Repository") to select a Git repository - Explore your commit history!
- Press
Ctrl+Kto open the command palette - Press
Ctrl+/to see all keyboard shortcuts
Before building Graft, ensure you have:
- Node.js (v18 or higher) - Download
- Rust (latest stable) - Install via rustup
- Git (obviously 😄)
macOS:
- Xcode Command Line Tools:
xcode-select --install
Windows:
- Microsoft C++ Build Tools
- WebView2 (usually pre-installed on Windows 10/11)
Linux:
# Debian/Ubuntu
sudo apt install libwebkit2gtk-4.1-dev \
build-essential \
curl \
wget \
file \
libssl-dev \
libgtk-3-dev \
libayatana-appindicator3-dev \
librsvg2-dev
# Fedora
sudo dnf install webkit2gtk4.1-devel \
openssl-devel \
curl \
wget \
file \
libappindicator-gtk3-devel \
librsvg2-devel
# Arch
sudo pacman -S webkit2gtk \
base-devel \
curl \
wget \
file \
openssl \
appmenu-gtk-module \
gtk3 \
libappindicator-gtk3 \
librsvggit clone https://github.com/Dancode-188/graft.git
cd graftnpm installnpm run tauri:devThis will:
- Start the Vite dev server (frontend)
- Compile the Rust backend
- Launch the Graft window with hot reload enabled
npm run tauri:buildThe compiled app will be in src-tauri/target/release/bundle/
| Command | Description |
|---|---|
npm run dev |
Start Vite dev server (frontend only) |
npm run tauri:dev |
Run full Tauri app in development mode |
npm run tauri:build |
Build production-ready app |
npm run build |
Build frontend only |
- Frontend: React 18 + TypeScript + Tailwind CSS
- Backend: Rust + Tauri 2.0
- Git Integration: libgit2 (via git2-rs)
- Build Tool: Vite
- Editor: Monaco Editor (for diffs)
- UI Components: Custom (no heavy framework)
graft/
├── src/ # Frontend React code
│ ├── App.tsx # Main application component
│ ├── main.tsx # React entry point
│ ├── components/
│ │ ├── command-palette/ # Command palette (Cmd+K)
│ │ ├── keyboard/ # Keyboard shortcuts system
│ │ ├── quick-search/ # Quick search (Cmd+P)
│ │ ├── stash/ # Stash management
│ │ ├── branches/ # Branch operations
│ │ └── ... # Other components
│ ├── hooks/ # Custom React hooks
│ ├── utils/ # Utility functions
│ └── styles.css # Global styles + Tailwind
├── src-tauri/ # Rust backend
│ ├── src/
│ │ ├── main.rs # Tauri app entry
│ │ └── lib.rs # Git operations & commands
│ ├── Cargo.toml # Rust dependencies
│ └── tauri.conf.json # Tauri configuration
├── .github/ # GitHub templates
│ ├── ISSUE_TEMPLATE/ # Bug & feature templates
│ └── PULL_REQUEST_TEMPLATE.md # PR template
├── ROADMAP.md # Development phases & roadmap
├── CONTRIBUTING.md # Contribution guidelines
├── CODE_OF_CONDUCT.md # Community standards
├── CHANGELOG.md # Version history
└── package.json # Node dependencies
- Phase 0: Foundation - Project setup, basic UI
- Phase 1: Repository Browser - Open and browse repos
- Phase 2: Commit Graph - Beautiful visual history
- Phase 3: Staging & Commits - Make commits through GUI
- Phase 4: Diff Viewer - Monaco Editor with syntax highlighting
- Phase 5: Branching - Branch operations
- Phase 6: Push/Pull/Fetch - Remote operations
- Phase 7: Interactive Rebase - Drag-and-drop reordering
- Phase 8: Stash Management - Save and restore WIP
- Phase 9: Keyboard & Speed - Command palette, shortcuts, performance ⭐
- Phase 10: Polish & Themes - Complete light/dark theme system ⭐
Graft is now production-ready with all 10 planned phases complete! 🎉
What's Next?
- Multi-repo workspaces
- Cherry-pick improvements
- Visual merge conflict resolution
- Git blame annotations
- Submodule support
See ROADMAP.md for complete details.
Graft is designed for speed:
- Startup: <1 second
- Large Repos: Handles 10,000+ commits smoothly
- Command Palette: Opens in <50ms
- Search: Updates in <100ms
- Virtual Scrolling: Smooth with thousands of items
- Memory: Efficient with memoization and optimization
Graft is fully accessible:
- ✅ Screen Reader Support - Full ARIA labels
- ✅ Keyboard Navigation - 95% of actions accessible via keyboard
- ✅ High Contrast - Clear visual hierarchy
- ✅ Focus Management - Proper focus indicators
Graft is in active development! We welcome contributions.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow existing code style
- Add tests for new features
- Update documentation
- Keep commits focused and atomic
- Write clear commit messages
Check GitHub Issues for current bugs and feature requests.
MIT License - see LICENSE file for details
Graft is inspired by:
- VS Code - Command palette design
- Sublime Merge - Speed and keyboard-first design
- GitKraken - Beautiful commit graphs
- Raycast - Beautiful launcher UX
- Vim - Keyboard-first philosophy
We're taking the best ideas and making them free, fast, and open source.
If you like Graft, give it a ⭐ on GitHub!
- 🌟 Star the repo
- 👁️ Watch for releases
- 🐦 Follow development updates
- 💬 Join discussions
- ROADMAP.md - Development roadmap and future plans
- CONTRIBUTING.md - How to contribute to Graft
- CODE_OF_CONDUCT.md - Community guidelines
- CHANGELOG.md - Full version history
- GitHub Releases - Release notes
Critical Patch: Fixed Push/Pull Authentication
- 🔐 Fixed HTTPS authentication for push/pull/fetch operations
- ✅ Added support for Git Credential Manager
- 🐛 Resolved 401 errors on HTTPS remotes
- 🔑 Now works with both SSH and HTTPS authentication
- ⚡ Push functionality fully working
Patch Release: Repository Cleanup & Polish
- 🧹 Cleaned up 65+ internal development files
- 📚 Added comprehensive contributor documentation
- 🤝 Added GitHub issue & PR templates
- 👥 Added CODE_OF_CONDUCT & CONTRIBUTING guides
- 🐛 Fixed all README links to correct repository
Patch Release: Polish & Documentation
- 🐛 Fixed version display and status bar bugs
- 📚 Added comprehensive installation guide
- 🔧 Added troubleshooting section for common issues
- ✨ Improved Windows SmartScreen instructions
- 🔑 Added SSH/HTTPS authentication setup guide
v1.0.0 (November 3, 2025) - Production Ready!
- Complete theme system (dark & light)
- 100% theme coverage across all components
- Instant theme switching
- WCAG AA accessibility
Earlier Releases:
- v0.9.0 - Keyboard & Speed (Command palette, shortcuts, performance)
- v0.8.0 - Stash Management
- v0.7.0 - Interactive Rebase
- v0.6.0 - Push/Pull/Fetch
- v0.5.0 - Branch Operations
See all releases: GitHub Releases
| Feature | Status |
|---|---|
| Core Git Operations | ✅ Complete |
| Commit History | ✅ Complete |
| Visual Graph | ✅ Complete |
| Staging & Commits | ✅ Complete |
| Diff Viewer | ✅ Complete |
| Branch Management | ✅ Complete |
| Remote Operations | ✅ Complete |
| Interactive Rebase | ✅ Complete |
| Stash Management | ✅ Complete |
| Command Palette | ✅ Complete |
| Keyboard Shortcuts | ✅ Complete |
| Quick Search | ✅ Complete |
| Context Menus | ✅ Complete |
| Performance | ✅ Optimized |
| Accessibility | ✅ Complete |
| Light Theme | ✅ Complete |
| Dark Theme | ✅ Complete |
| Theme System | ✅ Complete |
| v1.0.0 Status | ✅ Production Ready |
Issue: "Windows protected your PC" warning appears when installing.
Solution: This is expected for unsigned apps.
- Click "More info"
- Click "Run anyway"
Why this happens: Graft is not code-signed (certificates cost $300-500/year). This is normal for open-source software. The code is completely safe and auditable on GitHub.
Issue: Push or Pull operations fail with authentication errors.
Solution: Configure your Git credentials for remote operations.
# 1. Generate SSH key (if you don't have one)
ssh-keygen -t ed25519 -C "your_email@example.com"
# 2. Add to ssh-agent
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
# 3. Add public key to GitHub/GitLab
cat ~/.ssh/id_ed25519.pub
# Copy and paste to GitHub Settings → SSH Keys# Configure Git credential helper
git config --global credential.helper store
# Next push/pull will ask for credentials onceAfter configuring credentials once, Graft will use your system's Git configuration for all operations.
Issue: "Failed to open repository" error.
Solutions:
- Ensure the selected folder is a valid Git repository (contains
.gitfolder) - Check you have read permissions for the directory
- Try closing and reopening Graft
- Check the repository isn't corrupted:
git statusin terminal
Issue: Slow performance with large repositories.
Solutions:
- Graft handles 10,000+ commits smoothly
- If experiencing slowness, check available RAM
- Try closing other resource-intensive applications
- Consider using
git gcto optimize your repository
- 🐛 Report bugs: GitHub Issues
- 💬 Get help: GitHub Discussions
- 📖 Documentation: Full docs
- Open Graft and press
Cmd+Oto open a repository - Browse commits with arrow keys
- Try command palette with
Cmd+K - Search everything with
Cmd+P - Learn shortcuts with
Cmd+/ - Right-click on commits, stashes, or files for actions
Graft is built for you! Here's how to be 10x faster:
- Use
Cmd+Kinstead of clicking menus - Master the shortcuts with
Cmd+/ - Search with
Cmd+Pinstead of scrolling - Right-click for quick actions
- Use
Spaceto stage/unstage files - Never touch your mouse 😎
Built with 🌿 by developers who are tired of bad Git GUIs
Graft: The Git GUI that power users actually want to use. ⚡