yagit

Yet Another Git TUI

The Git browser for people who manage multiple repositories. No staging. No commits. No push. Just the fastest way to stay on top of your code.

Multi-Repo Read-Only Vim-Native Go Binary
yagit — demo
$ go install github.com/capa1904/yagit@latest Copied!

No other terminal Git tool does this.

lazygit, gitui, tig — they all work inside a single repository. yagit scans an entire directory of repos and lets you browse them all from one place. If you maintain 5, 10, or 50 repositories, this alone is worth it.

  • /
    Live filter Start typing, repos filter instantly. Case-insensitive.
  • *
    Status at a glance Branch, dirty state, remote divergence — for every repo.
  • Instant switching Move the cursor, everything updates. No cd, no waiting.
  • ~
    Auto-detect pwd Opens with the repo you’re currently in pre-selected.

Four panels. Zero tab switching.

Inspired by GitExtensions — repos, commits, files, and diff visible at once. Select a repo, select a commit, select a file — the diff is already there.

w Layout Presets

Cycle between 4-panel (full dashboard), 3-panel (single-repo focus), and 2-panel (diff-focused). Saved across sessions.

m Maximize

Blow up any panel to full screen. When maximizing Files, the Diff panel stays visible in a compact split.

14 Panel Toggle

Double-press a number to toggle individual panels on or off. Single-press to focus. Adapts to narrow terminals automatically.

Everything you need. Nothing you don’t.

Three Diff Modes

s

Unified · Side-by-Side · Delta

Classic unified, spatial side-by-side with line numbers, or delta’s full syntax highlighting with word-level diffs. Cached per commit, file, and terminal width.

Vim-Native Navigation

hjkl

Cross-panel · J K E

j/k, g/G, Ctrl+D/U, n/N for hunks. Cross-panel navigation: browse commits while focused on files. Trigger actions in other panels with E.

Commit Graph

c

ASCII · Branch connectors

Toggle an ASCII commit graph with merge commits, feature branches, and the overall branch structure — integrated right into the commit list.

Search & Filter

/ ?

Repos · Commits · Authors · Hashes

Filter repos instantly with /. Search across commit subjects, author names, and hashes with ?. Works across the full loaded history.

Editor Integration

o O

Context-aware · Editor picker

Opens your editor in the right context — repository on Repos/Commits, specific file on Files/Diff. Editor picker with keyboard shortcuts.

Branch Checkout

b

The one exception

The only write operation: pick a branch, press Enter. Commits reload, you’re browsing. No risk of accidental commits or force pushes.

Read-only by design.
This is not a limitation — it’s the point.

yagit will never accidentally stage a file, amend a commit, or force-push to main. It’s a browser, not an editor.

What yagit does

  • Browse all your repositories
  • Read commit history and diffs
  • Search and filter everything
  • Switch branches safely
  • Open files in your editor

What yagit doesn’t

  • Stage or unstage files
  • Create commits
  • Merge, rebase, or cherry-pick
  • Push to remote
  • Anything destructive

Session Persistence

Layout preset, diff mode, tree view, graph — all saved and restored on next launch. Picks up where you left off.

Dark & Light Theme

Both themes designed for readability with carefully chosen colors for diffs, highlights, and panel borders.

Mouse Support

Keyboard-first, but the mouse works too. Click to select, scroll to navigate. For when you’re lazy.

Single Go Binary

No runtime dependencies. No node_modules. No virtualenv. Built on the Charmbracelet stack: Bubbletea, Lipgloss, Bubbles.