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.
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.
1–4 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
sClassic 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
hjklj/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
cToggle an ASCII commit graph with merge commits, feature branches, and the overall branch structure — integrated right into the commit list.
Search & Filter
/ ?Filter repos instantly with /. Search across commit subjects, author names, and hashes with ?. Works across the full loaded history.
Editor Integration
o OOpens your editor in the right context — repository on Repos/Commits, specific file on Files/Diff. Editor picker with keyboard shortcuts.
Branch Checkout
bThe 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.