https://github.com/Avijit07x/git-switch
A fast, native Git client that runs your dev servers too.
https://github.com/Avijit07x/git-switch
dev-server developer-tools git gitgui macos-app multirepo-maintenance reactjs rust tauri-app xterm
Last synced: about 14 hours ago
JSON representation
A fast, native Git client that runs your dev servers too.
- Host: GitHub
- URL: https://github.com/Avijit07x/git-switch
- Owner: Avijit07x
- License: mit
- Created: 2026-05-16T05:21:25.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-06-10T14:00:18.000Z (7 days ago)
- Last Synced: 2026-06-10T14:20:28.190Z (7 days ago)
- Topics: dev-server, developer-tools, git, gitgui, macos-app, multirepo-maintenance, reactjs, rust, tauri-app, xterm
- Language: TypeScript
- Homepage: https://git-switch-web.vercel.app/
- Size: 1.09 MB
- Stars: 69
- Watchers: 0
- Forks: 3
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README

# Git Switch
A fast, native Git client that runs your dev servers too.
[](https://tauri.app)
[](https://react.dev)
[](https://www.rust-lang.org)
[](#install)
[](#install)
[](#install)
[](LICENSE)
---
## What it does
Multi-repo Git GUI with a built-in PTY-backed dev-server launcher. Switch
branches, commit, push, and start every project's dev server from one
window.
## Highlights
- **Multi-repo sidebar** with live status tints and an FS watcher.
- **Adaptive sync button** that switches between Pull / Push / Publish / Fetch based on branch state.
- **Inline diff viewer** and **commit history popup**.
- **Undo last commit** (safe `git reset --soft`, never on pushed history).
- **AI commit messages** via Gemini, with auto-fallback when a model is rate-limited.
- **Run targets** like `yarn dev`, `cargo run`, each with its own xterm tab and port management.
- **Groups** to bundle repos and run them in parallel.
- **Menu-bar tray** showing the active repo's branch and ahead/behind status.
- **Desktop notifications** when teammates push new commits to your branch.
- **Six accent themes** (Neutral, Orange, Blue, Green, Rose, Violet) plus light/dark mode.
- **Async backend**, so `git fetch` / `pull` / `push` never freeze the UI.
## Install
One command. Fetches the latest release for your OS and drops it in the
right place. Re-run to update.
**macOS / Linux**
```bash
curl -fsSL https://raw.githubusercontent.com/Avijit07x/git-switch/main/install.sh | bash
```
**Windows** (PowerShell)
```powershell
irm https://raw.githubusercontent.com/Avijit07x/git-switch/main/install.ps1 | iex
```
### Build from source
```bash
git clone git@github.com:Avijit07x/git-switch.git
cd git-switch
yarn install
yarn tauri:dev
```
Prerequisites: Git, Node 20+, Rust stable. On Debian / Ubuntu also install
`libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev patchelf`.
First launch compiles roughly 400 Rust crates. Expect 2 to 5 minutes
cold, seconds thereafter.
### Build a release bundle
```bash
yarn tauri:build
```
Output lands in `src-tauri/target/release/bundle/`. The installer script
handles signing quirks automatically; if you're distributing a manual
build on macOS, strip the quarantine flag once:
```bash
xattr -dr com.apple.quarantine "/Applications/Git Switch.app"
```
## Safety
Out of scope: force push, rebase, hard reset, discard, stash, and
merge-conflict resolution. The one carve-out is `git reset --soft HEAD~1`
behind the **Undo** button, which only appears for local-only commits
that haven't been pushed.
Auth uses your existing Git setup (SSH keys, Keychain, `gh`, credential
helper). The Gemini API key, if set, lives in `localStorage` and is only
sent to `generativelanguage.googleapis.com` when you click ✨ Generate.
## License
MIT © Avijit Dey