Skip to content
| Marketplace
Sign in
Visual Studio Code>SCM Providers>YAGI — Yet Another Git InterfaceNew to Visual Studio Code? Get it now.
YAGI — Yet Another Git Interface

YAGI — Yet Another Git Interface

Ruan du Plessis

|
5 installs
| (0) | Free
A Fork-like graphical Git client inside VS Code: commit graph, staging, merge conflicts, interactive rebase, and remotes.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

YAGI — Yet Another Git Interface

A Fork-style graphical Git client that lives inside VS Code.

Commit graph. Staging. Merge conflicts. Interactive rebase. Remotes. No app-switching, no separate window — just your editor.

Version Installs Rating License: MIT

YAGI commit graph, branches, and remotes inside VS Code


Why YAGI?

VS Code's built-in Source Control view is great for a quick commit, but the moment you need to untangle history, resolve a real merge conflict, or rebase interactively, you reach for a separate app. YAGI closes that gap — it brings a full, Fork-like Git GUI into an editor tab, wired directly to your workspace.

  • Stay in one window. No context switch to a separate Git client.
  • Everything is native underneath. Diffs open in VS Code's own diff editor; conflicts open in its 3-way merge editor. You get YAGI's graph and workflow on top of tools you already know.
  • It's just git. Every action shells out to the Git CLI you already have installed — no bundled Git, no proprietary format.

Features

📊 Commit graph

A colored-lane commit graph that stays fast on large repositories — rendering is virtualized, and history loads incrementally as you scroll ("load more" paging), so a 50,000-commit repo opens as quickly as a 50-commit one.

🔗 Squash & rebase-merge tracking

Squash and rebase merges rewrite your branch's commits under new SHAs, so a normal graph shows no connection back to the branch you merged — it just looks deleted. YAGI detects these (via patch-id equivalence) and draws a solid merge line to the commit that absorbed the work, with a "merged" badge in both the graph and the branch list. Detection runs off the main thread and is cached, and can be disabled on very large repos (yagi.showMergedBranches).

⇄ Branch comparison

Check two branches and hit Compare for a side-by-side view of what actually differs. Work that already exists on both branches is folded away rather than listed twice — cherry-picks, rebase replays, and topics squashed into each branch separately are matched by patch-id; a topic merged normally into one branch but squash-merged into the other is caught by comparing the whole topic's changes; and a topic merged into both branches is matched by its shared merge parent. This all holds even when the two branches have since diverged around the shared code. Shared commits stay visible but dimmed, so you can tell the difference between "nothing unique here" and "something got missed".

🎯 Focused graphs

Select branches in the sidebar and the graph collapses to those branches' lines — everything merged into them folds into its merge commit, instead of a separate lane for every topic branch in your history. Turn on Linking to also pull in the unselected branches a selected one merges through, drawn dimmed. Hover any line to see which branch it belongs to.

🔍 Commit details

Click any commit to see its full message, author, parents, and changed files — click a file to open it in VS Code's native diff editor.

✅ Staging & commit

Stage and unstage files, view diffs natively, and commit — with Ctrl/Cmd+Enter to commit without leaving the keyboard.

🔀 Merge, rebase, cherry-pick, revert

  • One-click merge and rebase from the branch list.
  • Cherry-pick and revert any commit from its context menu.
  • A full interactive rebase UI — reorder, squash, fixup, or drop commits with drag-free up/down controls, no manual todo-file editing.
  • Conflicts pause the operation with a clear banner and Continue / Skip / Abort — conflicted files open directly in VS Code's 3-way merge editor.

☁️ Remotes

Fetch, pull, and push with live ahead/behind indicators. Optionally auto-pull after any operation finishes, so your view never falls out of sync with the remote (yagi.pullAfterOperations).

🗂️ Built for your workflow

  • An Activity Bar sidebar mirrors the current branch, changed files, and full branch tree — for quick actions without opening the full panel.
  • Resizable, collapsible panes remembered forever, per user.
  • A branch filter so repositories with 100+ branches stay navigable, with the checked-out branch always pinned to the top of the list.
  • Automatic repository discovery: open a parent folder containing several repos and YAGI finds them (or lets you pick).

Getting started

  1. Install YAGI from the Marketplace.
  2. Open a folder containing a Git repository.
  3. Click the YAGI icon in the Activity Bar, or run YAGI: Open Git Interface from the Command Palette.

That's it — no configuration required.

Settings

Setting Default Description
yagi.pullAfterOperations true After push, merge, rebase, cherry-pick, or revert, automatically pull the current branch's upstream.
yagi.branchLimit 25 Number of most-recently-updated branches to show per section before "Show all". 0 shows every branch.
yagi.showMergedBranches true Detect and draw a merge line for branches squash/rebase-merged into the current branch. Turn off if it's slow on very large repositories.

Requirements

  • VS Code 1.90 or later
  • git available on your PATH

Feedback & contributions

YAGI is open source. Bug reports, feature requests, and pull requests are welcome at github.com/knoppies999/yagi.

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft