A modern, cross-platform Git GUI client built with Wails and Svelte. Inspired by Fork.
| Layer | Technology |
|---|---|
| Backend | Go 1.24, Wails v2 |
| Frontend | Svelte 4, Vite 5 |
| Git | go-git v5 + native git CLI |
| Platforms | Linux, macOS, Windows |
Linux only:
sudo apt-get install libgtk-3-dev libwebkit2gtk-4.1-dev
# Clone the repository
git clone https://github.com/yourusername/lucerna.git
cd lucerna
# Install frontend dependencies
cd frontend && npm install --legacy-peer-deps && cd ..
# Run in development mode
wails dev
# Build for current platform
wails build
# Linux (with webkit2gtk-4.1 support)
wails build -tags webkit2_41
# macOS (Universal Binary)
wails build -platform darwin/universal
# Windows
wails build -platform windows/amd64
See BUILD.md for detailed build instructions.
Pre-built binaries are available on the Releases page:
| Platform | File |
|---|---|
| Linux | lucerna-{version}-linux-amd64.tar.gz |
| macOS | lucerna-{version}-darwin-amd64.tar.gz (Universal Binary) |
| Windows | lucerna-{version}-windows-amd64.zip |
lucerna/
├── main.go # Wails application entry point
├── app.go # App methods (Wails bindings / API)
├── internal/
│ ├── git/ # Git operations
│ │ ├── repository.go # Repository management
│ │ ├── commit.go # Commit operations
│ │ ├── branch.go # Branch management
│ │ ├── diff.go # Diff generation
│ │ ├── stage.go # Staging & commit creation
│ │ ├── remote.go # Remote operations
│ │ ├── merge.go # Merge & conflict resolution
│ │ ├── stash.go # Stash operations
│ │ ├── tag.go # Tag operations
│ │ ├── history.go # File history & blame
│ │ └── credentials.go # Credential storage (AES-GCM encrypted)
│ └── models/ # Data models
├── frontend/ # Svelte frontend
│ └── src/
│ ├── App.svelte # Main application
│ ├── lib/
│ │ ├── components/ # UI components
│ │ └── stores/ # Svelte stores (state management)
│ └── main.js
├── assets/ # App icons
├── .github/workflows/ # CI/CD (build + release)
├── wails.json # Wails configuration
└── install.sh # Linux install script
This project uses GitHub Actions for automated builds:
main — builds for Linux, macOS, and Windowsv*.*.* tags — creates GitHub Release with all platform binariesContributions are welcome! Please feel free to submit a Pull Request.
git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)This project is licensed under the MIT License — see the LICENSE file for details.
"Your word is a lamp for my feet, a light on my path."
— Psalm 119:105 (NIV)