Git SwitchGit Switch
Now shipping v0.5.3

The Git client for people who ship.

A native workspace for every repo you own. Switch branches, run dev servers, and push without leaving the keyboard.

Features

Everything you need. Nothing you don't.

Pull (3)behind
Push (2)ahead
Publishno upstream

One button. The right action, always.

The primary action follows your branch state. Pull when behind, Push when ahead, Publish on a fresh local branch, Fetch when you're even. No more guessing which button to click.

Safe undo

git reset --soft HEAD~1 for local commits only. Pushed history is never rewritten.

Never --hard. Ever.
@@ -12,3 +12,4 @@
  cwd: PathBuf,
-    last_event: Mutex<Option<Instant>>,
+    signal: Arc<(Mutex, Condvar)>,
+    alive: bool,

Inline diff viewer

Click any changed file. Read it. Move on. Sticky gutter, horizontal scroll, no Monaco bloat.

Keyboard-first

The mouse is optional. Every common operation has a shortcut you can keep in muscle memory. Use Ctrl on Windows and Linux.

  • Commit
  • RefreshR
  • PullP
  • PushP
c4718ebperf: block AI scrapers
c24a6c9feat: sponsors page
8f6baaefeat: QR-code UPI flow

Commit history

Last 50 commits with author, hash, and relative time. One keystroke from anywhere.

Branch tools

Create from scratch, check out remote as local, publish. Every path has a dirty-tree guard.

Real PTY terminals

Per-repo run targets in xterm.js. ANSI colors, login-shell PATH, process-group kills.

AI commits

Conventional-Commits from the staged diff via Gemini. Auto-falls back when the model is rate-limited.

Repo groups

Bundle related repos. Run, stop, restart in parallel from one group button.

The workflow

Built around the loop you already run a hundred times a day.

  1. 01

    Stage

    Optimistic UI flips the list before git even returns.

  2. 02

    Commit

    ⌘/Ctrl + Return. Or generate a message with one click.

  3. 03

    Push

    Async backend, never freezes the UI mid-network.

  4. 04

    Pull

    Auto-refresh on focus, FS watcher keeps state honest.

0ms

UI block during fetch, pull, or push

IPC call for the entire sidebar refresh

200kb

JS saved by lazy-loading xterm

100%

Native. No Electron, no web shell.

“A Git GUI that feels like an extension of your terminal, not a replacement for it.”

The point of the whole thing

Install

Get it running in under a minute.

Signed .dmg, .msi, and .AppImage builds in every release. macOS, Windows, and Linux.

Or via terminal

Then yarn install && yarn tauri:dev