Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Project LoaderNew to Visual Studio Code? Get it now.
Project Loader

Project Loader

Navneet Yadav

|
2 installs
| (0) | Free
Save multiple project folders and open them in a new or the current VS Code window from a sidebar list.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Project Loader

Project Loader keeps a list of project folders in a sidebar so you can jump between them quickly. Each project can be opened in a new VS Code window, or opened in place while closing the current window.

Features

  • Saved Projects sidebar in the Project Loader activity bar icon, listing every saved folder.
  • Add Project saves the current workspace folder. If the folder is already saved, you are told so and nothing is duplicated.
  • Auto-save on startup (optional, on by default) saves the first workspace folder when VS Code starts, if it is not already in the list.
  • Per-project actions from the right-click menu (or the inline icons):
    • Open in New Window
    • Open and Close Current Window
    • Remove Project (removes the entry only; the folder is not deleted)
  • Missing folders are flagged with a warning icon instead of being hidden, so you can remove them.
  • Two storage backends:
    • globalState (default): VS Code's extension global state.
    • jsonFile: a portable JSON file you can keep in a synced folder or copy to another machine.

Usage

  1. Open a folder in VS Code (File > Open Folder…).
  2. Click the Project Loader icon in the activity bar.
  3. Click the + (Add Project) button in the Saved Projects view title, or run Project Loader: Add Project from the Command Palette.
  4. Right-click a project to:
    • Open in New Window: opens the folder in a separate window and leaves the current one unchanged.
    • Open and Close Current Window: opens the folder in the current window, replacing the workspace that is open there.
    • Remove Project: removes the entry after confirmation.

Command Palette

Command Description
Project Loader: Add Project Saves the current workspace folder.
Project Loader: Open Project Pick a saved project and open it in the current window.
Project Loader: Open in New Window Pick a saved project and open it in a new window.
Project Loader: Open and Close Current Window Pick a saved project and open it in the current window.
Project Loader: Remove Project Pick a saved project to remove from the list.
Project Loader: Refresh Projects Reloads the sidebar list.

When a command runs from the Command Palette, it asks you to choose a project. When it runs from the sidebar context menu, it acts on the project you right-clicked.

Settings

Setting Default Description
projectLoader.storage globalState globalState or jsonFile.
projectLoader.jsonFilePath "" Path to the JSON file used with jsonFile. Supports ~. A relative path is resolved against the extension's global storage folder. Leave empty to use <global storage>/projects.json.
projectLoader.autoAddCurrentWorkspace true Save the first workspace folder automatically on startup if it is not already saved.

JSON file format

{
  "version": 1,
  "projects": [
    {
      "path": "C:\\dev\\my-api",
      "name": "my-api",
      "addedAt": 1760000000000
    }
  ]
}

A bare JSON array of the same objects is also accepted when reading.

Switching storage

Changing projectLoader.storage or projectLoader.jsonFilePath does not copy existing entries. The sidebar reads from the newly selected store, so add your projects again or copy the entries manually.

Installation

From a VSIX file

npm install
npm run package          # produces project-loader-<version>.vsix
code --install-extension project-loader-0.1.0.vsix

Or in VS Code: Extensions view → … menu → Install from VSIX….

From source (development)

npm install
npm run compile          # or: npm run watch

Press F5 in VS Code to launch an Extension Development Host.

Development

Script Purpose
npm run compile Type-check and compile src/ to out/.
npm run watch Recompile on change.
npm test Compile and run the unit tests in src/test/ (Node's built-in test runner).
npm run package Build a .vsix with vsce.
npm run publish Publish to the Visual Studio Marketplace with vsce.

Project layout

src/
  extension.ts                 Activation; wires up the tree view, commands and config listener
  types.ts                     SavedProject model and runtime type guard
  projectRepository.ts         Add / remove / list rules (no VS Code API dependency)
  storage/
    projectStore.ts            ProjectStore interface
    globalStateStore.ts        ExtensionContext.globalState backend
    jsonFileStore.ts           JSON file backend
    storageFactory.ts          Picks the backend from settings
  views/
    projectTreeProvider.ts     TreeDataProvider and tree item for the sidebar
  commands/
    projectCommands.ts         Command handlers (add, open, open in new window, remove, refresh)
  utils/
    paths.ts                   Path normalization and comparison
  test/
    projectRepository.test.ts  Unit tests

Publishing

  1. Replace publisher in package.json with your Marketplace publisher ID.
  2. Create a Personal Access Token for Azure DevOps with the Marketplace → Manage scope.
  3. Log in once: npx vsce login <publisher-id>.
  4. Publish: npm run publish (or npx vsce publish patch to bump the version as well).

Requirements

  • VS Code 1.85 or newer.
  • Node.js 18 or newer for development.

Notes

  • "Open and Close Current Window" uses VS Code's vscode.openFolder command with forceNewWindow: false. VS Code may prompt you if the current window has unsaved files.
  • With jsonFile storage, several VS Code windows can write to the same file. The last write wins.
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft