GitPlace
GitPlace is a VS Code extension for managing Git workspaces and projects from a single place.
It helps you:
- organize projects and workspaces
- create and open worktree-based Git workspaces
- switch between project and workspace views quickly
- keep favorite project/workspace entries handy
- review commit history with filters by branch, author, and date
- track local setup stash and sync workflows
Features
- Project and workspace management
- Favorite project/workspace toggling
- Open workspace in current or new window
- Git base branch sync support
- Local setup stash management
- Commit history filtering and navigation
- Git working-tree file and diff access (via commands)
Requirements
- VS Code 1.85 or newer
- Git installed and available on PATH
Getting Started
- Install the extension from the VS Code Marketplace or from a
.vsix package.
- Open the GitPlace view from the Activity Bar.
- Create a project and then create one or more workspaces under it.
- Use the context menu or inline actions to open, favorite, or manage workspaces.
Usage
Projects
Use the Projects view to:
- create a project
- edit or delete a project
- toggle favorites
- open the project location on disk
Workspaces
Use the Workspaces view to:
- create workspaces from a selected project
- open workspaces
- sync a workspace with its base branch
- manage local setup stashes
- favorite important workspaces
Workspaces are created as Git worktrees under <repository>/.worktree/<branch> by default.
Commit History
Use the Commit History webview panel to:
- search commit activity (debounced, paginated)
- filter by branch, author, or date range
- refresh data and inspect commit details inline
Author filters use Git shortlog to list every contributor across full repository history (not a truncated recent subset), with a short-lived cache for responsiveness on large repos.
Git Safety Model
GitPlace treats developer data as non-negotiable:
- Git commands use structured
spawn('git', args) — never shell string concatenation
- Branch names and paths are validated before use
- Sync is blocked when the working tree has uncommitted changes
- Destructive Git operations (
worktree remove --force, etc.) require explicit confirmation tokens
- Workspace disk deletion requires validation snapshot + revalidation before removal
- Local Setup Stash is associated by commit SHA, not
stash@{0} index alone
Workspace Model
- Project — a registered Git repository root path
- Workspace — a Git worktree linked to a branch, stored under the project
- Base branch — optional branch used for sync when creating a new branch workspace
Local Setup Stash Model
- Each workspace may associate one Git stash for environment/bootstrap files
- Association is metadata only — clearing association does not delete the Git stash
- Apply resolves stash by stored SHA with branch/workspace validation
Privacy
GitPlace is designed as a local-first Git development workspace. GitPlace's core Git and workspace functionality processes repository and workspace information locally on your device. GitPlace does not transmit repository source code, commit history, branch information, file paths, .env contents, credentials, or workspace metadata to GitPlace servers as part of its current local Git/workspace functionality.
Project and workspace lists are stored in VS Code's local extension storage on your machine. Logs stay in the local GitPlace output channel. If you sync or fetch, Git may contact remotes you already configured on that repository; that is Git talking to your remotes, not GitPlace collecting data.
Support
License
This project is licensed under the MIT License. See the LICENSE file for details.