Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Project Switcher for VS CodeNew to Visual Studio Code? Get it now.
Project Switcher for VS Code

Project Switcher for VS Code

autyan

|
1 install
| (0) | Free
Window-safe project switching for VS Code.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Project Switcher for VS Code

Window-safe project switching for VS Code.

Manage projects, preserve window identity.

Project Switcher for VS Code is a Project Manager style project/workload launcher designed around VS Code's window and workspace model. It helps you switch projects without reusing or mutating the current window, reducing accidental contamination of workspaceStorage, webview state, extension mementos, and AI assistant session state.

Why This Exists

Many project manager extensions optimize for convenience by reusing the current or empty VS Code window when opening another project. That is fast, but it can blur the boundary between workloads.

For ordinary editing this is usually harmless. For extensions with heavy UI, webview, and session state, such as AI assistant sidebars, it can make stale workspace state leak from one project into another.

Project Switcher for VS Code takes the opposite default:

  • opening a project creates a new VS Code window;
  • empty windows are not silently reused;
  • opening a project never mutates the current window's workload identity;
  • .code-workspace files are first-class project boundaries;
  • project switching is explicit: create a new project window now, reveal an existing one later.

Features

  • Dedicated Project Switcher Activity Bar and Side Bar.
  • Favorite projects grouped by tags.
  • Auto-detect Git, Mercurial, SVN, .code-workspace, and ordinary folder projects from configured base folders.
  • Status Bar entry showing the current saved project.
  • Save the current folder or .code-workspace as a project.
  • Add any folder or .code-workspace from disk.
  • Search saved and auto-detected projects with a Quick Pick.
  • Open projects with forceNewWindow: true.
  • Keep recently opened projects near the top.
  • Remove stale projects from a Quick Pick or the Side Bar.
  • Save auto-detected projects as favorites.
  • Edit favorite project tags from the Side Bar.
  • Reveal projects in the system file manager.
  • Edit projects as JSON.
  • Diagnose the current window boundary.

Commands

  • Project Switcher: Open Project
  • Project Switcher: Add Project
  • Project Switcher: Save Current Project
  • Project Switcher: Remove Project
  • Project Switcher: Filter Projects by Tag
  • Project Switcher: Refresh
  • Project Switcher: Edit Projects
  • Project Switcher: Diagnose Window Boundary

Configuration

{
  "projectSwitcher.projectsFile": "",
  "projectSwitcher.allowCurrentWindowOpen": false,
  "projectSwitcher.revealExistingWindow": true,
  "projectSwitcher.showProjectNameInStatusBar": true,
  "projectSwitcher.tags.groupFavorites": true,
  "projectSwitcher.git.baseFolders": ["~/SourceCode"],
  "projectSwitcher.hg.baseFolders": [],
  "projectSwitcher.svn.baseFolders": [],
  "projectSwitcher.vscode.baseFolders": ["~/SourceCode"],
  "projectSwitcher.any.baseFolders": []
}

allowCurrentWindowOpen is an escape hatch. Keep it false for window-safe switching.

When projectsFile is empty, projects are stored in VS Code extension global state. If you want a portable file, set it to a JSON path such as:

{
  "projectSwitcher.projectsFile": "~/.config/project-switcher-vsc/projects.json"
}

Each auto-detected source also supports ignoredFolders and maxDepthRecursion, for example:

{
  "projectSwitcher.git.ignoredFolders": ["node_modules", "out", "dist", "build"],
  "projectSwitcher.git.maxDepthRecursion": 4
}

Project File Format

[
  {
    "id": "fedora-scripts",
    "name": "Fedora Scripts",
    "path": "/home/autyan/SourceCode/fedora-workstation-platform-scripts",
    "kind": "folder",
    "tags": ["system", "codex"],
    "lastOpenedAt": "2026-06-22T03:40:00.000Z",
    "openCount": 12
  },
  {
    "id": "wow-styles",
    "name": "WoW Styles",
    "path": "/home/autyan/SourceCode/my-wow-styles/my-wow-styles.code-workspace",
    "kind": "workspace",
    "tags": ["game", "codex"]
  }
]

lastOpenedAt and openCount are maintained automatically after a project is opened.

Publish

npm install
npm run compile
npm run package

The package command creates a .vsix file that can be installed locally from VS Code's Extensions view before publishing.

To publish to Visual Studio Marketplace:

npm run publish

You need a Marketplace publisher matching the publisher value in package.json and a publishing credential accepted by vsce.

Philosophy

VS Code windows are stateful workbenches, not disposable shells. They restore layout, workspace storage, webview origins, mementos, and extension state.

This extension treats a project switch as a new workload boundary. It should not turn the current window into a different project.

Switch projects without blurring window boundaries.
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft