Git WorkGrove
A code-workspace friendly worktree explorer for VS Code
Git WorkGrove provides first-class .code-workspace support for git worktrees. It appears in the Source Control view, letting you browse worktrees and directly open their workspace files.

Why This Extension Exists
Git worktrees are powerful for parallel development — but VS Code and its extensions don't handle .code-workspace files well in worktree workflows.
The problem: When you switch to a worktree, tools open the folder — not the .code-workspace file. This means:
- Dev server output shows relative paths that can't be clicked to open files
- Multi-root workspace configurations are silently lost
- Workspace-scoped settings and tasks don't apply
This has been a long-standing pain point across both VS Code and GitLens:
What Git WorkGrove does — and doesn't do:
Git WorkGrove focuses on one thing: making .code-workspace files a first-class citizen in the worktree workflow. It does not manage worktrees — creating, deleting, and switching worktrees is best handled by VS Code's built-in git support or extensions like GitLens.
If VS Code or GitLens ever ships proper .code-workspace support for worktrees, this extension will have served its purpose.
Features
- Source Control tree view — Browse all worktrees with their
.code-workspace files
- Worktree names — Labels match
git worktree names instead of raw paths
- Favorites — Pin any item (repository, worktree, workspace file) to the top with drag-and-drop reordering
- Current indicator — Green icon and badge highlight the currently open item
- Customizable templates — Full control over labels and descriptions for all 8 item types
- Prune — Clean up stale worktree records
- Live updates — FileSystemWatcher detects worktree changes automatically
Usage
Tree View
Git WorkGrove adds a WORKGROVE panel in the Source Control sidebar. It shows:
- Favorites — Pinned items at the top (if any exist)
- Repository — The main worktree (collapsible, with workspace files as children)
- Linked worktrees — All other worktrees (alphabetically sorted, each with workspace files)
Click a workspace file to open it. Click a worktree to expand/collapse its children.
Right-click any item in the tree to access:
| Action |
Description |
| Open in New Window |
Opens the worktree or workspace file in a new VS Code window |
| Open in Current Window |
Opens in the current VS Code window |
| Reveal in Finder |
Opens the item's location in your OS file manager |
| Copy Name |
Copy the item's display name to clipboard |
| Copy Path |
Copy the item's filesystem path to clipboard |
Favorite-specific actions appear as inline buttons:
| Button |
Description |
| Add Favorite (star outline) |
Pin this item to the Favorites section |
| Remove Favorite (filled star) |
Unpin from Favorites |
| Move Up / Move Down (chevrons) |
Reorder within Favorites |
You can also drag and drop favorites to reorder them.
View Title Actions
The WORKGROVE panel header provides:
| Action |
Location |
Description |
| Refresh |
Header icon |
Re-scan worktrees and workspace files |
| Prune Worktrees |
... overflow menu |
Run git worktree prune to clean up stale records |
| Clean Stale Favorites |
... overflow menu |
Remove favorites that no longer exist on disk |
Open Behavior
When you click a workspace file, the behavior depends on the openBehavior setting:
ask (default) — Shows a picker with options: Open in New Window, Open in Current Window, plus "Always" variants that persist your choice
newWindow — Always opens in a new window
currentWindow — Always opens in the current window
Current Indicator
The currently open workspace or worktree is highlighted with:
- A green-tinted icon
- A green dot badge (●)
Clicking the current item does nothing (it's already open).
Settings
Open VS Code Settings (Cmd+, / Ctrl+,) and search for git-work-grove:
| Setting |
Type |
Default |
Description |
git-work-grove.openBehavior |
ask | newWindow | currentWindow |
ask |
Default action when opening a workspace |
git-work-grove.workspaceFile.include |
string[] |
["*.code-workspace"] |
Glob patterns for workspace file scanning |
git-work-grove.workspaceFile.exclude |
string[] |
[] |
Glob patterns to exclude from scanning |
git-work-grove.template.* |
string |
(varies) |
Display templates — see Template Customization |
git-work-grove.favorites |
string[] |
[] |
Ordered list of favorited item paths (managed via the UI) |
Template Customization
All tree item labels and descriptions are customizable. Templates support variables like {name}, {branch}, {ref}, fallback syntax ({branch|detached}), and conditional sections ({?branch}({branch}){/branch}).
See Template Customization for all 8 item types, available variables, and examples.
Commands
All commands use the Git WorkGrove: prefix. Some are available via the Command Palette (Cmd+Shift+P / Ctrl+Shift+P), while others appear only in the tree view context menu or inline buttons.
Command Palette
| Command |
Description |
| Refresh |
Re-scan worktrees and workspace files |
| Prune Worktrees |
Run git worktree prune to clean up stale records |
| Show Output |
Open the extension's output channel for debugging |
| Clean Stale Favorites |
Remove favorites pointing to deleted items |
These commands appear when right-clicking items in the tree view:
| Command |
Description |
| Open in New Window |
Open worktree or workspace file in a new VS Code window |
| Open in Current Window |
Open in the current VS Code window |
| Reveal in Finder |
Open the item's location in your OS file manager |
| Copy Name |
Copy the item's display name to clipboard |
| Copy Path |
Copy the item's filesystem path to clipboard |
| Add Favorite |
Pin this item to the Favorites section |
| Remove Favorite |
Unpin from Favorites |
| Move Favorite Up / Down |
Reorder within Favorites |
Documentation
Specifications
Design documents for contributors and AI-assisted development:
- Tree Structure — 4 fundamental types, node hierarchy, icons, collapsible states
- Current Indicator — Single-current-item rule, detection logic
- Favorites — Data model, resolution, ordering, stale cleanup
- Templates — 8 template types, variables, defaults, selection logic
- Commands — All commands, menu placement, behaviors
- Workspace Scanning — File discovery, include/exclude patterns
- Open Behavior — Open modes, URI resolution, click handling
- Empty States — Git unavailable, no repository, no worktrees messages
Installation
VS Code Marketplace
Install from the Visual Studio Marketplace:
- Open VS Code
- Go to Extensions (
Cmd+Shift+X / Ctrl+Shift+X)
- Search for Git WorkGrove
- Click Install
Open VSX Registry
Install from Open VSX for VS Code alternatives (VSCodium, code-server, Gitpod, etc.):
- Open your editor's extension panel
- Search for Git WorkGrove
- Click Install
Requirements
- VS Code 1.95.0+
- Git installed and available in PATH
License
MIT