Explore and switch git worktrees directly from the VS Code sidebar with a dedicated Activity Bar panel.
Visualize all git worktrees for your project root in a dedicated sidebar panel. Yggdrasil stays in sync with your local git state automatically.
Expand any worktree in the tree view to browse all changes on the branch compared to its base.
- Unified Status: View committed, staged, and untracked changes at a glance.
- Side-by-Side Diffs: Double-click any file to open a native VS Code diff view.
- Status Icons: Distinct icons for Modified (M), Added (A), Deleted (D), and Renamed (R) files.
Switch context quickly via a GUI dialog with three flexible modes:
- New Window: Launch the worktree in a fresh VS Code instance.
- Replace Current: Pivot the current window to the new worktree.
- Add to Workspace: Create a Multi-root Workspace by adding the worktree.
Set a custom Base Branch per worktree to track changes against develop, staging, or specific release branches. Yggdrasil will auto-detect your tracking branch or fall back to main if not specified.
Give every worktree its own colour so you can tell at a glance which one a file belongs to. The colour applies to the worktree's row and to every file and folder nested inside it. Your current worktree is always green, and your base worktree stays the default text colour.
Colours are off by default. Turn them on with:
Every colour meets WCAG AA contrast against the background it renders on, in Light, Dark, and both High Contrast themes — including the tinted backgrounds VS Code draws behind hovered and selected rows. To override one, set the ygg.worktreeColor.* IDs under workbench.colorCustomizations.
Visit yggdrasil.logkat.dev for full documentation, or install directly from:
- VS Code Marketplace
- Open VSX (Cursor and other Open VSX clients)
Then open a Git repository and click the Yggdrasil icon in the Activity Bar.
| Command | Title | Description |
|---|---|---|
ygg.selectAndSwitch |
Switch Worktree... | Search for a worktree and choose how to open it. |
ygg.add |
Add Worktree | Create a new git worktree for a branch. |
ygg.remove |
Remove Worktree | Remove a linked worktree from disk and git metadata. |
ygg.prune |
Prune Missing Worktrees | Clean up stale worktree metadata for deleted paths. |
ygg.refresh |
Refresh | Manually reload the worktree list. |
ygg.setBaseBranch |
Set Base Branch... | Set the comparison target for diffs on the selected branch. |
ygg.clearSwitchMode |
Clear Remembered Switch Mode | Reset your remembered "Always open in..." preference. |
When switching, you can choose to "Remember my choice". This preference is stored in your global settings and adds a status bar item for quick resetting. You can clear this anytime via the ygg.clearSwitchMode command.
ygg.baseBranch: Default branch to compare all worktrees against (e.g.,main).ygg.showInExplorer: Mirror the Yggdrasil panel at the bottom of the standard File Explorer (default:true).ygg.worktreeColors: Colour each worktree's rows, and the files and folders inside it, with a distinct colour (default:false). Requires VS Code's built-inexplorer.decorations.colorssetting to also be enabled, or no colours will appear.
- VS Code:
^1.74.0 - Git:
^2.5.0(with worktree support)
Found a bug or have a request? Please open an issue on the GitHub repository.
Published by LogKat