Git made simple. VPN built in. 100% free.
VEXT Zweig is an open-source desktop Git client that replaces confusing terminal commands with a clean visual interface — and comes with a built-in VPN (WireGuard + OpenVPN) so your code stays private.
No paywalls. No premium tiers. No "upgrade to unlock." Everything is free, forever.
Git is powerful. Git is also needlessly confusing.
Nobody should have to memorize git rebase --onto main feature~3 feature to do their job. Nobody should need Stack Overflow open in another tab just to undo a commit.
VEXT Zweig fixes this:
| Instead of... | You just... |
|---|---|
git add file.ts && git commit -m "..." |
Drag files to "Ready to Commit", click Commit |
git rebase origin/main |
Click "Update my branch" |
| Resolving merge conflicts in vim | Side-by-side diff: Accept Left / Accept Right / Accept Both |
git stash push -m "wip" |
Click "Save work for later" |
git log --oneline --graph --all |
Visual commit history with colors and merge indicators |
| Configuring SSH keys and proxies | Built-in VPN toggle — one click, traffic secured |
No Git jargon in the UI. Advanced terminology available in tooltips for those who want to learn.
- Open / Init / Clone repositories
- Visual file staging — "Changed Files" and "Ready to Commit" sections
- One-click commit with Cmd+Enter shortcut
- Branch management — create, switch, delete, see ahead/behind counts
- Diff viewer — color-coded additions/deletions with line numbers
- Commit history — searchable log with author, date, and merge indicators
- Push / Pull — single-button sync with your remote
- Merge with conflict detection and resolution UI
- Blame view — see who changed each line and when
- Stash — save and restore work-in-progress
- Cherry-pick — apply specific commits from other branches
- Rebase — update your branch with upstream changes
- Submodule support
- WireGuard — fast, modern protocol (via boringtun)
- OpenVPN — broad compatibility (bundled as sidecar)
- Split tunnel mode — route only Git traffic through VPN
- System-wide mode — route all traffic through VPN
- Import configs — drop in
.conf(WireGuard) or.ovpn(OpenVPN) files - Connection stats — bandwidth, latency, uptime
- VPN status always visible in the status bar
┌─────────────────────────────────────────────────────┐
│ VEXT Zweig │
│ │
│ ┌────────────────────┐ ┌────────────────────────┐ │
│ │ React / TS UI │ │ Rust Backend │ │
│ │ │ │ │ │
│ │ Zustand stores │ │ vext-zweig-git │ │
│ │ Tailwind CSS │◄─┤ └─ libgit2 bindings │ │
│ │ Lucide icons │ │ vext-zweig-vpn │ │
│ │ │ │ ├─ boringtun (WG) │ │
│ │ 30+ Tauri commands │ │ └─ openvpn (sidecar) │ │
│ └────────────────────┘ └────────────────────────┘ │
│ │
│ Tauri v2 (cross-platform) │
│ macOS · Windows · Linux │
└─────────────────────────────────────────────────────┘
| Crate | Purpose |
|---|---|
vext-zweig-core |
Shared types, config, error handling |
vext-zweig-git |
Git operations via libgit2 + CLI fallback |
vext-zweig-vpn |
VPN client (WireGuard + OpenVPN) |
vext-zweig-privileged |
Helper daemon for TUN/routing (elevated privileges) |
src-tauri |
Tauri app shell, commands, state management |
| Directory | Contents |
|---|---|
ui/src/stores/ |
Zustand state — git-store.ts, vpn-store.ts |
ui/src/components/git/ |
FileTree, CommitPanel, DiffViewer, LogGraph |
ui/src/components/vpn/ |
ConnectionPanel, ServerList, TrafficStats |
ui/src/components/layout/ |
Header, Sidebar, StatusBar, MainLayout |
ui/src/lib/ |
Type-safe Tauri command wrappers |
# Clone
git clone https://github.com/Vext-Labs/vext-zweig.git
cd vext-zweig
# Install frontend dependencies
cd ui && npm install && cd ..
# Run in development mode
cargo tauri devcargo tauri buildOutputs platform-specific installers:
- macOS:
.dmginsrc-tauri/target/release/bundle/dmg/ - Windows:
.msiinsrc-tauri/target/release/bundle/msi/ - Linux:
.AppImage/.debinsrc-tauri/target/release/bundle/
| Layer | Technology |
|---|---|
| Framework | Tauri v2 |
| Backend | Rust |
| Git engine | git2 (libgit2 bindings) |
| WireGuard | boringtun (userspace, by Cloudflare) |
| OpenVPN | Bundled binary via Tauri sidecar |
| Frontend | React 19, TypeScript, Vite |
| State | Zustand |
| Styling | Tailwind CSS v4 |
| Credentials | OS keychain (macOS Keychain / Windows Credential Manager / libsecret) |
- Project scaffold and core architecture
- Git operations: status, commit, branch, diff, log, push/pull
- Advanced Git: merge, blame, stash, cherry-pick, rebase, submodules
- Tauri command layer (30+ commands)
- React UI: file tree, commit panel, diff viewer, history
- WireGuard tunnel (boringtun integration)
- OpenVPN sidecar management
- Split-tunnel SOCKS5 proxy
- Privileged helper daemon (TUN creation)
- Drag-and-drop file staging
- Three-pane merge conflict resolver
- Interactive rebase UI
- Monaco editor integration for diffs
- Commit graph visualization (DAG)
- Auto-update via Tauri updater
- Code signing and notarization
Contributions are welcome! This is a community project — no CLA, no corporate gatekeeping.
# Fork the repo, then:
git clone https://github.com/YOUR_USERNAME/vext-zweig.git
cd vext-zweig
cd ui && npm install && cd ..
cargo tauri devOpen a PR against main. Keep changes focused — one feature or fix per PR.
Dual-licensed under Apache 2.0 and MIT — use whichever you prefer.
VEXT Zweig — because Git shouldn't require a CS degree.
Built by Vext Labs