Instance Switcher
A sidebar that lists every open VS Code window, plus your saved and recent projects. Each row has its own color and an optional alias.
- Click an open window to switch to it.
- Click a closed project to open it. By default it opens in a new window. Cmd/Ctrl+click does the opposite. Hover a row to get explicit Open in this window and Open in new window buttons.
- Pencil button: set an alias and a color (pick from the palette or use the color picker). These are saved and shared by every window.
- Pin button: keep a project in the Saved section even after it drops off VS Code's recent list.
- Trash button: remove a closed project from the list and from VS Code's recent list.
- + in the view title adds a folder or
.code-workspace file.
- Command palette: Instance Switcher: Quick Switch Window.
Hotkeys
| Action |
macOS |
Windows / Linux |
| Quick Switch picker |
⌃⌘W |
Ctrl+Alt+W |
| Show the Instances sidebar |
⌃⌘E |
Ctrl+Alt+E |
| Next / previous open window |
⌃⌘] / ⌃⌘[ |
Ctrl+Alt+] / Ctrl+Alt+[ |
| Jump to open window 1–9 |
⌃⌘1 … ⌃⌘9 |
Ctrl+Alt+1 … Ctrl+Alt+9 |
Windows are numbered alphabetically by name (alias if set), so a number always means the same window, whichever window you press it in. To change any hotkey, open Keyboard Shortcuts and search for Instance Switcher.
Inside the sidebar:
/ jumps to the filter box.
↓ moves from the filter to the list, and ↑/↓ move between rows.
Enter opens the selected row. Cmd/Ctrl+Enter opens it the other way (new window vs. this window).
E edits the selected row's alias and color.
- In the filter,
Enter opens the first match and Esc clears the filter.
How it works
Every window runs the extension in the background. Each window writes a small heartbeat file to ~/.vscode-instance-switcher/windows/ every few seconds. A window that stops updating its file, or whose process has died, drops off the list. Aliases and colors are stored in ~/.vscode-instance-switcher/entries.json.
Switching to a window uses vscode.openFolder. If that folder is already open somewhere, VS Code focuses the existing window instead of opening a second copy.
Limitation: an empty window (no folder open) is listed but can't be switched to, because there is nothing to open.
Settings
| Setting |
Default |
|
instanceSwitcher.defaultOpenMode |
newWindow |
What clicking a closed project does (newWindow or currentWindow). |
instanceSwitcher.showRecent |
true |
Show VS Code's recent projects. |
instanceSwitcher.maxRecent |
30 |
Maximum number of recent projects to show. |
Install
npx @vscode/vsce package --allow-missing-repository
code --install-extension instance-switcher-0.1.0.vsix
After installing, reload any windows that were already open, so that they start sending heartbeats too.